@ifc-lite/create 2.5.0 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -116,4 +116,46 @@ export function intList(values) {
116
116
  ? '$'
117
117
  : `(${values.map(v => String(Math.trunc(v))).join(',')})`;
118
118
  }
119
+ /**
120
+ * Serialize an IfcPropertySingleValue NominalValue as a named SELECT branch.
121
+ *
122
+ * Moved here from `IfcCreator` (it never touched class state) so that file
123
+ * stays inside its recorded module-size budget.
124
+ */
125
+ export function serializePropertyValue(prop) {
126
+ const val = prop.NominalValue;
127
+ if (typeof val === 'string') {
128
+ const typeName = prop.Type ?? 'IfcLabel';
129
+ return `${typeName.toUpperCase()}('${esc(val)}')`;
130
+ }
131
+ if (typeof val === 'number') {
132
+ const typeName = prop.Type ?? (Number.isInteger(val) ? 'IfcInteger' : 'IfcReal');
133
+ return typeName === 'IfcInteger' ? `IFCINTEGER(${Math.round(val)})` : `IFCREAL(${num(val)})`;
134
+ }
135
+ if (typeof val === 'boolean') {
136
+ // `Type: 'IfcLogical'` (tri-state) must not be downgraded to IFCBOOLEAN.
137
+ const typeName = prop.Type === 'IfcLogical' ? 'IFCLOGICAL' : 'IFCBOOLEAN';
138
+ return `${typeName}(${val ? '.T.' : '.F.'})`;
139
+ }
140
+ return '$';
141
+ }
142
+ /**
143
+ * Serialize the `Unit, <Kind>Value` pair of an IfcPhysicalSimpleQuantity.
144
+ *
145
+ * Moved here from `IfcCreator` for the same reason as
146
+ * {@link serializePropertyValue}.
147
+ */
148
+ export function quantityValueField(qty) {
149
+ switch (qty.Kind) {
150
+ case 'IfcQuantityLength':
151
+ case 'IfcQuantityArea':
152
+ case 'IfcQuantityVolume':
153
+ case 'IfcQuantityWeight':
154
+ return `$,${num(qty.Value)}`;
155
+ case 'IfcQuantityCount':
156
+ return `$,${Math.round(qty.Value)}`;
157
+ default:
158
+ return `$,${num(qty.Value)}`;
159
+ }
160
+ }
119
161
  //# sourceMappingURL=ifc-creator-math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ifc-creator-math.js","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ifc-creator-math.js","sourceRoot":"","sources":["../src/ifc-creator-math.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAS/D,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;IAC7D,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,GAAG,CAAC,CAAS;IAC3B,sEAAsE;IACtE,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjF,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,MAAM,CAAC,CAAU;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,YAAY;IAC3D,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU;CAC/C,CAAC,CAAC;AAEH,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,GAAG,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACnH,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA8B,EAAE,OAAe;IAClF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,mCAAmC,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA+B,EAAE,OAAe;IACjF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,IAAI,+BAA+B,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,QAAQ,CAAC,CAAU,EAAE,CAAU;IAC7C,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC1B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,uEAAuE;AACvE,+EAA+E;AAC/E,2EAA2E;AAC3E,4EAA4E;AAC5E,iDAAiD;AAEjD,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CAAC,CAA4B;IACjD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACzE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,OAAO,CAAC,CAA4B;IAClD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,OAAO,CAAC,CAA6B;IACnD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACjE,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,CAA4B;IAClD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,MAAM,CAAC,CAA4B;IACjD,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAC,GAAa;IACnC,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACzE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,OAAO,CAAC,MAA4B;IAClD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAChD,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAiB;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;QACzC,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/F,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC1E,OAAO,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAgB;IACjD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,mBAAmB,CAAC;QACzB,KAAK,iBAAiB,CAAC;QACvB,KAAK,mBAAmB,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,kBAAkB;YACrB,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC;YACE,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
@@ -14,6 +14,7 @@
14
14
  * All values in metres unless LengthUnit is overridden.
15
15
  */
16
16
  import type { Point3D, Point2D, Placement3D, ElementAttributes, ProfileDef, GenericElementParams, AxisElementParams, WallParams, SlabParams, ColumnParams, BeamParams, StairParams, RoofParams, GableRoofParams, WallDoorParams, WallWindowParams, DoorParams, WindowParams, RampParams, RailingParams, PlateParams, MemberParams, FootingParams, PileParams, SpaceParams, CurtainWallParams, FurnishingParams, ProxyParams, ProjectParams, StoreyParams, PropertySetDef, QuantitySetDef, MaterialDef, WorkScheduleParams, WorkPlanParams, TaskParams, SequenceParams, WorkCalendarParams, CreateResult } from './types.js';
17
+ import type { CostItemParams, CostQuantityParams, CostScheduleParams, CostTypedValue, CostValueParams, SIUnitParams } from './types-cost.js';
17
18
  /**
18
19
  * PLACEMENT CONTRACT
19
20
  *
@@ -291,6 +292,8 @@ export declare class IfcCreator {
291
292
  addIfcPropertySet(elementId: number, pset: PropertySetDef): number;
292
293
  /** Attach element quantities to an element */
293
294
  addIfcElementQuantity(elementId: number, qset: QuantitySetDef): number;
295
+ /** The creator hooks `ifc-creator-definitions.ts`'s emitters need. */
296
+ private definitionContext;
294
297
  /**
295
298
  * Assign a named colour to an element. Call before toIfc().
296
299
  * Elements without a custom colour get the default grey.
@@ -382,6 +385,26 @@ export declare class IfcCreator {
382
385
  addIfcRelNests(relatingObjectId: number, relatedObjectIds: number[]): number;
383
386
  /** Ergonomic alias — delegates to {@link addIfcRelNests}. */
384
387
  nestTasks(parentTaskId: number, childTaskIds: number[]): number;
388
+ /** Create an IfcCostSchedule (IFC4 / IFC4X3 only). Returns its expressId. */
389
+ addIfcCostSchedule(params: CostScheduleParams): number;
390
+ /** Create an IfcCostItem (IFC4 / IFC4X3 only). Returns its expressId. */
391
+ addIfcCostItem(params: CostItemParams): number;
392
+ /** Create an IfcCostValue (IFC4 / IFC4X3 only). Returns its expressId. */
393
+ addIfcCostValue(params: CostValueParams): number;
394
+ /** Create an IfcMonetaryUnit for `currency`. No default — omit it to leave the currency unstated. */
395
+ addIfcMonetaryUnit(currency: string): number;
396
+ /** Create an IfcSIUnit, for use as an IfcMeasureWithUnit or quantity unit. */
397
+ addIfcSIUnit(params: SIUnitParams): number;
398
+ /** Create an IfcMeasureWithUnit — what a UnitBasis or entity-valued AppliedValue points at. */
399
+ addIfcMeasureWithUnit(value: CostTypedValue, unitId: number): number;
400
+ /** Create a standalone IfcPhysicalSimpleQuantity for IfcCostItem.CostQuantities. */
401
+ addIfcPhysicalQuantity(params: CostQuantityParams): number;
402
+ /** Emit an IfcRelAssignsToProduct — see {@link emitRelAssignsToProduct} for the direction rule. */
403
+ addIfcRelAssignsToProduct(relatingProductId: number, relatedObjectIds: number[]): number;
404
+ assignCostItemsToSchedule(scheduleId: number, costItemIds: number[]): number;
405
+ assignCostItemsToProduct(productId: number, costItemIds: number[]): number;
406
+ assignTasksToCostItem(costItemId: number, taskIds: number[]): number;
407
+ nestCostItems(parentCostItemId: number, childCostItemIds: number[]): number;
385
408
  /**
386
409
  * Internal — emit an IfcWorkSchedule or IfcWorkPlan (identical attribute
387
410
  * layout). Separate helpers are exposed publicly for ergonomics.
@@ -536,9 +559,7 @@ export declare class IfcCreator {
536
559
  * The opening extrudes through the slab along Z.
537
560
  */
538
561
  private addSlabOpening;
539
- private serializePropertyValue;
540
562
  private ifc4Only;
541
- private quantityValueField;
542
563
  private finalizeRelationships;
543
564
  private addIfcRelAggregates;
544
565
  private addIfcRelContainedInSpatialStructure;
@@ -1 +1 @@
1
- {"version":3,"file":"ifc-creator.d.ts","sourceRoot":"","sources":["../src/ifc-creator.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EAAE,WAAW,EAC7B,iBAAiB,EAAE,UAAU,EAC7B,oBAAoB,EAAE,iBAAiB,EACvC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAC1F,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EACrF,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EACpD,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAC7D,aAAa,EAA8B,YAAY,EACvD,cAAc,EAAe,cAAc,EAC3C,WAAW,EACX,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAC9D,kBAAkB,EACH,YAAY,EAC5B,MAAM,YAAY,CAAC;AAcpB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAA+B;IAE7C,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,aAAa,CAA2E;IAGhG,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,gBAAgB,CAAkC;IAG1D,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAoC;IAC1D,uEAAuE;IACvE,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAkC;IACxD,4CAA4C;IAC5C,OAAO,CAAC,cAAc,CAAkC;IACxD,sCAAsC;IACtC,OAAO,CAAC,eAAe,CAAkC;IAEzD,OAAO,CAAC,aAAa,CAAgB;IAErC,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEvC,MAAM,GAAE,aAAkB;IAkBtC,oGAAoG;IACpG,OAAO,CAAC,KAAK;IAIb,mGAAmG;IACnG,OAAO,CAAC,WAAW;IAsBnB,yFAAyF;IACzF,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAsBlD;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAmDxD;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA6CxD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAK5D;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAIvE,OAAO,CAAC,cAAc;IA2BtB;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAuCxD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAyD1D;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA6CxD;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM;IAgFlE;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM;IAsC9D;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAqClE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA+BxD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IA8B5D;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA0CxD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IAsE9D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAkC1D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAoC5D;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IA6B9D;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAqCxD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAmC1D;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAqCtE;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM;IA8B3E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAuCzE;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,iBAAiB,GAAG,MAAM;IA2B9B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACzC,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IAuC9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACnD,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,iBAAiB,GAAG,MAAM;IA2B9B;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,iBAAiB,GAAG,MAAM;IAiD9B,0CAA0C;IAC1C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM;IAyBlE,8CAA8C;IAC9C,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM;IA6BtE;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ9E;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAkCzD;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAItD;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAI9C;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAStD;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAIhB;IAEF;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IA0CtC;;;OAGG;IACH,iBAAiB,CACf,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,cAAmB,GAC1B,MAAM;IAsBT;;;;OAIG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAUxF;;;OAGG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxE;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxE;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpE;;;;OAIG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAUxF,wEAAwE;IACxE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAIlE;;;OAGG;IACH,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAU5E,6DAA6D;IAC7D,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAI/D;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkCxB,oEAAoE;IACpE,KAAK,IAAI,YAAY;IAsBrB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,UAAU;IA8BlB,oFAAoF;IACpF,OAAO,CAAC,iBAAiB;IAiBzB,+EAA+E;IAC/E,OAAO,CAAC,cAAc;IAyBtB,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAiBvB,oFAAoF;IACpF,OAAO,CAAC,mBAAmB;IAW3B,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM;IAmBrE;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAYzE,+BAA+B;IAC/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAUxC,qDAAqD;IACrD,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAUrE,wDAAwD;IACxD,gBAAgB,CACd,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAC1C,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,iDAAiD;IACjD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAC/C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,8CAA8C;IAC9C,gBAAgB,CACd,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAClC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,kDAAkD;IAClD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAClC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,sDAAsD;IACtD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GACnC,MAAM;IAWT,wDAAwD;IACxD,yBAAyB,CACvB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EACjD,iBAAiB,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GACrD,MAAM;IAaT,kFAAkF;IAClF,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;IAc9C;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAa1G;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAWlE,kEAAkE;IAClE,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAWnD,4EAA4E;IAC5E,mBAAmB,IAAI,MAAM;IAI7B,2DAA2D;IAC3D,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM;IAIlC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAqD1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,MAAM;IAwClE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAuDnE;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA8CtB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oCAAoC;IAQ5C,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,EAAE;IAIV,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,YAAY;IASpB,kEAAkE;IAClE,OAAO,CAAC,mBAAmB;CAK5B"}
1
+ {"version":3,"file":"ifc-creator.d.ts","sourceRoot":"","sources":["../src/ifc-creator.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,OAAO,EAAE,OAAO,EAAE,WAAW,EAC7B,iBAAiB,EAAE,UAAU,EAC7B,oBAAoB,EAAE,iBAAiB,EACvC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAC1F,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EACrF,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EACpD,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAC7D,aAAa,EAAE,YAAY,EAC3B,cAAc,EAAE,cAAc,EAC9B,WAAW,EACX,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAC9D,kBAAkB,EACH,YAAY,EAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EACtE,eAAe,EAAE,YAAY,EAC9B,MAAM,iBAAiB,CAAC;AAmBzB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAA+B;IAE7C,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,aAAa,CAA2E;IAGhG,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,gBAAgB,CAAkC;IAG1D,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAoC;IAC1D,uEAAuE;IACvE,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAkC;IACxD,4CAA4C;IAC5C,OAAO,CAAC,cAAc,CAAkC;IACxD,sCAAsC;IACtC,OAAO,CAAC,eAAe,CAAkC;IAEzD,OAAO,CAAC,aAAa,CAAgB;IAErC,qFAAqF;IACrF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;gBAEvC,MAAM,GAAE,aAAkB;IAkBtC,oGAAoG;IACpG,OAAO,CAAC,KAAK;IAIb,mGAAmG;IACnG,OAAO,CAAC,WAAW;IAsBnB,yFAAyF;IACzF,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAsBlD;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;OAMG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAmDxD;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA6CxD;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAK5D;;;;;;;;;;;;;;;OAeG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAIvE,OAAO,CAAC,cAAc;IA2BtB;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAuCxD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAyD1D;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA6CxD;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM;IAgFlE;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM;IAsC9D;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAqClE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA+BxD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IA8B5D;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IA0CxD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IAsE9D;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAkC1D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAoC5D;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IA6B9D;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAqCxD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAkC1D;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAqCtE;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM;IA8B3E;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAuCzE;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC7C,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,iBAAiB,GAAG,MAAM;IA2B9B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACzC,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IAuC9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,iBAAiB,GAAG,MAAM;IA8C9B;;OAEG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QACnD,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,iBAAiB,GAAG,MAAM;IA2B9B;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,iBAAiB,GAAG,MAAM;IAiD9B,0CAA0C;IAC1C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM;IAIlE,8CAA8C;IAC9C,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM;IAItE,sEAAsE;IACtE,OAAO,CAAC,iBAAiB;IASzB;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQ9E;;;;;;OAMG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI;IAkCzD;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAItD;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAI9C;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAStD;;;;OAIG;IACH,OAAO,CAAC,UAAU,CAIhB;IAEF;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IA0CtC;;;OAGG;IACH,iBAAiB,CACf,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,MAAM,GAAE,cAAmB,GAC1B,MAAM;IAsBT;;;;OAIG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAUxF;;;OAGG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxE;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAIxE;;;;;OAKG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpE;;;;OAIG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAUxF,wEAAwE;IACxE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAIlE;;;OAGG;IACH,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAU5E,6DAA6D;IAC7D,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM;IAM/D,6EAA6E;IAC7E,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAOtD,yEAAyE;IACzE,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAO9C,0EAA0E;IAC1E,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM;IAOhD,qGAAqG;IACrG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAK5C,8EAA8E;IAC9E,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAK1C,+FAA+F;IAC/F,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAKpE,oFAAoF;IACpF,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;IAK1D,mGAAmG;IACnG,yBAAyB,CAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAQxF,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAI5E,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IAI1E,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAIpE,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM;IAI3E;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkCxB,oEAAoE;IACpE,KAAK,IAAI,YAAY;IAsBrB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,aAAa;IAyErB,OAAO,CAAC,UAAU;IAqClB,oFAAoF;IACpF,OAAO,CAAC,iBAAiB;IAiBzB,+EAA+E;IAC/E,OAAO,CAAC,cAAc;IAyBtB,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAiBvB,oFAAoF;IACpF,OAAO,CAAC,mBAAmB;IAW3B,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM;IAmBrE;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM;IAYzE,+BAA+B;IAC/B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAUxC,qDAAqD;IACrD,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAUrE,wDAAwD;IACxD,gBAAgB,CACd,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAC1C,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,iDAAiD;IACjD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAC/C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,8CAA8C;IAC9C,gBAAgB,CACd,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAClC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,kDAAkD;IAClD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAClC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAC7C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM;IAYT,sDAAsD;IACtD,gBAAgB,CACd,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC5B,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GACnC,MAAM;IAWT,wDAAwD;IACxD,yBAAyB,CACvB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EACjD,iBAAiB,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GACrD,MAAM;IAaT,kFAAkF;IAClF,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;IAc9C;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAa1G;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAWlE,kEAAkE;IAClE,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM;IAWnD,4EAA4E;IAC5E,mBAAmB,IAAI,MAAM;IAI7B,2DAA2D;IAC3D,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM;IAIlC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAqD1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,MAAM;IAwClE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAuDnE;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA8CtB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,oCAAoC;IAQ5C,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,EAAE;IAIV,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,YAAY;IASpB,kEAAkE;IAClE,OAAO,CAAC,mBAAmB;CAK5B"}
@@ -3,6 +3,8 @@
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
4
  import { esc, stepLine, num, vecLen, vecNorm, vecCross, optStr, optEnum, NON_ELEMENT_TYPES, assertPositiveFinite, assertFinitePoint3, } from './ifc-creator-math.js';
5
5
  import { emitWorkCalendar, emitTaskTime } from './ifc-creator-scheduling.js';
6
+ import { assertCostSchema, emitCostItem, emitCostSchedule, emitCostValue, emitMeasureWithUnit, emitMonetaryUnit, emitPhysicalQuantity, emitRelAssignsToProduct, emitSIUnit, } from './ifc-creator-cost.js';
7
+ import { emitElementQuantity, emitPropertySet } from './ifc-creator-definitions.js';
6
8
  import { generateIfcGuid, isValidIfcGuid } from '@ifc-lite/encoding';
7
9
  // ============================================================================
8
10
  // IfcCreator
@@ -836,7 +838,6 @@ export class IfcCreator {
836
838
  const name = params.Name ?? 'Space';
837
839
  const desc = params.Description ? `'${esc(params.Description)}'` : '$';
838
840
  const objType = params.ObjectType ? `'${esc(params.ObjectType)}'` : '$';
839
- const tag = params.Tag ? `'${esc(params.Tag)}'` : '$';
840
841
  const longName = params.LongName ? `'${esc(params.LongName)}'` : '$';
841
842
  this.line(spaceId, 'IFCSPACE', `'${globalId}',#${this.ownerHistoryId},'${esc(name)}',${desc},${objType},#${placementId},#${prodShapeId},${longName},.ELEMENT.,.INTERNAL.,$`);
842
843
  this.elementSolids.set(spaceId, [solidId]);
@@ -1180,39 +1181,16 @@ export class IfcCreator {
1180
1181
  // ============================================================================
1181
1182
  /** Attach a property set to an element */
1182
1183
  addIfcPropertySet(elementId, pset) {
1183
- const propIds = [];
1184
- for (const prop of pset.Properties) {
1185
- const propId = this.id();
1186
- const valueStr = this.serializePropertyValue(prop);
1187
- this.line(propId, 'IFCPROPERTYSINGLEVALUE', `'${esc(prop.Name)}',$,${valueStr},$`);
1188
- propIds.push(propId);
1189
- }
1190
- const psetId = this.id();
1191
- const globalId = this.newGlobalId();
1192
- const refs = propIds.map(id => `#${id}`).join(',');
1193
- this.line(psetId, 'IFCPROPERTYSET', `'${globalId}',#${this.ownerHistoryId},'${esc(pset.Name)}',$,(${refs})`);
1194
- const relId = this.id();
1195
- const relGlobalId = this.newGlobalId();
1196
- this.line(relId, 'IFCRELDEFINESBYPROPERTIES', `'${relGlobalId}',#${this.ownerHistoryId},$,$,(#${elementId}),#${psetId}`);
1197
- return psetId;
1184
+ return emitPropertySet(elementId, pset, this.definitionContext());
1198
1185
  }
1199
1186
  /** Attach element quantities to an element */
1200
1187
  addIfcElementQuantity(elementId, qset) {
1201
- const qtyIds = [];
1202
- for (const qty of qset.Quantities) {
1203
- const qtyId = this.id();
1204
- const valueField = this.quantityValueField(qty);
1205
- this.line(qtyId, qty.Kind.toUpperCase(), `'${esc(qty.Name)}',$,${valueField}${this.ifc4Only('$')}`);
1206
- qtyIds.push(qtyId);
1207
- }
1208
- const qsetId = this.id();
1209
- const globalId = this.newGlobalId();
1210
- const refs = qtyIds.map(id => `#${id}`).join(',');
1211
- this.line(qsetId, 'IFCELEMENTQUANTITY', `'${globalId}',#${this.ownerHistoryId},'${esc(qset.Name)}',$,$,(${refs})`);
1212
- const relId = this.id();
1213
- const relGlobalId = this.newGlobalId();
1214
- this.line(relId, 'IFCRELDEFINESBYPROPERTIES', `'${relGlobalId}',#${this.ownerHistoryId},$,$,(#${elementId}),#${qsetId}`);
1215
- return qsetId;
1188
+ return emitElementQuantity(elementId, qset, this.definitionContext());
1189
+ }
1190
+ /** The creator hooks `ifc-creator-definitions.ts`'s emitters need. */
1191
+ definitionContext() {
1192
+ return { emit: this.emitEntity, newGlobalId: () => this.newGlobalId(),
1193
+ ownerRef: `#${this.ownerHistoryId}`, ifc4Only: (v) => this.ifc4Only(v) };
1216
1194
  }
1217
1195
  // ============================================================================
1218
1196
  // Public API — Styling
@@ -1442,6 +1420,68 @@ export class IfcCreator {
1442
1420
  nestTasks(parentTaskId, childTaskIds) {
1443
1421
  return this.addIfcRelNests(parentTaskId, childTaskIds);
1444
1422
  }
1423
+ // Public API — Cost / 5D. Every method delegates to `ifc-creator-cost.ts` and refuses
1424
+ // IFC2X3 by name (its cost entity layout differs, so IFC4 records would parse and mislead).
1425
+ /** Create an IfcCostSchedule (IFC4 / IFC4X3 only). Returns its expressId. */
1426
+ addIfcCostSchedule(params) {
1427
+ assertCostSchema(this.schema, 'addIfcCostSchedule');
1428
+ const id = emitCostSchedule(params, this.newGlobalId(), `#${this.ownerHistoryId}`, this.emitEntity);
1429
+ this.entities.push({ expressId: id, type: 'IfcCostSchedule', Name: params.Name });
1430
+ return id;
1431
+ }
1432
+ /** Create an IfcCostItem (IFC4 / IFC4X3 only). Returns its expressId. */
1433
+ addIfcCostItem(params) {
1434
+ assertCostSchema(this.schema, 'addIfcCostItem');
1435
+ const id = emitCostItem(params, this.newGlobalId(), `#${this.ownerHistoryId}`, this.emitEntity);
1436
+ this.entities.push({ expressId: id, type: 'IfcCostItem', Name: params.Name });
1437
+ return id;
1438
+ }
1439
+ /** Create an IfcCostValue (IFC4 / IFC4X3 only). Returns its expressId. */
1440
+ addIfcCostValue(params) {
1441
+ assertCostSchema(this.schema, 'addIfcCostValue');
1442
+ const id = emitCostValue(params, this.schema, this.emitEntity);
1443
+ this.entities.push({ expressId: id, type: 'IfcCostValue', Name: params.Name });
1444
+ return id;
1445
+ }
1446
+ /** Create an IfcMonetaryUnit for `currency`. No default — omit it to leave the currency unstated. */
1447
+ addIfcMonetaryUnit(currency) {
1448
+ assertCostSchema(this.schema, 'addIfcMonetaryUnit');
1449
+ return emitMonetaryUnit(currency, this.emitEntity);
1450
+ }
1451
+ /** Create an IfcSIUnit, for use as an IfcMeasureWithUnit or quantity unit. */
1452
+ addIfcSIUnit(params) {
1453
+ assertCostSchema(this.schema, 'addIfcSIUnit');
1454
+ return emitSIUnit(params, this.emitEntity);
1455
+ }
1456
+ /** Create an IfcMeasureWithUnit — what a UnitBasis or entity-valued AppliedValue points at. */
1457
+ addIfcMeasureWithUnit(value, unitId) {
1458
+ assertCostSchema(this.schema, 'addIfcMeasureWithUnit');
1459
+ return emitMeasureWithUnit(value, unitId, this.schema, this.emitEntity);
1460
+ }
1461
+ /** Create a standalone IfcPhysicalSimpleQuantity for IfcCostItem.CostQuantities. */
1462
+ addIfcPhysicalQuantity(params) {
1463
+ assertCostSchema(this.schema, 'addIfcPhysicalQuantity');
1464
+ return emitPhysicalQuantity(params, this.schema, this.emitEntity);
1465
+ }
1466
+ /** Emit an IfcRelAssignsToProduct — see {@link emitRelAssignsToProduct} for the direction rule. */
1467
+ addIfcRelAssignsToProduct(relatingProductId, relatedObjectIds) {
1468
+ return emitRelAssignsToProduct(relatingProductId, relatedObjectIds, () => this.newGlobalId(), `#${this.ownerHistoryId}`, this.emitEntity);
1469
+ }
1470
+ // Ergonomic aliases over the canonical relationships: cost items under a
1471
+ // schedule, cost items pricing a product, tasks bound to a cost item (an
1472
+ // IfcCostItem is an IfcControl), and the cost breakdown hierarchy.
1473
+ assignCostItemsToSchedule(scheduleId, costItemIds) {
1474
+ return this.addIfcRelAssignsToControl(scheduleId, costItemIds);
1475
+ }
1476
+ assignCostItemsToProduct(productId, costItemIds) {
1477
+ return this.addIfcRelAssignsToProduct(productId, costItemIds);
1478
+ }
1479
+ assignTasksToCostItem(costItemId, taskIds) {
1480
+ return this.addIfcRelAssignsToControl(costItemId, taskIds);
1481
+ }
1482
+ nestCostItems(parentCostItemId, childCostItemIds) {
1483
+ return this.addIfcRelNests(parentCostItemId, childCostItemIds);
1484
+ }
1445
1485
  /**
1446
1486
  * Internal — emit an IfcWorkSchedule or IfcWorkPlan (identical attribute
1447
1487
  * layout). Separate helpers are exposed publicly for ergonomics.
@@ -1539,7 +1579,7 @@ ENDSEC;
1539
1579
  this.subContextAxis = this.id();
1540
1580
  this.line(this.subContextAxis, 'IFCGEOMETRICREPRESENTATIONSUBCONTEXT', `$,'Axis',*,*,*,*,#${this.contextId},$,.GRAPH_VIEW.,$`);
1541
1581
  // Units
1542
- this.unitAssignmentId = this.buildUnits(params.LengthUnit ?? 'METRE');
1582
+ this.unitAssignmentId = this.buildUnits(params.LengthUnit ?? 'METRE', params.Currency);
1543
1583
  // Default surface style — light grey with some specularity
1544
1584
  this.defaultStyleId = this.buildDefaultStyle();
1545
1585
  // IfcProject
@@ -1560,7 +1600,7 @@ ENDSEC;
1560
1600
  this.line(this.buildingId, 'IFCBUILDING', `'${buildingGlobalId}',#${this.ownerHistoryId},'Building',$,$,#${this.worldPlacementId},$,$,.ELEMENT.,$,$,$`);
1561
1601
  this.entities.push({ expressId: this.buildingId, type: 'IfcBuilding', Name: 'Building' });
1562
1602
  }
1563
- buildUnits(lengthUnit) {
1603
+ buildUnits(lengthUnit, currency) {
1564
1604
  const dimExpId = this.id();
1565
1605
  this.line(dimExpId, 'IFCDIMENSIONALEXPONENTS', '0,0,0,0,0,0,0');
1566
1606
  const siLengthId = this.id();
@@ -1577,8 +1617,15 @@ ENDSEC;
1577
1617
  this.line(siVolumeId, 'IFCSIUNIT', `*,.VOLUMEUNIT.,$,.CUBIC_METRE.`);
1578
1618
  const siAngleId = this.id();
1579
1619
  this.line(siAngleId, 'IFCSIUNIT', `*,.PLANEANGLEUNIT.,$,.RADIAN.`);
1620
+ // Absent currency stays absent: no IfcMonetaryUnit is written at all, so
1621
+ // the cost read model reports no project currency rather than a guess.
1622
+ const units = [lengthUnitId, siAreaId, siVolumeId, siAngleId];
1623
+ if (currency !== undefined) {
1624
+ assertCostSchema(this.schema, 'ProjectParams.Currency'); // IFC2X3 Currency is an enum
1625
+ units.push(emitMonetaryUnit(currency, this.emitEntity));
1626
+ }
1580
1627
  const assignmentId = this.id();
1581
- this.line(assignmentId, 'IFCUNITASSIGNMENT', `(#${lengthUnitId},#${siAreaId},#${siVolumeId},#${siAngleId})`);
1628
+ this.line(assignmentId, 'IFCUNITASSIGNMENT', `(${units.map(id => `#${id}`).join(',')})`);
1582
1629
  return assignmentId;
1583
1630
  }
1584
1631
  /** Create a default IfcSurfaceStyle with a neutral colour (RGB 0.75, 0.73, 0.68) */
@@ -2118,40 +2165,8 @@ ENDSEC;
2118
2165
  this.entities.push({ expressId: openingId, type: 'IfcOpeningElement', Name: name });
2119
2166
  return openingId;
2120
2167
  }
2121
- // ============================================================================
2122
- // Internal — Property/quantity serialization
2123
- // ============================================================================
2124
- serializePropertyValue(prop) {
2125
- const val = prop.NominalValue;
2126
- if (typeof val === 'string') {
2127
- const typeName = prop.Type ?? 'IfcLabel';
2128
- return `${typeName.toUpperCase()}('${esc(val)}')`;
2129
- }
2130
- if (typeof val === 'number') {
2131
- const typeName = prop.Type ?? (Number.isInteger(val) ? 'IfcInteger' : 'IfcReal');
2132
- return typeName === 'IfcInteger' ? `IFCINTEGER(${Math.round(val)})` : `IFCREAL(${num(val)})`;
2133
- }
2134
- if (typeof val === 'boolean') {
2135
- // `Type: 'IfcLogical'` (tri-state) must not be downgraded to IFCBOOLEAN.
2136
- const typeName = prop.Type === 'IfcLogical' ? 'IFCLOGICAL' : 'IFCBOOLEAN';
2137
- return `${typeName}(${val ? '.T.' : '.F.'})`;
2138
- }
2139
- return '$';
2140
- }
2168
+ // `serializePropertyValue` / `quantityValueField` moved to `ifc-creator-math.ts`.
2141
2169
  ifc4Only(v) { return this.schema === 'IFC2X3' ? '' : `,${v}`; } // trailing IFC4/4X3-only attribute
2142
- quantityValueField(qty) {
2143
- switch (qty.Kind) {
2144
- case 'IfcQuantityLength':
2145
- case 'IfcQuantityArea':
2146
- case 'IfcQuantityVolume':
2147
- case 'IfcQuantityWeight':
2148
- return `$,${num(qty.Value)}`;
2149
- case 'IfcQuantityCount':
2150
- return `$,${Math.round(qty.Value)}`;
2151
- default:
2152
- return `$,${num(qty.Value)}`;
2153
- }
2154
- }
2155
2170
  // ============================================================================
2156
2171
  // Internal — Relationship finalization
2157
2172
  // ============================================================================