From d28f62d327f360e4c3010b8e9b27adbca5784abb Mon Sep 17 00:00:00 2001 From: Manu Varkey Date: Sat, 1 Jun 2024 16:28:07 +0530 Subject: [PATCH] Bug fix in editing material set item profile (#4784) Fixes bug: Editing a profile under MaterialProfileSetUsage opened dialog boxes under all profiles. --- src/blenderbim/blenderbim/bim/module/material/operator.py | 2 ++ src/blenderbim/blenderbim/bim/module/material/ui.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/blenderbim/blenderbim/bim/module/material/operator.py b/src/blenderbim/blenderbim/bim/module/material/operator.py index 09bc1e0f87..26ec81b5b7 100644 --- a/src/blenderbim/blenderbim/bim/module/material/operator.py +++ b/src/blenderbim/blenderbim/bim/module/material/operator.py @@ -562,6 +562,7 @@ class EnableEditingMaterialSetItemProfile(bpy.types.Operator): def execute(self, context): obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.props = obj.BIMObjectMaterialProperties + self.props.active_material_set_item_id = self.material_set_item self.props.material_set_item_profile_attributes.clear() profile = tool.Ifc.get().by_id(self.material_set_item).Profile blenderbim.bim.helper.import_attributes2(profile, self.props.material_set_item_profile_attributes) @@ -577,6 +578,7 @@ class DisableEditingMaterialSetItemProfile(bpy.types.Operator): def execute(self, context): obj = bpy.data.objects.get(self.obj) if self.obj else context.active_object self.props = obj.BIMObjectMaterialProperties + self.props.active_material_set_item_id = 0 self.props.material_set_item_profile_attributes.clear() return {"FINISHED"} diff --git a/src/blenderbim/blenderbim/bim/module/material/ui.py b/src/blenderbim/blenderbim/bim/module/material/ui.py index 17ff769851..1db1c7953d 100644 --- a/src/blenderbim/blenderbim/bim/module/material/ui.py +++ b/src/blenderbim/blenderbim/bim/module/material/ui.py @@ -228,7 +228,7 @@ class BIM_PT_object_material(Panel): total_items = len(ObjectMaterialData.data["set_items"]) for index, set_item in enumerate(ObjectMaterialData.data["set_items"]): - if len(self.props.material_set_item_profile_attributes): + if len(self.props.material_set_item_profile_attributes) and self.props.active_material_set_item_id == set_item["id"]: self.draw_editable_set_item_profile_ui(set_item) elif self.props.active_material_set_item_id == set_item["id"]: self.draw_editable_set_item_ui(set_item)