diff --git a/src/ifcblenderexport/blenderbim/bim/__init__.py b/src/ifcblenderexport/blenderbim/bim/__init__.py index 73999e4ec3..0073aacb41 100644 --- a/src/ifcblenderexport/blenderbim/bim/__init__.py +++ b/src/ifcblenderexport/blenderbim/bim/__init__.py @@ -109,6 +109,7 @@ if bpy is not None: operator.ImportIfcCsv, operator.EyedropIfcCsv, operator.ReloadIfcFile, + operator.SelectSimilarType, prop.StrProperty, prop.Classification, prop.ClassificationReference, diff --git a/src/ifcblenderexport/blenderbim/bim/operator.py b/src/ifcblenderexport/blenderbim/bim/operator.py index b4d7e84f4c..9cbc8abbae 100644 --- a/src/ifcblenderexport/blenderbim/bim/operator.py +++ b/src/ifcblenderexport/blenderbim/bim/operator.py @@ -2212,3 +2212,20 @@ class ReloadIfcFile(bpy.types.Operator): context, bpy.context.scene.BIMProperties.ifc_file, logger) ifc_importer = import_ifc.IfcImporter(ifc_import_settings) ifc_importer.execute() + + +class SelectSimilarType(bpy.types.Operator): + bl_idname = 'bim.select_similar_type' + bl_label = 'Select Similar Type' + + def execute(self, context): + if context.active_object.BIMObjectProperties.relating_type: + relating_type = context.active_object.BIMObjectProperties.relating_type + elif 'Type/' in context.active_object.name: + relating_type = context.active_object + else: + return {'FINISHED'} + for obj in bpy.context.visible_objects: + if obj.BIMObjectProperties.relating_type == relating_type: + obj.select_set(True) + return {'FINISHED'} diff --git a/src/ifcblenderexport/blenderbim/bim/ui.py b/src/ifcblenderexport/blenderbim/bim/ui.py index a959eda12d..1384ddd63d 100644 --- a/src/ifcblenderexport/blenderbim/bim/ui.py +++ b/src/ifcblenderexport/blenderbim/bim/ui.py @@ -41,8 +41,9 @@ class BIM_PT_object(Panel): row = layout.row() row.prop(props, 'attributes') - row = layout.row() + row = layout.row(align=True) row.prop(props, 'relating_type') + row.operator('bim.select_similar_type', icon='RESTRICT_SELECT_OFF', text='') row = layout.row() row.prop(props, 'relating_structure')