mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 01:41:57 +00:00
eb9591e9a2
append_asset could not import an IfcGroup from a project library: IfcGroup was absent from APPENDABLE_ASSET, so execute() fell through every branch and returned None, appending nothing. Add IfcGroup to APPENDABLE_ASSET and an append_group() routine that mirrors append_product(): it whitelists the group's IsGroupedBy inverse so the members reached through IfcRelAssignsToGroup are copied via the regular element-append path (bringing their materials, properties and representations), and the relationship is recreated in the destination linking the copied group to the copied members. Idempotency comes from the existing GUID-based reuse, so re-appending the same group does not duplicate it. Verified headless: appending a group of three walls yields group=1, walls=3, IfcRelAssignsToGroup=1 with RelatingGroup and RelatedObjects correctly wired; re-appending is a no-op; appending a plain IfcProduct still works unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>