| 157 | drawing_elements -= processed |
| 158 | |
| 159 | def setup_serialiser(self, ifc, target_view): |
| 160 | self.svg_settings = ifcopenshell.geom.settings() |
| 161 | self.svg_settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) |
| 162 | self.svg_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE) |
| 163 | |
| 164 | # self.svg_settings.set_deflection_tolerance(0.0001) |
| 165 | self.svg_buffer = ifcopenshell.geom.serializers.buffer() |
| 166 | self.serialiser_settings = ifcopenshell.geom.serializer_settings() |
| 167 | self.serialiser = ifcopenshell.geom.serializers.svg( |
| 168 | self.svg_buffer, self.svg_settings, self.serialiser_settings |
| 169 | ) |
| 170 | self.serialiser.setFile(ifc) |
| 171 | self.serialiser.setWithoutStoreys(True) |
| 172 | self.serialiser.setPolygonal(True) |
| 173 | self.serialiser.setUseHlrPoly(True) |
| 174 | # Objects with more than these edges are rendered as wireframe instead of HLR for optimisation |
| 175 | self.serialiser.setProfileThreshold(10000) |
| 176 | self.serialiser.setUseNamespace(True) |
| 177 | self.serialiser.setAlwaysProject(True) |
| 178 | self.serialiser.setAutoElevation(False) |
| 179 | self.serialiser.setAutoSection(False) |
| 180 | self.serialiser.setPrintSpaceNames(False) |
| 181 | self.serialiser.setPrintSpaceAreas(False) |
| 182 | self.serialiser.setDrawDoorArcs(False) |
| 183 | self.serialiser.setNoCSS(True) |
| 184 | self.serialiser.setElevationRefGuid(self.camera_element.GlobalId) |
| 185 | self.serialiser.setScale(1 / 50) |
| 186 | self.serialiser.setSubtractionSettings(ifcopenshell.ifcopenshell_wrapper.ALWAYS) |
| 187 | self.serialiser.setUsePrefiltering(True) # See #3359 |
| 188 | # self.serialiser.setUsePrefiltering(False) # See #3359 |
| 189 | self.serialiser.setUnifyInputs(True) |
| 190 | self.serialiser.setSegmentProjection(True) |
| 191 | if target_view == "REFLECTED_PLAN_VIEW": |
| 192 | self.serialiser.setMirrorY(True) |
| 193 | |
| 194 | |
| 195 | Drawer().execute() |