OptionalfilenameName 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.
OptionalguidSeeded 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.
OptionalkeepKeep 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.
OptionalneutralizeRewrite 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.
OptionalpseudonymizeAlso 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: 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.
OptionalpseudonymizeReplace Name/LongName/Description/Tag on every exported
IfcRoot with a <IfcType>-<n> pseudonym. Default true.
OptionalregenerateRegenerate every exported IfcRoot's GlobalId (the old→new mapping
comes back as AnonymizeResult.guidMap, never written into the file
itself). Default true.
OptionalremoveRemove IfcMapConversion(Scaled)/IfcProjectedCRS and blank
IfcSite's georeferencing/address attributes and
IfcBuilding.BuildingAddress. Default true.
OptionalscrubScrub 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.
OptionaltimePin the STEP header FILE_NAME timestamp (STEP format, e.g.
20240101T000000). Omitted = the wall clock.
OptionalzeroZero the translation of each root IfcLocalPlacement
(PlacementRelTo = $), preserving Axis/RefDirection and every child
placement untouched. Default true.
What to scrub, and how, when exporting the
subsetEntityIdsselection as an anonymized STEP file. Every field defaults to the value stated in its own doc comment (alltrue/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.