a simplifier workflow and a more consistent coding style

This commit is contained in:
Chun
2023-03-16 00:29:33 +08:00
parent ab17b85854
commit 4bdf5475a9
@@ -83,31 +83,34 @@ def get_connected_port(port):
def get_connected_to(element): def get_connected_to(element):
from blenderbim.bim.ifc import IfcStore
ifcSchema = IfcStore.get_file().schema
results = [] results = []
if ifcSchema == "IFC4": 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 relNest in relConnectsPort.RelatedPort.Nests: if hasattr(disPort,"Nests"):
results.extend(relNest.RelatingObject) for relNest in disPort.Nests:
elif ifcSchema == "IFC2X3": if relNest.RelatingObject != element:
for port in element.HasPorts: results.append(relNest.RelatingObject)
for relConnectsPort in port.RelatingPort.ConnectedTo: # IFC2X3 only, deprecated in IFC4
results.extend([r.RelatedElement for r in relConnectsPort.RelatedPort.ContainedIn if r.RelatedElement != element]) elif hasattr(disPort,"ContainedIn"):
return results for relConPortToElement in disPort.ContainedIn:
if relConPortToElement.RelatedElement != element:
results.append(relConPortToElement.RelatedElement)
return(results)
def get_connected_from(element): def get_connected_from(element):
from blenderbim.bim.ifc import IfcStore
ifcSchema = IfcStore.get_file().schema
results = [] results = []
if ifcSchema == "IFC4": 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 relNest in relConnectsPort.RelatedPort.Nests: if hasattr(disPort,"Nests"):
results.extend(relNest.RelatingObject) for relNest in disPort.Nests:
elif ifcSchema == "IFC2X3": if relNest.RelatingObject != element:
for port in element.HasPorts: results.append(relNest.RelatingObject)
for relConnectsPort in port.RelatingPort.ConnectedFrom: # IFC2X3 only, deprecated in IFC4
results.extend([r.RelatedElement for r in relConnectsPort.RelatingPort.ContainedIn if r.RelatedElement != element]) elif hasattr(disPort,"ContainedIn"):
return results for relConPortToElement in disPort.ContainedIn:
if relConPortToElement.RelatedElement != element:
results.append(relConPortToElement.RelatedElement)
return(results)