IFClite TypeScript API
    Preparing search index...

    Interface PendingOverlay

    The overlay's read surface, as every folding tool consumes it.

    interface PendingOverlay {
        created: readonly CreatedEntity[];
        createdAll: readonly CreatedEntity[];
        deleted: ReadonlySet<number>;
        pendingMutations: number;
        supersededRelationshipIds: ReadonlySet<number>;
        attributes(expressId: number): AttributeOverrides;
        attributesByEntity(): ReadonlyMap<number, AttributeOverrides>;
        createdEntity(expressId: number): CreatedEntity | null;
        effectiveType(expressId: number): string | null;
        getTypeMutations?(): ReadonlyMap<number, { newType: string }>;
        positionalAttributes(expressId: number): ReadonlyMap<number, unknown>;
        propertySets(expressId: number): PropertySet[];
        quantitySets(expressId: number): QuantitySet[];
        relationshipEdges(
            expressId: number,
            ifcRelType?: string,
        ): {
            direction: "forward" | "inverse";
            relationshipId: number;
            relationshipType: string;
            targetId: number;
        }[];
        typeMutations?(): ReadonlyMap<number, { newType: string }>;
    }
    Index
    created: readonly CreatedEntity[]

    Entities queued by entity_create that carry a GlobalId, in creation order. The identity list: model_diff compares on it, and get_entity(global_id) resolves against it. A created entity without one is reachable through createdEntity by expressId.

    createdAll: readonly CreatedEntity[]

    Every queued entity, GlobalId-bearing or not, in creation order. What a count is about: a created IfcCartesianPoint has no identity to compare but is still one more entity in the model. entity_delete on a queued entity drops it from this list, so a created-then-deleted entity appears here not at all and in deleted once.

    deleted: ReadonlySet<number>

    Express ids tombstoned by entity_delete. Empty is the common case. Since #2012 this includes an entity the session created and then deleted: deleteEntity tombstones it as well as forgetting it, so that "was this deleted" has a true answer to find. A count therefore has to intersect this with the store rather than subtracting its size — see foldedEntityCount.

    pendingMutations: number

    Queued mutations on this model — the same number mutation_diff reports. Echoed back so a caller can tell an answer that includes uncommitted edits from one taken over the file as parsed.

    supersededRelationshipIds: ReadonlySet<number>
    • Parameters

      • expressId: number

      Returns AttributeOverrides

    • Every entity with a queued attribute write, keyed by expressId. For loops over a whole model: attributes(id) builds a map per call, which is fine for one entity and not for a million.

      Returns ReadonlyMap<number, AttributeOverrides>

    • Any queued entity by expressId, GlobalId-bearing or not. Null when the id is not one this session created.

      Parameters

      • expressId: number

      Returns CreatedEntity | null

    • The class a queued setEntityType gives the entity (IfcWall spelling), or null when it keeps its authored class. Every read that names an entity's type must go through this, or it disagrees with what export writes (#5009 review).

      Parameters

      • expressId: number

      Returns string | null

    • Sparse retype intents for aggregate class counts; absent in older read shims.

      Returns ReadonlyMap<number, { newType: string }>

    • Parameters

      • expressId: number

      Returns ReadonlyMap<number, unknown>

    • Base property sets with the overlay's edits applied.

      Parameters

      • expressId: number

      Returns PropertySet[]

    • Base quantity sets with the overlay's edits applied.

      Parameters

      • expressId: number

      Returns QuantitySet[]

    • Parameters

      • expressId: number
      • OptionalifcRelType: string

      Returns {
          direction: "forward" | "inverse";
          relationshipId: number;
          relationshipType: string;
          targetId: number;
      }[]

    • Sparse queued class changes for effective whole-model enumeration.

      Returns ReadonlyMap<number, { newType: string }>