From 9d70b9303b477912c51834dc0e437d9dd409eaa2 Mon Sep 17 00:00:00 2001 From: Chun <36185113+chunchk@users.noreply.github.com> Date: Tue, 14 Mar 2023 00:37:34 +0800 Subject: [PATCH] Add IFC4 support to get_connected_to and get_connected_from functions --- .../ifcopenshell/util/system.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/util/system.py b/src/ifcopenshell-python/ifcopenshell/util/system.py index 630df515ef..b89d281fec 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/system.py +++ b/src/ifcopenshell-python/ifcopenshell/util/system.py @@ -83,18 +83,18 @@ def get_connected_port(port): def get_connected_to(element): - # Note: this code is for IFC2X3. IFC4 has a different approach. results = [] - for rel in element.HasPorts: - for rel2 in rel.RelatingPort.ConnectedTo: - results.extend([r.RelatedElement for r in rel2.RelatedPort.ContainedIn if r.RelatedElement != element]) + for port in ifcopenshell.util.system.get_ports(element): + for relConnectsPort in port.ConnectedTo: + for relNest in relConnectsPort.RelatedPort.Nests: + results.extend(relNest.RelatingObject) return results - def get_connected_from(element): # Note: this code is for IFC2X3. IFC4 has a different approach. results = [] - for rel in element.HasPorts: - for rel2 in rel.RelatingPort.ConnectedFrom: - results.extend([r.RelatedElement for r in rel2.RelatingPort.ContainedIn if r.RelatedElement != element]) - return results + for port in ifcopenshell.util.system.get_ports(element): + for relConnectsPort in port.ConnectedFrom: + for relNest in relConnectsPort.RelatingPort.Nests: + results.extend(relNest.RelatingObject) + return results \ No newline at end of file