From f09002c7e2fd7ec1a1a1568dfd60c433d4253fc1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Fri, 7 Feb 2025 16:58:45 +1100 Subject: [PATCH] Fix regression in caeabe2 where actor data didn't load. --- src/bonsai/bonsai/bim/module/owner/data.py | 17 ++++++++--------- src/bonsai/bonsai/bim/module/owner/prop.py | 12 ++++++------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/owner/data.py b/src/bonsai/bonsai/bim/module/owner/data.py index dec6cdd8a9..1637b41687 100644 --- a/src/bonsai/bonsai/bim/module/owner/data.py +++ b/src/bonsai/bonsai/bim/module/owner/data.py @@ -217,17 +217,16 @@ class ActorData: @classmethod def load(cls): - cls.data = { - "the_actor": cls.the_actor(), - "actors": cls.actors(), - "actor_class_enum": cls.actor_class_enum(), - "get_actor_type_enum": cls.get_actor_type_enum(), - } cls.is_loaded = True + cls.data["actor_class"] = cls.actor_class() + cls.data["actor_type"] = cls.actor_type() + cls.data["the_actor"] = cls.the_actor() + cls.data["actors"] = cls.actors() @classmethod def the_actor(cls): - ifc_class = bpy.context.scene.BIMOwnerProperties.actor_type + if not (ifc_class := bpy.context.scene.BIMOwnerProperties.actor_type): + ifc_class = cls.actor_type()[0][0] return [(str(p.id()), p[0] or "Unnamed", "") for p in tool.Ifc.get().by_type(ifc_class)] @classmethod @@ -249,7 +248,7 @@ class ActorData: return actors @classmethod - def actor_class_enum(cls) -> list[tuple[str, str, str]]: + def actor_class(cls) -> list[tuple[str, str, str]]: version = tool.Ifc.get_schema() return [ ("IfcActor", "Actor", get_entity_doc(version, "IfcActor").get("description", "")), @@ -257,7 +256,7 @@ class ActorData: ] @classmethod - def get_actor_type_enum(cls) -> list[tuple[str, str, str]]: + def actor_type(cls) -> list[tuple[str, str, str]]: version = tool.Ifc.get_schema() return [ ("IfcPerson", "Person", get_entity_doc(version, "IfcPerson").get("description", "")), diff --git a/src/bonsai/bonsai/bim/module/owner/prop.py b/src/bonsai/bonsai/bim/module/owner/prop.py index 51e4d2871e..bd531aa342 100644 --- a/src/bonsai/bonsai/bim/module/owner/prop.py +++ b/src/bonsai/bonsai/bim/module/owner/prop.py @@ -65,16 +65,16 @@ def update_actor_class(self, context): ActorData.data["actors"] = ActorData.actors() -def get_actor_class_enum(self, context): +def get_actor_class(self, context): if not ActorData.is_loaded: ActorData.load() - return ActorData.data["actor_class_enum"] + return ActorData.data["actor_class"] -def get_actor_type_enum(self, context): +def get_actor_type(self, context): if not ActorData.is_loaded: ActorData.load() - return ActorData.data["actor_type_enum"] + return ActorData.data["actor_type"] class BIMOwnerProperties(PropertyGroup): @@ -106,12 +106,12 @@ class BIMOwnerProperties(PropertyGroup): active_actor_id: IntProperty(name="Active Actor Id") actor_attributes: CollectionProperty(name="Actor Attributes", type=Attribute) actor_class: EnumProperty( - items=get_actor_class_enum, + items=get_actor_class, name="Actor Type", update=update_actor_class, ) actor_type: EnumProperty( - items=get_actor_type_enum, + items=get_actor_type, name="Actor Type", update=update_actor_type, )