IFClite TypeScript API
    Preparing search index...

    Interface AnonymizeOptions

    What to scrub, and how, when exporting the subsetEntityIds selection as an anonymized STEP file. Every field defaults to the value stated in its own doc comment (all true/enabled except where noted) — an anonymized export with no options at all is the maximally-scrubbed one, since the whole point of the feature is that a caller has to opt BACK IN to keep an identifying signal, never opt in to remove one.

    interface AnonymizeOptions {
        filename?: string;
        guidRandom?: RandomSource;
        keepPropertySets?: boolean;
        neutralizeCurrency?: boolean;
        pseudonymizeAllNames?: boolean;
        pseudonymizeNames?: boolean;
        regenerateGlobalIds?: boolean;
        removeGeoreferencing?: boolean;
        scrubOwnerHistory?: boolean;
        timeStamp?: string;
        zeroRootPlacement?: boolean;
    }
    Index
    filename?: string

    Name recorded in the exported STEP header's FILE_NAME field — NOT necessarily the name the caller writes the file to disk under. Default 'anonymized.ifc', chosen because it is neutral: a caller that passes the real output path or project name here (e.g. Acme-Tower.ifc) defeats the anonymization by writing the identifying name straight back into the header of the file this option exists to scrub it from.

    guidRandom?: RandomSource

    Seeded randomness for regenerated GlobalIds (and any other id this export synthesizes) — omitted means the platform CSPRNG, so two runs of an otherwise-identical anonymization differ in exactly those bytes. Pass the same source across repeat runs for byte-reproducible output.

    keepPropertySets?: boolean

    Keep IfcPropertySet/IfcElementQuantity entities instead of dropping them. Default false: exportAnonymizedSubset excludes every such id from includedIds before export, however it got there (a caller's own IfcRelDefinesByProperties walk, or a hand-built id set) — the entity never reaches the output, values included, at any includedIds (#3351 item 2). Property/quantity VALUES are unscrubbed by design, so setting this true keeps them exactly as authored; there is no partial, "kept but scrubbed" state.

    neutralizeCurrency?: boolean

    Rewrite every IfcMonetaryUnit.Currency to US dollars (.USD. under IFC2X3's enum, 'USD' under IFC4+'s label), so a cost-loaded model does not reveal its country. Default true.

    pseudonymizeAllNames?: boolean

    Also pseudonymize names OUTSIDE the IfcRoot text fields: ObjectType, IfcTypeObject.ApplicableOccurrence, IfcElementType.ElementType and IfcProject.Phase on roots, and every quoted-string Name / Description / LongName / ProfileName / LayerSetName / Category on non-IfcRoot entities — Category on ANY non-root class declaring it, IfcMaterialProfile and IfcMaterialConstituent included, not only IfcMaterial / IfcMaterialLayer — (IfcSurfaceStyle, IfcMaterial*, IfcPresentationLayerAssignment, IfcProfileDef, IfcColourRgb, …). A surface style called after the building it belongs to identifies the project as surely as IfcProject.Name does, and ElementType is the type-side twin of ObjectType, carrying the same authored text ("Basic Wall: Exterior 300"). Enum-valued Names (IfcSIUnit.Name = .METRE.) are never touched, nor are property / quantity names (schema semantics, only present under keepPropertySets) or IfcApplication. Default true; independent of pseudonymizeNames.

    pseudonymizeNames?: boolean

    Replace Name/LongName/Description/Tag on every exported IfcRoot with a <IfcType>-<n> pseudonym. Default true.

    regenerateGlobalIds?: boolean

    Regenerate every exported IfcRoot's GlobalId (the old→new mapping comes back as AnonymizeResult.guidMap, never written into the file itself). Default true.

    removeGeoreferencing?: boolean

    Remove IfcMapConversion(Scaled)/IfcProjectedCRS and blank IfcSite's georeferencing/address attributes and IfcBuilding.BuildingAddress. Default true.

    scrubOwnerHistory?: boolean

    Scrub the owner-history chain: blank IfcPerson/IfcOrganization identifying fields, zero IfcOwnerHistory.CreationDate and blank LastModifiedDate, blank IfcApplication.Version (a vendor build string such as 26.0.0 NOR FULL encodes the licence region), and blank the STEP header's originating_system. IfcApplication's name and identifier are kept — the authoring tool is debugging signal, its regional build is not. Default true.

    timeStamp?: string

    Pin the STEP header FILE_NAME timestamp (STEP format, e.g. 20240101T000000). Omitted = the wall clock.

    zeroRootPlacement?: boolean

    Zero the translation of each root IfcLocalPlacement (PlacementRelTo = $), preserving Axis/RefDirection and every child placement untouched. Default true.