diff --git a/src/blenderbim/blenderbim/bim/module/pset/__init__.py b/src/blenderbim/blenderbim/bim/module/pset/__init__.py index 648507b07a..ce6343975f 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/pset/__init__.py @@ -30,7 +30,6 @@ classes = ( operator.CalculateQuantity, operator.RemovePset, operator.TogglePsetExpansion, - operator.SelectSimilarPsetValue, operator.BIM_OT_add_property_to_edit, operator.BIM_OT_remove_property_to_edit, operator.BIM_OT_clear_list, diff --git a/src/blenderbim/blenderbim/bim/module/pset/operator.py b/src/blenderbim/blenderbim/bim/module/pset/operator.py index 48c4b43edb..c796a39ecd 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/operator.py +++ b/src/blenderbim/blenderbim/bim/module/pset/operator.py @@ -320,52 +320,6 @@ class EditPset(bpy.types.Operator, Operator): tool.Blender.update_viewport() -class SelectSimilarPsetValue(bpy.types.Operator): - """ - Selects objects with the same property value. - """ - bl_idname = "bim.select_similar_pset_value" - bl_label = "Select Similar Pset Value" - bl_options = {"REGISTER", "UNDO"} - bl_description = "Selects objects with the same property value.\n\n" + "ALT+CLICK to select from all pset common" - pset_name: bpy.props.StringProperty() - prop_name: bpy.props.StringProperty() - value: bpy.props.StringProperty() - all_pset_common: bpy.props.BoolProperty(name = "All Pset Common", default=False, options={"SKIP_SAVE"}) - - def invoke(self, context, event): - # make sure to use SKIP_SAVE on property, otherwise it might get stuck - if event.type == "LEFTMOUSE" and event.alt: - self.all_pset_common = True - return self.execute(context) - - def execute(self, context): - for element in tool.Ifc.get().by_type("IfcElement"): - try: - obj = tool.Ifc.get_object(element) - psets = ifcopenshell.util.element.get_psets(element) - except: - continue - - if self.all_pset_common & self.pset_name.endswith("Common"): - for key in psets.keys(): - if key.endswith("Common"): - try: - pset = psets[key] - if str(pset[self.prop_name]) == self.value: - obj.select_set(True) - except: - continue - else: - try: - pset = psets[self.pset_name] - if str(pset[self.prop_name]) == self.value: - obj.select_set(True) - except: - continue - return {"FINISHED"} - - class RemovePset(bpy.types.Operator, Operator): bl_idname = "bim.remove_pset" bl_label = "Remove Pset" diff --git a/src/blenderbim/blenderbim/bim/module/pset/ui.py b/src/blenderbim/blenderbim/bim/module/pset/ui.py index 56ff428e00..dbace8c67f 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/ui.py +++ b/src/blenderbim/blenderbim/bim/module/pset/ui.py @@ -135,10 +135,6 @@ def draw_psetqto_ui(context, pset_id, pset, props, layout, obj_type): row.scale_y = 0.8 row.label(text=prop["Name"]) row.label(text=str(prop["NominalValue"])) - op = row.operator("bim.select_similar_pset_value", text="", icon="RESTRICT_SELECT_OFF") - op.pset_name = pset["Name"] - op.prop_name = prop["Name"] - op.value = str(prop["NominalValue"]) if not has_props_displayed: row = box.row() row.scale_y = 0.8 diff --git a/src/blenderbim/blenderbim/bim/module/search/data.py b/src/blenderbim/blenderbim/bim/module/search/data.py index 62e2f46e78..bd42773059 100644 --- a/src/blenderbim/blenderbim/bim/module/search/data.py +++ b/src/blenderbim/blenderbim/bim/module/search/data.py @@ -101,5 +101,8 @@ class SelectSimilarData: keys = [a.name() for a in element.wrapped_data.declaration().as_entity().all_attributes()] psets = ifcopenshell.util.element.get_psets(element, psets_only=True) for pset, properties in psets.items(): - keys.extend([f"{pset}.{name}" for name in properties.keys() if name != "id"]) + if pset.endswith("Common"): + keys.extend([f'r".*Common"."{name}"' for name in properties.keys() if name != "id"]) + else: + keys.extend([f"{pset}.{name}" for name in properties.keys() if name != "id"]) return [(k, k, "") for k in keys]