diff --git a/src/ifcgeom/mapping/mapping.cpp b/src/ifcgeom/mapping/mapping.cpp index 9efe71a54e..042375493c 100644 --- a/src/ifcgeom/mapping/mapping.cpp +++ b/src/ifcgeom/mapping/mapping.cpp @@ -341,10 +341,10 @@ namespace { return item; } - while (item->declaration().is(IfcSchema::IfcBooleanClippingResult::Class())) { + while (auto booleanresult = item->as()) { // All instantiations of IfcBooleanOperand (type of FirstOperand) are subtypes of // IfcGeometricRepresentationItem - item = (IfcSchema::IfcGeometricRepresentationItem*) ((IfcSchema::IfcBooleanClippingResult*) item)->FirstOperand(); + item = booleanresult->FirstOperand()->as(); if (item->StyledByItem()->size()) { return item; }