From d83924b73ecc9acecc3cc0ab04d09912382eca88 Mon Sep 17 00:00:00 2001 From: Ryan Schultz Date: Fri, 23 Feb 2024 12:51:16 -0600 Subject: [PATCH] Selects all the instances from selected instances that have different types --- .../blenderbim/bim/module/type/operator.py | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/type/operator.py b/src/blenderbim/blenderbim/bim/module/type/operator.py index 7965f38715..8d1348c709 100644 --- a/src/blenderbim/blenderbim/bim/module/type/operator.py +++ b/src/blenderbim/blenderbim/bim/module/type/operator.py @@ -166,15 +166,17 @@ class SelectSimilarType(bpy.types.Operator): 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 - relating_type = ifcopenshell.util.element.get_type(tool.Ifc.get_entity(related_object)) - if not relating_type: - return {"FINISHED"} - related_objects = ifcopenshell.util.element.get_types(relating_type) - for obj in context.visible_objects: - element = tool.Ifc.get_entity(obj) - if element and element in related_objects: - obj.select_set(True) + objects = bpy.context.selected_objects + for related_object in objects: + relating_type = ifcopenshell.util.element.get_type(tool.Ifc.get_entity(related_object)) + if not relating_type: + related_object.select_set(False) + continue + related_objects = ifcopenshell.util.element.get_types(relating_type) + for obj in context.visible_objects: + element = tool.Ifc.get_entity(obj) + if element and element in related_objects: + obj.select_set(True) return {"FINISHED"}