@@ -104,24 +104,44 @@ def load(cls):
104104 def connections (cls ):
105105 results = []
106106 element = tool .Ifc .get_entity (bpy .context .active_object )
107- for rel in getattr (element , "ConnectedTo" , []):
107+
108+ connected_to = getattr (element , "ConnectedTo" , [])
109+ connected_from = getattr (element , "ConnectedFrom" , [])
110+
111+ for rel in connected_to :
112+ if element .is_a ("IfcDistributionPort" ):
113+ related_element = rel .RelatedPort
114+ related_element_connection_type = ""
115+ else :
116+ related_element = rel .RelatedElement
117+ related_element_connection_type = rel .RelatedConnectionType
118+
108119 results .append (
109120 {
110121 "id" : rel .id (),
111122 "is_relating" : True ,
112- "Name" : rel . RelatedElement .Name or "Unnamed" ,
113- "ConnectionType" : rel . RelatingConnectionType ,
123+ "Name" : related_element .Name or "Unnamed" ,
124+ "ConnectionType" : related_element_connection_type ,
114125 }
115126 )
116- for rel in getattr (element , "ConnectedFrom" , []):
127+
128+ for rel in connected_from :
129+ if element .is_a ("IfcDistributionPort" ):
130+ relating_element = rel .RelatingPort
131+ relating_element_connection_type = ""
132+ else :
133+ relating_element = rel .RelatingElement
134+ relating_element_connection_type = rel .RelatingConnectionType
135+
117136 results .append (
118137 {
119138 "id" : rel .id (),
120139 "is_relating" : False ,
121- "Name" : rel . RelatingElement .Name or "Unnamed" ,
122- "ConnectionType" : rel . RelatedConnectionType ,
140+ "Name" : relating_element .Name or "Unnamed" ,
141+ "ConnectionType" : relating_element_connection_type ,
123142 }
124143 )
144+
125145 return results
126146
127147
0 commit comments