From 755fa8181743bb0bc89f97bed32497f52f63025f Mon Sep 17 00:00:00 2001 From: Sigma Dimensions <79010126+myoualid@users.noreply.github.com> Date: Mon, 12 Jun 2023 15:23:24 +0100 Subject: [PATCH] Fix displaying connections for selected distribution ports --- .../blenderbim/bim/module/geometry/data.py | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/data.py b/src/blenderbim/blenderbim/bim/module/geometry/data.py index aae9f6c06b..0c95c61d2f 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/data.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/data.py @@ -104,24 +104,44 @@ class ConnectionsData: def connections(cls): results = [] element = tool.Ifc.get_entity(bpy.context.active_object) - for rel in getattr(element, "ConnectedTo", []): + + connected_to = getattr(element, "ConnectedTo", []) + connected_from = getattr(element, "ConnectedFrom", []) + + for rel in connected_to: + if element.is_a("IfcDistributionPort"): + related_element = rel.RelatedPort + related_element_connection_type = "" + else: + related_element = rel.RelatedElement + related_element_connection_type = rel.RelatedConnectionType + results.append( { "id": rel.id(), "is_relating": True, - "Name": rel.RelatedElement.Name or "Unnamed", - "ConnectionType": rel.RelatingConnectionType, + "Name": related_element.Name or "Unnamed", + "ConnectionType": related_element_connection_type, } ) - for rel in getattr(element, "ConnectedFrom", []): + + for rel in connected_from: + if element.is_a("IfcDistributionPort"): + relating_element = rel.RelatingPort + relating_element_connection_type = "" + else: + relating_element = rel.RelatingElement + relating_element_connection_type = rel.RelatingConnectionType + results.append( { "id": rel.id(), "is_relating": False, - "Name": rel.RelatingElement.Name or "Unnamed", - "ConnectionType": rel.RelatedConnectionType, + "Name": relating_element.Name or "Unnamed", + "ConnectionType": relating_element_connection_type, } ) + return results