diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index 6e1c71cf69..fd171484fa 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -627,7 +627,7 @@ class CreateDrawing(bpy.types.Operator): path.attrib["d"] = d group.append(g) - def generate_wall_layers(self, context: bpy.types.Context, root) -> None: + def generate_material_layers(self, context: bpy.types.Context, root) -> None: for el in root.findall(".//{http://www.w3.org/2000/svg}g[@{http://www.ifcopenshell.org/ns}guid]"): if "projection" in el.get("class", "").split(): continue @@ -842,7 +842,8 @@ class CreateDrawing(bpy.types.Operator): if tool.Drawing.is_camera_orthographic(): self.generate_bisect_linework(context, root) - self.generate_wall_layers(context, root) + if self.cprops.generate_material_layers: + self.generate_material_layers(context, root) self.merge_linework_and_add_metadata(root) self.move_elements_to_top(root) @@ -940,12 +941,14 @@ class CreateDrawing(bpy.types.Operator): if self.cprops.cut_mode == "BISECT": self.remove_cut_linework(root) self.generate_bisect_linework(context, root) - self.generate_wall_layers(context, root) + if self.cprops.generate_material_layers: + self.generate_material_layers(context, root) self.merge_linework_and_add_metadata(root) self.move_elements_to_top(root) elif self.cprops.cut_mode == "OPENCASCADE": self.move_projection_to_bottom(root) - self.generate_wall_layers(context, root) + if self.cprops.generate_material_layers: + self.generate_material_layers(context, root) self.merge_linework_and_add_metadata(root) self.move_elements_to_top(root) diff --git a/src/bonsai/bonsai/bim/module/drawing/prop.py b/src/bonsai/bonsai/bim/module/drawing/prop.py index fb5c05679a..0388f0387a 100644 --- a/src/bonsai/bonsai/bim/module/drawing/prop.py +++ b/src/bonsai/bonsai/bim/module/drawing/prop.py @@ -498,6 +498,11 @@ class BIMCameraProperties(PropertyGroup): name="Linework Mode", update=get_update_layer_callback("linework_mode", "LineworkMode"), ) + generate_material_layers: bpy.props.BoolProperty( + name="Generate Material Layers", + description="Generate material layer linework in drawings", + default=True + ) fill_mode: EnumProperty( items=[ ("NONE", "None", "Disable filling areas seen in projection"), diff --git a/src/bonsai/bonsai/bim/module/drawing/ui.py b/src/bonsai/bonsai/bim/module/drawing/ui.py index 905bc8e287..45e7acec97 100644 --- a/src/bonsai/bonsai/bim/module/drawing/ui.py +++ b/src/bonsai/bonsai/bim/module/drawing/ui.py @@ -99,12 +99,13 @@ class BIM_PT_camera(Panel): row = self.layout.row() row.prop(props, "linework_mode") + row = self.layout.row() + row.prop(props, "generate_material_layers") if props.linework_mode == "OPENCASCADE": row = self.layout.row() row.prop(props, "fill_mode") row = self.layout.row() row.prop(props, "cut_mode") - row = self.layout.row() row.prop(props, "width") row = self.layout.row()