IFC STEP attribute value as extracted from a STEP argument list.
Two WRITE-ONLY markers (never produced by extraction) let authoring code
pin the exact STEP token for a value whose type a bare JS primitive cannot
convey:
{ real: number } forces a STEP REAL literal with a decimal point for
whole numbers (5. not 5), which typed measures like IfcLengthMeasure
require. Plain number keeps the historical integer-when-whole behavior.
{ typed: { type, value } } forces a type-QUALIFIED value
IFC<TYPE>(<value>) — required for a SELECT member that is a defined type
(IFCBOOLEAN(.T.) in an IfcTranslationalStiffnessSelect slot) and for the
IfcValue family (IFCLABEL('x'), IFCLENGTHMEASURE(3.)). type is the
IFC type name ('IfcBoolean', 'IfcLengthMeasure'). It generalizes
{ real } ({ typed: { type: 'IfcReal', value: 450 } }). The exporter also
auto-qualifies unambiguous SELECT slots without a marker; this is the escape
hatch for the ambiguous ones (a select with several REAL-backed members).
IFC STEP attribute value as extracted from a STEP argument list.
Two WRITE-ONLY markers (never produced by extraction) let authoring code pin the exact STEP token for a value whose type a bare JS primitive cannot convey:
{ real: number }forces a STEP REAL literal with a decimal point for whole numbers (5.not5), which typed measures likeIfcLengthMeasurerequire. Plainnumberkeeps the historical integer-when-whole behavior.{ typed: { type, value } }forces a type-QUALIFIED valueIFC<TYPE>(<value>)— required for a SELECT member that is a defined type (IFCBOOLEAN(.T.)in anIfcTranslationalStiffnessSelectslot) and for theIfcValuefamily (IFCLABEL('x'),IFCLENGTHMEASURE(3.)).typeis the IFC type name ('IfcBoolean','IfcLengthMeasure'). It generalizes{ real }({ typed: { type: 'IfcReal', value: 450 } }). The exporter also auto-qualifies unambiguous SELECT slots without a marker; this is the escape hatch for the ambiguous ones (a select with several REAL-backed members).