From 8624888bfc81ac139fcf6f05bc3c9ae1d7a260e0 Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Sat, 11 Mar 2023 14:13:32 +0100 Subject: [PATCH] You can now specify custom names for types instead of relying on the default "TYPEX" naming --- .../blenderbim/bim/module/model/prop.py | 1 + .../blenderbim/bim/module/model/ui.py | 1 + .../blenderbim/bim/module/type/operator.py | 19 ++++++++++--------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/model/prop.py b/src/blenderbim/blenderbim/bim/module/model/prop.py index 43de76c9c6..38b030b5b0 100644 --- a/src/blenderbim/blenderbim/bim/module/model/prop.py +++ b/src/blenderbim/blenderbim/bim/module/model/prop.py @@ -244,6 +244,7 @@ class BIMModelProperties(PropertyGroup): ) type_class: bpy.props.EnumProperty(items=get_type_class, name="IFC Class", update=update_type_class) type_predefined_type: bpy.props.EnumProperty(items=get_type_predefined_type, name="Predefined Type", default=None) + type_name: bpy.props.StringProperty(name="Name", default="TYPEX") class BIMArrayProperties(PropertyGroup): diff --git a/src/blenderbim/blenderbim/bim/module/model/ui.py b/src/blenderbim/blenderbim/bim/module/model/ui.py index 02c14968f9..0326713ef6 100644 --- a/src/blenderbim/blenderbim/bim/module/model/ui.py +++ b/src/blenderbim/blenderbim/bim/module/model/ui.py @@ -72,6 +72,7 @@ class LaunchTypeManager(bpy.types.Operator): row.alignment = "CENTER" row.prop(props, "type_predefined_type", text="") row.prop(props, "type_template", text="") + row.prop(props, "type_name", text="") row.operator("bim.add_type", icon="ADD", text="") row = columns.row(align=True) diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index 60fff7464c..dcde68142c 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -162,6 +162,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): props = context.scene.BIMModelProperties ifc_class = props.type_class predefined_type = props.type_predefined_type + name = props.type_name template = props.type_template ifc_file = tool.Ifc.get() body = ifcopenshell.util.representation.get_context(ifc_file, "Model", "Body", "MODEL_VIEW") @@ -176,14 +177,14 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): if element: mesh = obj.data.copy() mesh.BIMMeshProperties.ifc_definition_id = 0 - obj = bpy.data.objects.new(element.Name or "TYPEX", mesh) + obj = bpy.data.objects.new(element.Name or name, mesh) else: - mesh = bpy.data.meshes.new("TYPEX") + mesh = bpy.data.meshes.new(name) bm = bmesh.new() bmesh.ops.create_cube(bm, size=1) bm.to_mesh(mesh) bm.free() - obj = bpy.data.objects.new("TYPEX", mesh) + obj = bpy.data.objects.new(name, mesh) obj.matrix_world.col[3] = location.to_4d() blenderbim.core.root.assign_class( tool.Ifc, @@ -198,7 +199,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): ) elif template in ("LAYERSET_AXIS2", "LAYERSET_AXIS3"): unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - obj = bpy.data.objects.new("TYPEX", None) + obj = bpy.data.objects.new(name, None) element = blenderbim.core.root.assign_class( tool.Ifc, tool.Collector, @@ -231,7 +232,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.run("pset.edit_pset", ifc_file, pset=pset, properties={"LayerSetDirection": axis}) elif template == "PROFILESET": unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - obj = bpy.data.objects.new("TYPEX", None) + obj = bpy.data.objects.new(name, None) element = blenderbim.core.root.assign_class( tool.Ifc, tool.Collector, @@ -267,7 +268,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): "material.assign_profile", ifc_file, material_profile=material_profile, profile=profile ) elif template == "EMPTY": - obj = bpy.data.objects.new("TYPEX", None) + obj = bpy.data.objects.new(name, None) blenderbim.core.root.assign_class( tool.Ifc, tool.Collector, @@ -282,7 +283,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): elif template == "WINDOW": mesh = bpy.data.meshes.new("IfcWindow") - obj = bpy.data.objects.new("TYPEX", mesh) + obj = bpy.data.objects.new(name, mesh) element = blenderbim.core.root.assign_class( tool.Ifc, tool.Collector, @@ -300,7 +301,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): elif template == "DOOR": mesh = bpy.data.meshes.new("IfcDoor") - obj = bpy.data.objects.new("TYPEX", mesh) + obj = bpy.data.objects.new(name, mesh) element = blenderbim.core.root.assign_class( tool.Ifc, tool.Collector, @@ -318,7 +319,7 @@ class AddType(bpy.types.Operator, tool.Ifc.Operator): elif template == "STAIR": mesh = bpy.data.meshes.new("IfcStairFlight") - obj = bpy.data.objects.new("TYPEX", mesh) + obj = bpy.data.objects.new(name, mesh) element = blenderbim.core.root.assign_class( tool.Ifc, tool.Collector,