From d165cd2692da47f299ecbf0b07ed89b965922157 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 14 Jul 2025 17:12:21 +0500 Subject: [PATCH] Update material classification UI on changing selected materials #6902 --- src/bonsai/bonsai/bim/module/material/prop.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bonsai/bonsai/bim/module/material/prop.py b/src/bonsai/bonsai/bim/module/material/prop.py index c65dae65fe..a5bf95efd5 100644 --- a/src/bonsai/bonsai/bim/module/material/prop.py +++ b/src/bonsai/bonsai/bim/module/material/prop.py @@ -20,6 +20,7 @@ import ifcopenshell import bpy from ifcopenshell.util.doc import get_entity_doc import bonsai.tool as tool +from bonsai.bim.module.classification.data import MaterialClassificationsData from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData from bonsai.bim.module.profile.data import ProfileData from bonsai.bim.prop import StrProperty, Attribute @@ -157,10 +158,16 @@ class Material(PropertyGroup): class BIMMaterialProperties(PropertyGroup): + + def update_active_material_index(self, context: bpy.types.Context) -> None: + if not MaterialClassificationsData.is_loaded: + return + MaterialClassificationsData.data["references"] = MaterialClassificationsData.references() + is_editing: BoolProperty(name="Is Editing", default=False) material_type: EnumProperty(items=get_material_types, update=update_material_type, name="Material Type") materials: CollectionProperty(name="Materials", type=Material) - active_material_index: IntProperty(name="Active Material Index") + active_material_index: IntProperty(name="Active Material Index", update=update_active_material_index) profiles: EnumProperty(items=get_profiles, name="Profiles") active_material_id: IntProperty(name="Active Material ID") material_attributes: CollectionProperty(name="Material Attributes", type=Attribute)