MCPcopy Create free account
hub / github.com/IfcOpenShell/IfcOpenShell / relations

Function relations

src/ifcquery/ifcquery/relations.py:182–197  ·  view source on GitHub ↗

Return relationships for an element, or hierarchy chain if traverse='up'.

(
    model: ifcopenshell.file, element: ifcopenshell.entity_instance, traverse: str | None = None
)

Source from the content-addressed store, hash-verified

180
181
182def relations(
183 model: ifcopenshell.file, element: ifcopenshell.entity_instance, traverse: str | None = None
184) -> dict[str, Any] | list[dict[str, Any]]:
185 """Return relationships for an element, or hierarchy chain if traverse='up'."""
186 if traverse == "up":
187 return _traverse_up(element)
188 result = _all_relations(model, element)
189
190 # Flat list of subject + all referenced elements, deduplicated.
191 # Allows --format ids to extract all involved IDs without jq.
192 seen: set[int] = set()
193 elements: list[dict[str, Any]] = []
194 _collect_elements(result, seen, elements)
195 result["elements"] = elements
196
197 return result

Calls 4

_traverse_upFunction · 0.85
_all_relationsFunction · 0.85
_collect_elementsFunction · 0.85
setFunction · 0.50