mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
e6697d0956
Spatial.select_products now takes mode="ADD"|"REMOVE"|"FILTER" instead of the mutually exclusive remove / filter_selection booleans, matching the regex dialog's action enum; helper.selection_mode() maps each operator's two flag properties to it. core.select_by_material updated accordingly. Upstream callers pass only products/unhide and are unaffected. select_ifc_class, select_similar_type, select_aggregate and select_linked_aggregates now collect elements and delegate to select_products instead of hand-rolling unhide/select/filter loops; select_aggregate's manual IsDecomposedBy recursion is replaced with get_parts/get_decomposition. Only select_similar keeps a bespoke loop (tolerance-based value matching). Intentional behavior deltas (also in the dev note): remove mode uses plain select_set(False), so select_ifc_class no longer re-anchors the active object; select_similar_type drops its O(n^2) visible_objects gate and can latently select hidden occurrences like the other operators; select_ifc_class and select_similar_type write the clipboard query in every mode. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>