IFC5 geometry is pre-tessellated (unlike IFC4 parametric geometry),
so this is straightforward mesh extraction.
Note: Meshes are often on child nodes (like "Body", "Axis") that don't
have their own bsi::ifc::class. We associate these with the closest
ancestor entity that has an expressId.
Output geometry is converted to Y-up for the viewer.
Extract geometry from composed IFCX nodes.
IFC5 geometry is pre-tessellated (unlike IFC4 parametric geometry), so this is straightforward mesh extraction.
Note: Meshes are often on child nodes (like "Body", "Axis") that don't have their own bsi::ifc::class. We associate these with the closest ancestor entity that has an expressId.
Output geometry is converted to Y-up for the viewer.