From e240ae2669f6e87e2df1c4d2a51cb44472427664 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Sun, 2 Mar 2025 11:24:07 +0000 Subject: [PATCH] Fix bpy.ops.bim.select_by_material() for layersets This operator assumes all material definitions have a Name attribute, mostly they do except that Material Layer Sets have a LayerSetName attribute for reasons. --- src/bonsai/bonsai/bim/module/material/operator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/material/operator.py b/src/bonsai/bonsai/bim/module/material/operator.py index 79168e7d1f..ec415478d6 100644 --- a/src/bonsai/bonsai/bim/module/material/operator.py +++ b/src/bonsai/bonsai/bim/module/material/operator.py @@ -67,7 +67,10 @@ class SelectByMaterial(bpy.types.Operator): core.select_by_material(tool.Material, tool.Spatial, material=material) # copy selection query to clipboard - material_name = material.Name + if material.is_a("IfcMaterialLayerSet"): + material_name = material.LayerSetName + else: + material_name = material.Name result = f'material="{material_name}"' bpy.context.window_manager.clipboard = result self.report({"INFO"}, f"({result}) was copied to the clipboard.")