The final geometry can be taken from IfcProduct instances in two ways:
- Direct access to the geometrical objects in ODA format, like FacetModeler::Body or OdBrBrep. The article can be found following by the link: https://docs.opendesign.com/tifc/ifc_access_representation_body_source_code.html, code sample for geometry extraction can also be found in Tutorial_ExtractGeometry of ExIfcTutorials module, it takes into account possible presence of IfcMappedItem instances.
- The second way is implementation of own dumper for OdIfcFile, this way provides triangulation of final geometry so no data about face/edve/vertex geometry is available for IfcAdvancedBrep (OdBrBrep) objects. Example of such way is called ExIfcVectorize which is a part of IFC SDK.
Both ways assume the IFC file is loaded into OdIfcFile instance, and composeEntities method is called before getting geometry. Pay attention the only correct way of geometry extraction is to work with IfcProduct instances as root object for geometry as they have final transformation for underlying IfcGeometricRepresentationItem.