IFClite TypeScript API
    Preparing search index...

    Function groupsToSelectorText

    • Render groups back as selector-ish text — NOT a full inverse of parseSelector/selectorToFilterRules (most rule kinds have no single canonical spelling; a regex Name rule and a typed-in contains rule both become Rule.name, and only one of those round-trips through text). What this DOES round-trip exactly is the shape the selector's own union syntax cares about: class names (IfcWall, IfcDoor, …) and GlobalIds, +-joined across groups. Used by the Selector field to echo back what the CURRENT filter state reads as, so adding a second group in the builder is visible as a second +-joined clause without leaving the builder (#4904).

      All-or-nothing: an empty group, or a group whose rules do not reduce to exactly ONE renderable clause, makes the WHOLE echo '' rather than a partial rendering — review (PR #4987) caught that joining per-group fragments with + regardless produced text that read as a DIFFERENT query than what evaluation actually runs: an empty group left a dangling +, and several ifcType/globalId rules AND'd within one group rendered as comma-separated union terms (selector-text unions use , to ADD classes, not narrow them), so a two-rule AND group echoed as something the evaluator would read as broader than what it actually matches. Silently showing a narrower or broader query back to the user is the same "matched nothing, said nothing" defect class #4091 exists to avoid, so this omits the echo entirely rather than guess.

      Parameters

      Returns string