Add IFC4 support to get_connected_to and get_connected_from functions

This commit is contained in:
Chun
2023-03-14 00:37:34 +08:00
committed by Dion Moult
parent a406b9f7ef
commit a9636c5038
@@ -83,18 +83,18 @@ def get_connected_port(port):
def get_connected_to(element): def get_connected_to(element):
# Note: this code is for IFC2X3. IFC4 has a different approach.
results = [] results = []
for rel in element.HasPorts: for port in ifcopenshell.util.system.get_ports(element):
for rel2 in rel.RelatingPort.ConnectedTo: for relConnectsPort in port.ConnectedTo:
results.extend([r.RelatedElement for r in rel2.RelatedPort.ContainedIn if r.RelatedElement != element]) for relNest in relConnectsPort.RelatedPort.Nests:
results.extend(relNest.RelatingObject)
return results return results
def get_connected_from(element): def get_connected_from(element):
# Note: this code is for IFC2X3. IFC4 has a different approach. # Note: this code is for IFC2X3. IFC4 has a different approach.
results = [] results = []
for rel in element.HasPorts: for port in ifcopenshell.util.system.get_ports(element):
for rel2 in rel.RelatingPort.ConnectedFrom: for relConnectsPort in port.ConnectedFrom:
results.extend([r.RelatedElement for r in rel2.RelatingPort.ContainedIn if r.RelatedElement != element]) for relNest in relConnectsPort.RelatingPort.Nests:
return results results.extend(relNest.RelatingObject)
return results