diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index 3b2321499a..3c590b9e35 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -475,15 +475,15 @@ class CreateDrawing(bpy.types.Operator): with profile(f"Processing {context_type} context"): if not context or not drawing_elements: continue - geom_settings = ifcopenshell.geom.settings( - DISABLE_TRIANGULATION=True, INCLUDE_CURVES=True - ) + geom_settings = ifcopenshell.geom.settings() + geom_settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + geom_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE) if ifc.by_id(context[0]).ContextType == "Plan" and "PLAN_VIEW" in target_view: offset = ifcopenshell.ifcopenshell_wrapper.float_array_3() # A 2mm Z offset to combat Z-fighting in plan or RCPs offset[2] = 0.002 if target_view == "PLAN_VIEW" else -0.002 geom_settings.offset = offset - geom_settings.set_context_ids(context) + geom_settings.set("context-ids", context) it = ifcopenshell.geom.iterator( geom_settings, ifc, multiprocessing.cpu_count(), include=drawing_elements ) @@ -561,7 +561,8 @@ class CreateDrawing(bpy.types.Operator): if tool.Ifc.get() == ifc and self.camera_element not in drawing_elements: with profile("Camera element"): # The camera must always be included, regardless of any include/exclude filters. - geom_settings = ifcopenshell.geom.settings(DISABLE_TRIANGULATION=True) + geom_settings = ifcopenshell.geom.settings() + geom_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE) it = ifcopenshell.geom.iterator(geom_settings, ifc, include=[self.camera_element]) for elem in it: self.serialiser.write(elem) @@ -874,11 +875,14 @@ class CreateDrawing(bpy.types.Operator): return svg_path def setup_serialiser(self, target_view): - self.svg_settings = ifcopenshell.geom.settings( - DISABLE_TRIANGULATION=True, INCLUDE_CURVES=True - ) + self.svg_settings = ifcopenshell.geom.settings() + self.svg_settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + self.svg_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE) self.svg_buffer = ifcopenshell.geom.serializers.buffer() - self.serialiser = ifcopenshell.geom.serializers.svg(self.svg_buffer, self.svg_settings) + self.serialiser_settings = ifcopenshell.geom.serializer_settings() + self.serialiser = ifcopenshell.geom.serializers.svg( + self.svg_buffer, self.svg_settings, self.serialiser_settings + ) self.serialiser.setWithoutStoreys(True) self.serialiser.setPolygonal(True) self.serialiser.setUseHlrPoly(True) @@ -982,7 +986,7 @@ class CreateDrawing(bpy.types.Operator): obj = tool.Ifc.get_object(element) - if not obj: # This is a linked model object. For now, do nothing. + if not obj: # This is a linked model object. For now, do nothing. continue if not self.is_manifold(obj):