ReadonlyonThe per-record callback to hand to the streaming parse. Dispatches each record to the matching subscribers. Bound so it can be passed directly.
Subscribe to records of the given entity types (including their subtypes).
The entity constructors whose subtype closures to match.
Called for each matching record.
Subscribe to every record regardless of type (the firehose — including external-mapping records).
Called for every record.
Routes the streaming parse's per-record events (M2) to consumers that subscribe by type set. A subscription's type set is the subtype closure of the entity constructors it names — the same
queryclosure the type index andexpressIDsOfTypesuse (conway #383) — soon([IfcRoot], …)matches every product, relationship, property set and quantity, and any future IfcRoot subtype, with no whitelist to maintain.Feed
dispatcher.onRecordIndexedtobuildIndexStreaming/parseDataBlockStreamed. Handlers run synchronously in the parse path, so they must be cheap (copy ids into a compact structure); anything expensive belongs on a demand queue, not here.Because subscriptions match on the raw parse
typeID, external-mapping / complex records (typeID 0) are only delivered viaonAnyRecord— resolving their concrete type is the incremental-type-index consumer's job (it readsmultiMapping), a follow-on. For the overwhelming majority of records (simple, one type each) type-set delivery is exact.