diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 10c249ef15..252848d4ab 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -1301,30 +1301,30 @@ class CreateDrawing(bpy.types.Operator): self.svg_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE) self.svg_buffer = ifcopenshell.geom.serializers.buffer() self.serialiser_settings = ifcopenshell.geom.serializer_settings() + self.serialiser_settings.set("svg-svg-without-storeys", True) + self.serialiser_settings.set("svg-write-poly", True) + self.serialiser_settings.set("svg-poly", True) + # Objects with more than these edges are rendered as wireframe instead of HLR for optimisation + self.serialiser_settings.set("profile-threshold", 10000) + self.serialiser_settings.set("svg-xmlns", True) + self.serialiser_settings.set("svg-project", True) + self.serialiser_settings.set("auto-elevation", False) + self.serialiser_settings.set("auto-section", False) + self.serialiser_settings.set("print-space-names", False) + self.serialiser_settings.set("print-space-areas", False) + self.serialiser_settings.set("door-arcs", False) + self.serialiser_settings.set("svg-no-css", True) + self.serialiser_settings.set("elevation-ref-guid", self.camera_element.GlobalId) + self.serialiser_settings.set("scale", self.scale) + self.serialiser_settings.set("svg-subtract-before", "always") + self.serialiser_settings.set("svg-prefilter", True) # See #3359 + self.serialiser_settings.set("svg-unify-inputs", True) + self.serialiser_settings.set("svg-segment-projection", True) + if target_view == "REFLECTED_PLAN_VIEW": + self.serialiser_settings.set("svg-mirror-y", True) 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) - # Objects with more than these edges are rendered as wireframe instead of HLR for optimisation - self.serialiser.setProfileThreshold(10000) - self.serialiser.setUseNamespace(True) - self.serialiser.setAlwaysProject(True) - self.serialiser.setAutoElevation(False) - self.serialiser.setAutoSection(False) - self.serialiser.setPrintSpaceNames(False) - self.serialiser.setPrintSpaceAreas(False) - self.serialiser.setDrawDoorArcs(False) - self.serialiser.setNoCSS(True) - self.serialiser.setElevationRefGuid(self.camera_element.GlobalId) - self.serialiser.setScale(self.scale) - self.serialiser.setSubtractionSettings(ifcopenshell.ifcopenshell_wrapper.ALWAYS) - self.serialiser.setUsePrefiltering(True) # See #3359 - self.serialiser.setUnifyInputs(True) - self.serialiser.setSegmentProjection(True) - if target_view == "REFLECTED_PLAN_VIEW": - self.serialiser.setMirrorY(True) # tree = ifcopenshell.geom.tree() # This instructs the tree to explode BReps into faces and return # the style of the face when running tree.select_ray() diff --git a/src/bonsai/scripts/standalone_drawer.py b/src/bonsai/scripts/standalone_drawer.py index 886887bf32..acffb8994a 100644 --- a/src/bonsai/scripts/standalone_drawer.py +++ b/src/bonsai/scripts/standalone_drawer.py @@ -164,32 +164,32 @@ class Drawer: # self.svg_settings.set_deflection_tolerance(0.0001) self.svg_buffer = ifcopenshell.geom.serializers.buffer() self.serialiser_settings = ifcopenshell.geom.serializer_settings() + self.serialiser_settings.set("svg-without-storeys", True) + self.serialiser_settings.set("svg-write-poly", True) + self.serialiser_settings.set("svg-poly", True) + # Objects with more than these edges are rendered as wireframe instead of HLR for optimisation + self.serialiser_settings.set("profile-threshold", 10000) + self.serialiser_settings.set("svg-xmlns", True) + self.serialiser_settings.set("svg-project", True) + self.serialiser_settings.set("auto-elevation", False) + self.serialiser_settings.set("auto-section", False) + self.serialiser_settings.set("print-space-names", False) + self.serialiser_settings.set("print-space-areas", False) + self.serialiser_settings.set("door-arcs", False) + self.serialiser_settings.set("svg-no-css", True) + self.serialiser_settings.set("elevation-ref-guid", self.camera_element.GlobalId) + self.serialiser_settings.set("scale", "1/50") + self.serialiser_settings.set("svg-subtract-before", "always") + self.serialiser_settings.set("svg-prefilter", True) # See #3359 + # self.serialiser_settings.set("svg-prefilter", False) # See #3359 + self.serialiser_settings.set("svg-unify-inputs", True) + self.serialiser_settings.set("svg-segment-projection", True) + if target_view == "REFLECTED_PLAN_VIEW": + self.serialiser_settings.set("svg-mirror-y", True) self.serialiser = ifcopenshell.geom.serializers.svg( self.svg_buffer, self.svg_settings, self.serialiser_settings ) self.serialiser.setFile(ifc) - self.serialiser.setWithoutStoreys(True) - self.serialiser.setPolygonal(True) - self.serialiser.setUseHlrPoly(True) - # Objects with more than these edges are rendered as wireframe instead of HLR for optimisation - self.serialiser.setProfileThreshold(10000) - self.serialiser.setUseNamespace(True) - self.serialiser.setAlwaysProject(True) - self.serialiser.setAutoElevation(False) - self.serialiser.setAutoSection(False) - self.serialiser.setPrintSpaceNames(False) - self.serialiser.setPrintSpaceAreas(False) - self.serialiser.setDrawDoorArcs(False) - self.serialiser.setNoCSS(True) - self.serialiser.setElevationRefGuid(self.camera_element.GlobalId) - self.serialiser.setScale(1 / 50) - self.serialiser.setSubtractionSettings(ifcopenshell.ifcopenshell_wrapper.ALWAYS) - self.serialiser.setUsePrefiltering(True) # See #3359 - # self.serialiser.setUsePrefiltering(False) # See #3359 - self.serialiser.setUnifyInputs(True) - self.serialiser.setSegmentProjection(True) - if target_view == "REFLECTED_PLAN_VIEW": - self.serialiser.setMirrorY(True) Drawer().execute()