From 4a69df1f6bf750dda47e23579a60cf021ad49a87 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 24 Jun 2025 13:37:05 +0500 Subject: [PATCH] Classification source - automatically update on changes in bsdd ui --- src/bonsai/bonsai/bim/module/bsdd/prop.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/bonsai/bonsai/bim/module/bsdd/prop.py b/src/bonsai/bonsai/bim/module/bsdd/prop.py index e1e3f781f2..ea3260909d 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/prop.py +++ b/src/bonsai/bonsai/bim/module/bsdd/prop.py @@ -20,6 +20,7 @@ import bpy import bonsai.tool as tool from bpy.types import PropertyGroup from bonsai.bim.module.bsdd.data import BSDDData +from bonsai.bim.module.classification.data import ClassificationsData from bonsai.bim.prop import Attribute, StrProperty from bpy.props import ( PointerProperty, @@ -42,6 +43,21 @@ def get_active_dictionary(self, context): def update_is_active(self: "BSDDDictionary", context: bpy.types.Context) -> None: BSDDData.data["active_dictionary"] = BSDDData.active_dictionary() + if ClassificationsData.is_loaded: + props = tool.Classification.get_classification_props() + # Preserve original enum value. + classification_source = props.classification_source + ClassificationsData.data["classification_source"] = ClassificationsData.classification_source() + + # Try to restore enum value. + if "classification_source" not in props: + # It's already on the default value, nothing to restore. + return + try: + props.classification_source = classification_source + except TypeError: + # Item is no longer active and not present in enum, fallback to the default. + del props["classification_source"] def update_is_selected(self: "BSDDProperty", context: bpy.types.Context) -> None: