@openbim/ifc
    Preparing search index...

    Type Alias AuthorOp

    AuthorOp:
        | { attributes?: NamedAttributes; op: "create"; type: string }
        | { attributes: NamedAttributes; entity: bigint; op: "edit" }
        | { entity: bigint; op: "remove" }
        | { attributes?: NamedAttributes; op: "project"; ownerHistory?: bigint }
        | {
            attributes?: NamedAttributes;
            op: "spatial";
            ownerHistory?: bigint;
            parent: bigint;
            placement?: bigint;
            type: string;
        }
        | {
            attributes?: NamedAttributes;
            container?: bigint;
            op: "product";
            ownerHistory?: bigint;
            placement?: bigint;
            type: string;
            typeObject?: bigint;
        }
        | {
            attributes?: NamedAttributes;
            op: "typeObject";
            ownerHistory?: bigint;
            type: string;
        }
        | {
            layerSetDirection?: "AXIS1"
            | "AXIS2"
            | "AXIS3";
            mappingTarget?: bigint;
            mapRepresentations?: boolean;
            materialUsage?: boolean;
            objects: bigint[];
            op: "assignType";
            ownerHistory?: bigint;
            predefinedType?: "ignore" | "validate" | "sync";
            replace?: boolean;
            typeObject: bigint;
        }
        | {
            elements: bigint[];
            op: "contain";
            ownerHistory?: bigint;
            replace?: boolean;
            structure: bigint;
        }
        | {
            op: "aggregate";
            ownerHistory?: bigint;
            parent: bigint;
            parts: bigint[];
            replace?: boolean;
        }
        | {
            axis?: Triple;
            location?: Triple;
            op: "placement";
            refDirection?: Triple;
            relativeTo?: bigint;
        }
        | {
            applicationIdentifier: string;
            applicationName: string;
            applicationVersion: string;
            changeAction?: string;
            creationDate: bigint
            | number;
            familyName?: string;
            givenName?: string;
            lastModifiedDate?: bigint | number;
            op: "ownerHistory";
            organization: string;
            personIdentification?: string;
        }
        | {
            context: bigint;
            identifier?: string;
            items: bigint[];
            op: "shapeRepresentation";
            representationType?: string;
        }
        | { op: "assignRepresentation"; representation: bigint; to: bigint }
        | { from: bigint; op: "unassignRepresentation"; representation: bigint }
        | { op: "copyRepresentation"; representation: bigint }
        | { op: "removeRepresentation"; representation: bigint }
        | { op: "copyProduct"; product: bigint } & Omit<
            CopyProductOptions,
            "dryRun",
        >
        | {
            copy?: string[];
            copyDefinitions?: boolean;
            copyRoots?: boolean;
            entity: bigint;
            op: "copyEntity";
            share?: string[];
        }

    One operation of IfcModel.author. Every id is a bigint: an entity's id or IfcModel.handle(index), the entity an earlier operation of the batch produced. Builders take the ownerHistory they write on every record they create; none is invented.

    Type Declaration

    • { attributes?: NamedAttributes; op: "create"; type: string }

      One entity by type and named attributes.

    • { attributes: NamedAttributes; entity: bigint; op: "edit" }

      Replace named attributes; the whole entity is checked again.

    • { entity: bigint; op: "remove" }

      Remove an entity with the relationships that reference it.

    • { attributes?: NamedAttributes; op: "project"; ownerHistory?: bigint }

      The model's one IfcProject.

    • {
          attributes?: NamedAttributes;
          op: "spatial";
          ownerHistory?: bigint;
          parent: bigint;
          placement?: bigint;
          type: string;
      }

      A spatial element aggregated under parent (IfcRelAggregates).

    • {
          attributes?: NamedAttributes;
          container?: bigint;
          op: "product";
          ownerHistory?: bigint;
          placement?: bigint;
          type: string;
          typeObject?: bigint;
      }

      A product, contained in container and typed by typeObject.

    • {
          attributes?: NamedAttributes;
          op: "typeObject";
          ownerHistory?: bigint;
          type: string;
      }

      A type object (IfcWallType, ...).

    • {
          layerSetDirection?: "AXIS1" | "AXIS2" | "AXIS3";
          mappingTarget?: bigint;
          mapRepresentations?: boolean;
          materialUsage?: boolean;
          objects: bigint[];
          op: "assignType";
          ownerHistory?: bigint;
          predefinedType?: "ignore" | "validate" | "sync";
          replace?: boolean;
          typeObject: bigint;
      }

      IfcRelDefinesByType; an object already typed is refused unless replace, which unassigns its previous type and removes what that type propagated (#480). mapRepresentations maps the type's RepresentationMaps onto each object (through mappingTarget or an identity operator); materialUsage derives a layer or profile set usage from the type's set (layerSetDirection "AXIS1".."AXIS3" overrides the class default); predefinedType reconciles PredefinedType.

    • {
          elements: bigint[];
          op: "contain";
          ownerHistory?: bigint;
          replace?: boolean;
          structure: bigint;
      }

      IfcRelContainedInSpatialStructure; replace moves an element out of its previous container.

    • {
          op: "aggregate";
          ownerHistory?: bigint;
          parent: bigint;
          parts: bigint[];
          replace?: boolean;
      }

      IfcRelAggregates; replace moves a part out of its previous whole.

    • {
          axis?: Triple;
          location?: Triple;
          op: "placement";
          refDirection?: Triple;
          relativeTo?: bigint;
      }

      An IfcLocalPlacement; axis and refDirection both or neither.

    • {
          applicationIdentifier: string;
          applicationName: string;
          applicationVersion: string;
          changeAction?: string;
          creationDate: bigint | number;
          familyName?: string;
          givenName?: string;
          lastModifiedDate?: bigint | number;
          op: "ownerHistory";
          organization: string;
          personIdentification?: string;
      }

      An IfcOwnerHistory with its person, organization and application.

    • {
          context: bigint;
          identifier?: string;
          items: bigint[];
          op: "shapeRepresentation";
          representationType?: string;
      }

      An IfcShapeRepresentation of items in context, unassigned; representationType checked against the items (CorrectItemsForType) or inferred, identifier defaulting to the context's ContextIdentifier.

    • { op: "assignRepresentation"; representation: bigint; to: bigint }

      Assign a shape representation to a product (its IfcProductDefinitionShape) or a type (a new IfcRepresentationMap).

    • { from: bigint; op: "unassignRepresentation"; representation: bigint }

      Take a shape representation off a product or type; it stays, unassigned.

    • { op: "copyRepresentation"; representation: bigint }

      Copy a shape representation and its items, sharing its context, styles and mapped type geometry.

    • { op: "removeRepresentation"; representation: bigint }

      Remove a shape representation with what only it uses.

    • { op: "copyProduct"; product: bigint } & Omit<CopyProductOptions, "dryRun">

      Copy a product or type with what it solely owns (see IfcModel.copyProduct); produces the copy.

    • {
          copy?: string[];
          copyDefinitions?: boolean;
          copyRoots?: boolean;
          entity: bigint;
          op: "copyEntity";
          share?: string[];
      }

      Deep-copy an entity and what it references: classes in copy copied, in share (and entities a UNIQUE clause binds) shared; other IfcRoots shared unless copyRoots, definitions unless copyDefinitions. Produces the copy.