@@ -616,7 +616,7 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
616616 }
617617
618618 if (items->size () > 0 ) {
619- rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), std::string (" Brep" ), items);
619+ rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), advanced ? std::string ( " AdvancedBrep " ) : std::string (" Brep" ), items);
620620 } else {
621621
622622 // If not, see if there is a shell
@@ -631,7 +631,7 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
631631
632632 if (shells->size () > 0 ) {
633633 items->push (new IfcSchema::IfcShellBasedSurfaceModel (shells->generalize ()));
634- rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), std::string (" Brep" ), items);
634+ rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), advanced ? std::string ( " AdvancedBrep " ) : std::string (" Brep" ), items);
635635 } else {
636636
637637 // If not, see if there is are one of more faces. Note that they will be grouped into a shell.
@@ -640,7 +640,7 @@ IfcUtil::IfcBaseClass* IfcGeom::MAKE_TYPE_NAME(serialise_)(const TopoDS_Shape& s
640640
641641 if (face_count > 0 ) {
642642 items->push (shell);
643- rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), std::string (" Brep" ), items);
643+ rep = new IfcSchema::IfcShapeRepresentation (0 , std::string (" Body" ), advanced ? std::string ( " AdvancedBrep " ) : std::string (" Brep" ), items);
644644 } else {
645645
646646 // If not, see if there are any edges. Note that wires are skipped as
0 commit comments