Query roots
Origin and role
createdBy means the feature introduced the item. modifiedBy means it is in
the feature’s output lineage as a modified item. Roles identify semantic
classes; the optional sketch source distinguishes members created from one
authored entity.
Geometric predicates
Faces support:Logical composition
and and or flatten, deduplicate, and canonicalize their operands.
not() negates a query inside the current topology universe.
Adjacency
Adjacency crosses topology kinds through a completed selection:Cardinality is required intent
Finish a query with one of:select() and exactly(n) fail on any change in
count. atLeast(n) and between(min, max) accept every count in their range,
so an item gained or lost inside that range is not reported.
For shell openings and draft faces, the matched set is exactly the set of faces
the operation receives. Fillet and chamfer edges are different: each selected
edge is a seed that expands after the cardinality check to its maximal tangent
contour, where consecutive edges meet tangentially and the faces on both sides
also continue tangentially. A select() seed can therefore treat several
connected edges, and an upstream change that makes a neighboring edge and its
faces continue tangentially can grow the treated contour without a diagnostic.
See fillet and chamfer.
Explain a selection
explainTopologySelection evaluates the query against a detached topology
snapshot and returns a frozen aggregate report. It records the outcome,
topology kind, snapshot history, candidates considered and matched, required
cardinality, and the resolved keys on success. Failure diagnostics carry
additional bounded candidate summaries when the evaluator can provide them;
the public explanation does not expose per-candidate or logical-branch traces.
Use explanations for tooling and debugging; do not parse human-readable
diagnostic messages to recover selector state.