mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-29 08:13:14 +00:00
4a70250c68
Extract the duplicate-aware relationship-walk + restoration logic (get_decomposition_relationships, get_connection_relationships, get_port_connection_relationships, recreate_decompositions, recreate_connections, recreate_port_connections, consume_warnings) out of tool.Root into its own service. tool.Root's responsibility is identity and addressing of IFC roots; the duplicate-aware bookkeeping of "before duplication, what relations did this graph have, and how do I restore them on the new copies?" deserves its own home. The split was already declared on core/tool.py (C2); this commit lands the concrete tool.Duplicate implementation. tool.Root keeps its own copies of the methods on v0.8.0's tool/root.py during this PR so callers in bim/module/spatial/operator.py keep working at runtime; the Root cleanup lands in PR4 alongside the caller updates. Generated with the assistance of an AI coding tool.