diff --git a/src/ifcgeom/mapping/mapping.cpp b/src/ifcgeom/mapping/mapping.cpp index 153cb6c824..0abdd361e4 100644 --- a/src/ifcgeom/mapping/mapping.cpp +++ b/src/ifcgeom/mapping/mapping.cpp @@ -179,7 +179,12 @@ aggregate_of_instance::ptr mapping::find_openings(const IfcUtil::IfcBaseEntity* for (;;) { auto decomposes = obdef->Decomposes()->generalize(); if (decomposes->size() != 1) break; - IfcSchema::IfcObjectDefinition* rel_obdef = (*decomposes->begin())->as()->RelatingObject(); + IfcSchema::IfcObjectDefinition* rel_obdef; +#ifdef SCHEMA_IfcRelDecomposes_HAS_RelatingObject + rel_obdef = (*decomposes->begin())->as()->RelatingObject(); +#else // IFC4+ + rel_obdef = (*decomposes->begin())->as()->RelatingObject(); +#endif if (rel_obdef->as() && !rel_obdef->as()) { IfcSchema::IfcElement* element = rel_obdef->as(); auto rels = element->HasOpenings();