mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 01:41:57 +00:00
fixed bug in system.get_connected_to / get_connected_from
import was missing
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import ifcopenshell.util
|
||||
|
||||
group_types = {
|
||||
"IfcZone": ("IfcZone", "IfcSpace", "IfcSpatialZone"),
|
||||
"IfcBuiltSystem": (
|
||||
@@ -82,35 +84,37 @@ def get_connected_port(port):
|
||||
return rel.RelatingPort
|
||||
|
||||
|
||||
# TODO: cover in tests
|
||||
def get_connected_to(element):
|
||||
results = []
|
||||
for port in ifcopenshell.util.system.get_ports(element):
|
||||
for relConnectsPort in port.ConnectedTo:
|
||||
for disPort in [relConnectsPort.RelatedPort,relConnectsPort.RelatingPort]:
|
||||
if hasattr(disPort,"Nests"):
|
||||
for disPort in [relConnectsPort.RelatedPort, relConnectsPort.RelatingPort]:
|
||||
if hasattr(disPort, "Nests"):
|
||||
for relNest in disPort.Nests:
|
||||
if relNest.RelatingObject != element:
|
||||
results.append(relNest.RelatingObject)
|
||||
# IFC2X3 only, deprecated in IFC4
|
||||
elif hasattr(disPort,"ContainedIn"):
|
||||
elif hasattr(disPort, "ContainedIn"):
|
||||
for relConPortToElement in disPort.ContainedIn:
|
||||
if relConPortToElement.RelatedElement != element:
|
||||
results.append(relConPortToElement.RelatedElement)
|
||||
return(results)
|
||||
return results
|
||||
|
||||
|
||||
# TODO: cover in tests
|
||||
def get_connected_from(element):
|
||||
results = []
|
||||
for port in ifcopenshell.util.system.get_ports(element):
|
||||
for relConnectsPort in port.ConnectedFrom:
|
||||
for disPort in [relConnectsPort.RelatedPort,relConnectsPort.RelatingPort]:
|
||||
if hasattr(disPort,"Nests"):
|
||||
for disPort in [relConnectsPort.RelatedPort, relConnectsPort.RelatingPort]:
|
||||
if hasattr(disPort, "Nests"):
|
||||
for relNest in disPort.Nests:
|
||||
if relNest.RelatingObject != element:
|
||||
results.append(relNest.RelatingObject)
|
||||
# IFC2X3 only, deprecated in IFC4
|
||||
elif hasattr(disPort,"ContainedIn"):
|
||||
elif hasattr(disPort, "ContainedIn"):
|
||||
for relConPortToElement in disPort.ContainedIn:
|
||||
if relConPortToElement.RelatedElement != element:
|
||||
results.append(relConPortToElement.RelatedElement)
|
||||
return(results)
|
||||
return results
|
||||
|
||||
Reference in New Issue
Block a user