OptionalApplicableIfcDate.
OptionalAppliedLiteral typed value, written as a named SELECT branch.
OptionalAppliedexpressId of an IfcMeasureWithUnit, the entity branch of
IfcAppliedValueSelect. Mutually exclusive with AppliedValue.
OptionalArithmeticOptionalCategoryOptionalComponentsexpressIds of the IfcAppliedValue / IfcCostValue entities this value is
computed from, in order. Absent writes $; an empty array is rejected.
Repeating an expressId shares that entity rather than copying it.
OptionalConditionOptionalDescriptionOptionalFixedIfcDate.
OptionalNameOptionalUnitexpressId of an IfcMeasureWithUnit giving the basis this rate is quoted per — a rate "per 100 m²" has a UnitBasis of 100 SQUARE_METRE. It is a divisor, not a label: dropping or inventing it moves the amount by whole orders of magnitude.
IfcCostValue.
AppliedValueandComponentsare NOT interchangeable and this builder never derives one from the other: a value that carried a literalAppliedValuein the source is written with that literal and noComponents, and a value that was the sum of itsComponentsis written withComponentsand an absentAppliedValue. Normalising either way would change what the file says about where the number came from.