Root namespaces
All roots expose
all, createdBy, modifiedBy, and persistentReference.
Predicates
Surface and curve strings are kernel descriptor kinds. Prefer semantic
origin/role filters for modeled intent when possible.
Tolerances and orientation
normal and direction match when the angle between the requested vector and
the descriptor’s vector is at most the angular tolerance. The requested vector
need not be unit length, but it cannot be zero.
- Face
normalis oriented. It compares against the face normal the kernel reports, which is outward for planar faces on the OCCT backend, sonormal(scalarVec3(0, 0, 1))andnormal(scalarVec3(0, 0, -1))select opposite faces. - Edge
directionignores sign.direction(scalarVec3(1, 0, 0))anddirection(scalarVec3(-1, 0, 0))select the same edges. radiusmatches when the descriptor radius differs from the requested radius by at most the linear tolerance.positionapplies its linear tolerance to each axis separately. A vertex matches when every coordinate is within the tolerance, which is a box around the requested point rather than a sphere.
TOPOLOGY_SELECTOR_INVALID.
Origin options
Algebra
EveryTopologyQuery<K> supports:
Completion/cardinality
Counts are positive safe integers, at most
Number.MAX_SAFE_INTEGER, and a
maximum cannot be less than its minimum. The builder throws a RangeError for
any other count. validateDocument and selection resolution reject such a
selection with TOPOLOGY_SELECTOR_INVALID, and document parsing rejects it with
IR_INVALID. There is no zero-match completed selection in the
current feature authoring surface.
Persistent atom
Resolution outcomes
Ordinary selection resolution returns keys only when cardinality is satisfied. Missing and ambiguous diagnostics include a frozen explanation report. DirectexplainTopologySelection turns only the outermost selection’s
resolved, missing, or ambiguous outcome into a successful report. Everything
else stays a failed result:
- a malformed selection or query input (
TOPOLOGY_SELECTOR_INVALID) - any nested
adjacentToselection that is itself missing or ambiguous - any persistent-atom failure
- an origin query against partial history (
TOPOLOGY_HISTORY_UNAVAILABLE) - an exhausted operational limit
- a malformed kernel snapshot (
KERNEL_ERRORwithprotocolViolation: true)
and or or without operands, a not
without its query, an adjacentTo without its selection, an invalid count, a
zero normal or direction vector, and an invalid tolerance with
TOPOLOGY_SELECTOR_INVALID, whether it finds the problem before or after
reading the snapshot. The direct functions do not schema-check every leaf
field, so hand-built IR with a missing leaf field, such as a surface query
without a kind, can match nothing and report a missing selection instead.
Selections built with the topology builders or read by parseDocument are
always well formed.
Persistent resolution distinguishes:
- exact compatible unique match
- missing match
- ambiguous match
- malformed evidence
- incompatible protocol/fingerprint
- exhausted operational limit
- malformed kernel snapshot