diff --git a/src/blenderbim/blenderbim/bim/module/type/__init__.py b/src/blenderbim/blenderbim/bim/module/type/__init__.py index e55172a517..09d2184577 100644 --- a/src/blenderbim/blenderbim/bim/module/type/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/type/__init__.py @@ -8,6 +8,7 @@ classes = ( operator.DisableEditingType, operator.SelectSimilarType, operator.SelectTypeObjects, + operator.SelectType, prop.BIMTypeProperties, prop.BIMTypeObjectProperties, ui.BIM_PT_type, diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index 8d3380362e..d332341a37 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -109,6 +109,24 @@ class DisableEditingType(bpy.types.Operator): return {"FINISHED"} +class SelectType(bpy.types.Operator): + bl_idname = "bim.select_type" + bl_label = "Select Type" + bl_options = {"REGISTER", "UNDO"} + related_object: bpy.props.StringProperty() + + def execute(self, context): + self.file = IfcStore.get_file() + related_object = bpy.data.objects.get(self.related_object) if self.related_object else context.active_object + oprops = related_object.BIMObjectProperties + obj = IfcStore.get_element( + ifcopenshell.util.element.get_type(self.file.by_id(oprops.ifc_definition_id)).GlobalId + ) + context.view_layer.objects.active = obj + obj.select_set(True) + return {"FINISHED"} + + class SelectSimilarType(bpy.types.Operator): bl_idname = "bim.select_similar_type" bl_label = "Select Similar Type" diff --git a/src/blenderbim/blenderbim/bim/module/type/ui.py b/src/blenderbim/blenderbim/bim/module/type/ui.py index b5ad10687d..0e319198da 100644 --- a/src/blenderbim/blenderbim/bim/module/type/ui.py +++ b/src/blenderbim/blenderbim/bim/module/type/ui.py @@ -64,6 +64,7 @@ class BIM_PT_type(Panel): else: label = name row.label(text=label) + row.operator("bim.select_type", icon="TRACKER", text="") row.operator("bim.select_similar_type", icon="RESTRICT_SELECT_OFF", text="") row.operator("bim.enable_editing_type", icon="GREASEPENCIL", text="") if name != "None/None":