IFClite TypeScript API
    Preparing search index...

    Function quantitySiScale

    • SI scale factor for a Qto_ value, preferring its explicit Unit and then resolving against the project's declared units.

      An IfcQuantityLength/Area/Volume is stored in the project's raw author unit exactly like an IfcPropertySingleValue of the matching measure type — the value is not pre-converted to SI by the exporter. A consumer that hashes or otherwise compares CollectedQuantity.value across two files (or against a base-SI literal) as-is therefore reads a project's choice of length unit as a change in the design itself: the same 2 m wall authored in millimetres carries the raw value 2000 instead of 2.

      1 for Count/Weight/Time/Number — this only scales the three quantity types that are themselves IfcLengthMeasure-family measures.

      Area and Volume scale by the SQUARE and CUBE of the length factor (a millimetre-authored 1 m² is stored as 1e6, not 1e3) — but only as a FALLBACK: IFC lets a project declare an explicit AREAUNIT/VOLUMEUNIT with no arithmetic relationship to LENGTHUNIT, so the file's own declaration is preferred and the length-derived power is used only when the project declares none. An explicit member Unit always wins; IFC uses it specifically to let a quantity depart from its containing project's assignment.

      Parameters

      Returns number