mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 23:36:20 +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/>.
|
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
|
import ifcopenshell.util
|
||||||
|
|
||||||
group_types = {
|
group_types = {
|
||||||
"IfcZone": ("IfcZone", "IfcSpace", "IfcSpatialZone"),
|
"IfcZone": ("IfcZone", "IfcSpace", "IfcSpatialZone"),
|
||||||
"IfcBuiltSystem": (
|
"IfcBuiltSystem": (
|
||||||
@@ -82,35 +84,37 @@ def get_connected_port(port):
|
|||||||
return rel.RelatingPort
|
return rel.RelatingPort
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: cover in tests
|
||||||
def get_connected_to(element):
|
def get_connected_to(element):
|
||||||
results = []
|
results = []
|
||||||
for port in ifcopenshell.util.system.get_ports(element):
|
for port in ifcopenshell.util.system.get_ports(element):
|
||||||
for relConnectsPort in port.ConnectedTo:
|
for relConnectsPort in port.ConnectedTo:
|
||||||
for disPort in [relConnectsPort.RelatedPort,relConnectsPort.RelatingPort]:
|
for disPort in [relConnectsPort.RelatedPort, relConnectsPort.RelatingPort]:
|
||||||
if hasattr(disPort,"Nests"):
|
if hasattr(disPort, "Nests"):
|
||||||
for relNest in disPort.Nests:
|
for relNest in disPort.Nests:
|
||||||
if relNest.RelatingObject != element:
|
if relNest.RelatingObject != element:
|
||||||
results.append(relNest.RelatingObject)
|
results.append(relNest.RelatingObject)
|
||||||
# IFC2X3 only, deprecated in IFC4
|
# IFC2X3 only, deprecated in IFC4
|
||||||
elif hasattr(disPort,"ContainedIn"):
|
elif hasattr(disPort, "ContainedIn"):
|
||||||
for relConPortToElement in disPort.ContainedIn:
|
for relConPortToElement in disPort.ContainedIn:
|
||||||
if relConPortToElement.RelatedElement != element:
|
if relConPortToElement.RelatedElement != element:
|
||||||
results.append(relConPortToElement.RelatedElement)
|
results.append(relConPortToElement.RelatedElement)
|
||||||
return(results)
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: cover in tests
|
||||||
def get_connected_from(element):
|
def get_connected_from(element):
|
||||||
results = []
|
results = []
|
||||||
for port in ifcopenshell.util.system.get_ports(element):
|
for port in ifcopenshell.util.system.get_ports(element):
|
||||||
for relConnectsPort in port.ConnectedFrom:
|
for relConnectsPort in port.ConnectedFrom:
|
||||||
for disPort in [relConnectsPort.RelatedPort,relConnectsPort.RelatingPort]:
|
for disPort in [relConnectsPort.RelatedPort, relConnectsPort.RelatingPort]:
|
||||||
if hasattr(disPort,"Nests"):
|
if hasattr(disPort, "Nests"):
|
||||||
for relNest in disPort.Nests:
|
for relNest in disPort.Nests:
|
||||||
if relNest.RelatingObject != element:
|
if relNest.RelatingObject != element:
|
||||||
results.append(relNest.RelatingObject)
|
results.append(relNest.RelatingObject)
|
||||||
# IFC2X3 only, deprecated in IFC4
|
# IFC2X3 only, deprecated in IFC4
|
||||||
elif hasattr(disPort,"ContainedIn"):
|
elif hasattr(disPort, "ContainedIn"):
|
||||||
for relConPortToElement in disPort.ContainedIn:
|
for relConPortToElement in disPort.ContainedIn:
|
||||||
if relConPortToElement.RelatedElement != element:
|
if relConPortToElement.RelatedElement != element:
|
||||||
results.append(relConPortToElement.RelatedElement)
|
results.append(relConPortToElement.RelatedElement)
|
||||||
return(results)
|
return results
|
||||||
|
|||||||
Reference in New Issue
Block a user