From 52fbe09dd42a97654bf9566362886bc173a049e1 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Thu, 13 Mar 2025 11:06:56 +1100 Subject: [PATCH] Fix syntax error otherwise nothing loads Also PortData is loaded in the authoring tool and there might not be any active object (e.g. fresh session). --- src/bonsai/bonsai/bim/module/model/profile.py | 7 ++++--- src/bonsai/bonsai/bim/module/system/data.py | 8 +++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index bafbc2ae72..413546110d 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -1154,10 +1154,11 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato if element1.is_a("IfcFlowSegment") or element1.is_a("IfcFlowFitting"): # lazy import to avoid circular import errors from bonsai.bim.module.model.mep import MEPGenerator + MEPGenerator().setup_ports(profile1["obj"]) - else: - for profile1, profile2 in zip(profiles[:-1], profiles[1:]): - DumbProfileJoiner().join_V(profile2["obj"], profile1["obj"]) + else: + for profile1, profile2 in zip(profiles[:-1], profiles[1:]): + DumbProfileJoiner().join_V(profile2["obj"], profile1["obj"]) def modal(self, context, event): return IfcStore.execute_ifc_operator(self, context, event, method="MODAL") diff --git a/src/bonsai/bonsai/bim/module/system/data.py b/src/bonsai/bonsai/bim/module/system/data.py index ac328014e0..d630f14af1 100644 --- a/src/bonsai/bonsai/bim/module/system/data.py +++ b/src/bonsai/bonsai/bim/module/system/data.py @@ -130,11 +130,9 @@ class PortData: @classmethod def load(cls): - obj = bpy.context.active_object - assert obj - element = tool.Ifc.get_entity(obj) - assert element - cls.element = element + cls.element = None + if obj := bpy.context.active_object: + cls.element = tool.Ifc.get_entity(obj) is_port = cls.is_port() cls.data = { "total_ports": cls.total_ports(),