Collects a model's outbound cross-model references during the streaming parse and, once locations are readable, resolves them into navigable federation links (M5 / design S3).

The links come from IFC's own reference entities — IfcExternalReference and its subtypes (IfcDocumentReference, IfcClassificationReference, IfcLibraryReference) — and, for STEP AP242, its external references. Two phases, matching M2's "identify while parsing, resolve on demand":

  1. Identify — subscribe handler to a StreamingRecordDispatcher for the reference types (dispatcher.on([IfcExternalReference], reg.handler)); it records the express ID of every such record as it streams past. Cheap and idempotent (a Set), so the rare grow-restart is harmless.
  2. Resolve — after parse, resolve reads each reference's Location via a ReferenceLocationReader and resolves it against the source model URI, yielding CrossReferenceLinks the UI renders as links. Visiting one opens the target model in the ModelRegistry.

The location read is deferred because the event stream carries only (localID, expressID, typeID) — not attribute strings; pulling Location needs the entity's fields, which is a model read, not a parse event.

Type Parameters

  • TypeIDType extends number

Constructors

Properties

Accessors

Methods

Constructors

Properties

handler: RecordHandler<TypeIDType> = ...

Record one cross-reference entity. Bind to a dispatcher subscription filtered to the reference types; every record it is handed is taken to be a cross-reference (the dispatcher does the type filtering).

Unused (kept for the RecordHandler shape).

The reference entity's express ID.

Unused (the dispatcher already matched the type set).

Accessors

  • get count(): number
  • Returns number

    The number of cross-references collected.

Methods

  • Returns IterableIterator<number, any, any>

    The express IDs of the collected reference entities.

  • Resolve the collected references into navigable links by reading each one's Location and resolving it against the source model URI. References whose location is absent (null / empty) are skipped — they carry no link.

    Parameters

    Returns CrossReferenceLink[]

    The resolved outbound links.