IFClite TypeScript API
    Preparing search index...

    Type Alias ContentMatchTier

    ContentMatchTier:
        | "geometry-hash"
        | "geometry-only"
        | "residue-1-1"
        | "positional"
        | "unresolved"

    WHICH refinement tier inside a content bucket produced a match — the evidence behind it, as opposed to ContentMatchKind, which is what the match claims happened.

    • geometry-hash — TIER 1. The base and head entities landed in the same world-geometry-hash sub-bucket, N per side. The strongest evidence the pass has: data and world shape+position agree.
    • residue-1-1 — TIER 2. Exactly one base and one head were left in the bucket after tier 1, and they agreed on ifcType and every component sub-hash. This is the pass's only destructive path resting on the data hash alone.
    • geometry-only — the stage BETWEEN tiers 1 and 2 (issue #4955). The base and head entities agreed on ifcType, world geometry hash and bounding box, 1:1, with different data. The only tier that crosses data buckets.
    • positional — TIER 3. An N:M leftover paired by iterated mutual nearest neighbour on bounding-box centres.
    • unresolved — nothing was retired; the record is a reported group (duplicated / deduplicated / ambiguous).

    Reported so a caller can weigh a match by the evidence behind it, and so a validation harness can score the tiers separately — an aggregate number hides a tier that has stopped firing behind the tiers that still do. undefined only where a producer predates this field.