IFClite TypeScript API
    Preparing search index...

    Interface ContentMatch<TRef>

    A content-hash-based match (or ambiguous match group) among entities the key-based pass classified as added/deleted (issue #1891).

    renamed, moved, reshaped and respecified are retiring kinds: the corresponding added/deleted DiffEntry pairs are removed from ModelDiff.entries in favour of this record. moved, reshaped and respecified always hold exactly one entity per side; renamed holds one per side except for the same-data-and-geometry group described in ContentMatchKind, where it holds N per side.

    For duplicated, deduplicated, and ambiguous, base/head hold every unresolved candidate, and those entities' added/deleted entries are left in ModelDiff.entries untouched — the engine reports the grouping instead of guessing a 1:1 pairing (see #1923).

    interface ContentMatch<TRef = unknown> {
        base: EntityFingerprint<TRef>[];
        changedComponents?: string[];
        dataHash: string;
        distance?: number;
        geometryHash?: string;
        head: EntityFingerprint<TRef>[];
        kind: ContentMatchKind;
        tier?: ContentMatchTier;
    }

    Type Parameters

    • TRef = unknown
    Index

    Base-revision entities in this match/group.

    changedComponents?: string[]

    On a respecified match whose two entities both carry EntityFingerprint.components: the component keys whose sub-hash differs, sorted, one-sided keys included — the same vocabulary as DiffEntry.changedComponents. This is what a reviewer reads to see WHAT changed on an element whose geometry did not.

    dataHash: string

    The shared EntityFingerprint.dataHash that grouped these entities. Empty ('') on a record the geometry-only stage produced from an N:N geometry bucket, where no data hash grouped anything — geometryHash did. A respecified pair carries the HEAD entity's data hash.

    distance?: number

    Bounding-box-centre displacement base→head, in the caller's units.

    Present only on moved/reshaped matches whose two entities both carried an EntityFingerprint.aabb. Reported as 0 below DiffOptions.moveTolerance, mirroring the viewer's describeChange.ts clamp (issue #1197): sub-tolerance jitter is tessellation noise, not a move.

    geometryHash?: string

    The shared world geometry hash, as a string, on records the geometry-only stage produced (tier: 'geometry-only', and the ambiguous groups it reports). Absent on every other record.

    Head-revision entities in this match/group.

    Which refinement tier produced this record. See ContentMatchTier.