Update material classification UI on changing selected materials #6902

This commit is contained in:
Andrej730
2025-07-14 17:12:21 +05:00
parent 3f0e30245b
commit d165cd2692
@@ -20,6 +20,7 @@ import ifcopenshell
import bpy import bpy
from ifcopenshell.util.doc import get_entity_doc from ifcopenshell.util.doc import get_entity_doc
import bonsai.tool as tool 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.material.data import MaterialsData, ObjectMaterialData
from bonsai.bim.module.profile.data import ProfileData from bonsai.bim.module.profile.data import ProfileData
from bonsai.bim.prop import StrProperty, Attribute from bonsai.bim.prop import StrProperty, Attribute
@@ -157,10 +158,16 @@ class Material(PropertyGroup):
class BIMMaterialProperties(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) is_editing: BoolProperty(name="Is Editing", default=False)
material_type: EnumProperty(items=get_material_types, update=update_material_type, name="Material Type") material_type: EnumProperty(items=get_material_types, update=update_material_type, name="Material Type")
materials: CollectionProperty(name="Materials", type=Material) 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") profiles: EnumProperty(items=get_profiles, name="Profiles")
active_material_id: IntProperty(name="Active Material ID") active_material_id: IntProperty(name="Active Material ID")
material_attributes: CollectionProperty(name="Material Attributes", type=Attribute) material_attributes: CollectionProperty(name="Material Attributes", type=Attribute)