@ifc-lite/parser 5.2.0 → 6.2.1

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.
Files changed (153) hide show
  1. package/dist/columnar-entity-preparation.d.ts +3 -0
  2. package/dist/columnar-entity-preparation.d.ts.map +1 -1
  3. package/dist/columnar-entity-preparation.js +101 -11
  4. package/dist/columnar-entity-preparation.js.map +1 -1
  5. package/dist/columnar-parser-indexes.d.ts +17 -1
  6. package/dist/columnar-parser-indexes.d.ts.map +1 -1
  7. package/dist/columnar-parser-indexes.js +31 -21
  8. package/dist/columnar-parser-indexes.js.map +1 -1
  9. package/dist/columnar-parser.d.ts +10 -1
  10. package/dist/columnar-parser.d.ts.map +1 -1
  11. package/dist/columnar-parser.js +14 -2
  12. package/dist/columnar-parser.js.map +1 -1
  13. package/dist/cost-extractor.d.ts +10 -0
  14. package/dist/cost-extractor.d.ts.map +1 -0
  15. package/dist/cost-extractor.js +369 -0
  16. package/dist/cost-extractor.js.map +1 -0
  17. package/dist/cost-schedule-2x3.d.ts +31 -0
  18. package/dist/cost-schedule-2x3.d.ts.map +1 -0
  19. package/dist/cost-schedule-2x3.js +75 -0
  20. package/dist/cost-schedule-2x3.js.map +1 -0
  21. package/dist/cost-types.d.ts +105 -0
  22. package/dist/cost-types.d.ts.map +1 -0
  23. package/dist/cost-types.js +5 -0
  24. package/dist/cost-types.js.map +1 -0
  25. package/dist/data-store-transport.d.ts +1 -0
  26. package/dist/data-store-transport.d.ts.map +1 -1
  27. package/dist/data-store-transport.js +5 -29
  28. package/dist/data-store-transport.js.map +1 -1
  29. package/dist/drop-census.d.ts +136 -0
  30. package/dist/drop-census.d.ts.map +1 -0
  31. package/dist/drop-census.js +53 -0
  32. package/dist/drop-census.js.map +1 -0
  33. package/dist/entity-scanner.d.ts.map +1 -1
  34. package/dist/entity-scanner.js +10 -5
  35. package/dist/entity-scanner.js.map +1 -1
  36. package/dist/generated/ifc2x3/schema-registry.d.ts +50 -0
  37. package/dist/generated/ifc2x3/schema-registry.d.ts.map +1 -0
  38. package/dist/generated/ifc2x3/schema-registry.js +50052 -0
  39. package/dist/generated/ifc2x3/schema-registry.js.map +1 -0
  40. package/dist/generated/ifc4x3/schema-registry.d.ts +50 -0
  41. package/dist/generated/ifc4x3/schema-registry.d.ts.map +1 -0
  42. package/dist/generated/ifc4x3/schema-registry.js +71299 -0
  43. package/dist/generated/ifc4x3/schema-registry.js.map +1 -0
  44. package/dist/generated/schema-registry-by-version.d.ts +61 -0
  45. package/dist/generated/schema-registry-by-version.d.ts.map +1 -0
  46. package/dist/generated/schema-registry-by-version.js +86 -0
  47. package/dist/generated/schema-registry-by-version.js.map +1 -0
  48. package/dist/georef-extractor.js +5 -5
  49. package/dist/georef-extractor.js.map +1 -1
  50. package/dist/group-assignment-factor.d.ts +13 -0
  51. package/dist/group-assignment-factor.d.ts.map +1 -0
  52. package/dist/group-assignment-factor.js +30 -0
  53. package/dist/group-assignment-factor.js.map +1 -0
  54. package/dist/ifczip.d.ts +7 -1
  55. package/dist/ifczip.d.ts.map +1 -1
  56. package/dist/ifczip.js +80 -14
  57. package/dist/ifczip.js.map +1 -1
  58. package/dist/index.d.ts +7 -2
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +13 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/on-demand-extractors.d.ts +1 -0
  63. package/dist/on-demand-extractors.d.ts.map +1 -1
  64. package/dist/on-demand-extractors.js +2 -1
  65. package/dist/on-demand-extractors.js.map +1 -1
  66. package/dist/property-value-parser.d.ts +10 -0
  67. package/dist/property-value-parser.d.ts.map +1 -1
  68. package/dist/property-value-parser.js +40 -1
  69. package/dist/property-value-parser.js.map +1 -1
  70. package/dist/scan-entities-balanced.d.ts.map +1 -1
  71. package/dist/scan-entities-balanced.js +11 -6
  72. package/dist/scan-entities-balanced.js.map +1 -1
  73. package/dist/scan-worker-lexing.d.ts +14 -0
  74. package/dist/scan-worker-lexing.d.ts.map +1 -0
  75. package/dist/scan-worker-lexing.js +106 -0
  76. package/dist/scan-worker-lexing.js.map +1 -0
  77. package/dist/scan-worker-source.d.ts +1 -1
  78. package/dist/scan-worker-source.d.ts.map +1 -1
  79. package/dist/scan-worker-source.js +64 -59
  80. package/dist/scan-worker-source.js.map +1 -1
  81. package/dist/schedule-extractor.d.ts +2 -80
  82. package/dist/schedule-extractor.d.ts.map +1 -1
  83. package/dist/schedule-extractor.js +100 -225
  84. package/dist/schedule-extractor.js.map +1 -1
  85. package/dist/schedule-serializer-builders.d.ts +28 -0
  86. package/dist/schedule-serializer-builders.d.ts.map +1 -0
  87. package/dist/schedule-serializer-builders.js +163 -0
  88. package/dist/schedule-serializer-builders.js.map +1 -0
  89. package/dist/schedule-serializer.d.ts +6 -0
  90. package/dist/schedule-serializer.d.ts.map +1 -1
  91. package/dist/schedule-serializer.js +26 -165
  92. package/dist/schedule-serializer.js.map +1 -1
  93. package/dist/schedule-types.d.ts +211 -0
  94. package/dist/schedule-types.d.ts.map +1 -0
  95. package/dist/schedule-types.js +221 -0
  96. package/dist/schedule-types.js.map +1 -0
  97. package/dist/spatial-hierarchy-ambiguity.d.ts +39 -0
  98. package/dist/spatial-hierarchy-ambiguity.d.ts.map +1 -0
  99. package/dist/spatial-hierarchy-ambiguity.js +25 -0
  100. package/dist/spatial-hierarchy-ambiguity.js.map +1 -0
  101. package/dist/spatial-hierarchy-attributes.d.ts +54 -0
  102. package/dist/spatial-hierarchy-attributes.d.ts.map +1 -0
  103. package/dist/spatial-hierarchy-attributes.js +145 -0
  104. package/dist/spatial-hierarchy-attributes.js.map +1 -0
  105. package/dist/spatial-hierarchy-builder.d.ts +0 -30
  106. package/dist/spatial-hierarchy-builder.d.ts.map +1 -1
  107. package/dist/spatial-hierarchy-builder.js +45 -167
  108. package/dist/spatial-hierarchy-builder.js.map +1 -1
  109. package/dist/spatial-hierarchy-canonical-parent.d.ts +52 -2
  110. package/dist/spatial-hierarchy-canonical-parent.d.ts.map +1 -1
  111. package/dist/spatial-hierarchy-canonical-parent.js +153 -4
  112. package/dist/spatial-hierarchy-canonical-parent.js.map +1 -1
  113. package/dist/step-lexing.d.ts +1 -1
  114. package/dist/step-lexing.d.ts.map +1 -1
  115. package/dist/step-lexing.js +1 -56
  116. package/dist/step-lexing.js.map +1 -1
  117. package/dist/step-record-boundary.d.ts +28 -0
  118. package/dist/step-record-boundary.d.ts.map +1 -0
  119. package/dist/step-record-boundary.js +133 -0
  120. package/dist/step-record-boundary.js.map +1 -0
  121. package/dist/step-record-boundary.vectors.d.ts +102 -0
  122. package/dist/step-record-boundary.vectors.d.ts.map +1 -0
  123. package/dist/step-record-boundary.vectors.js +131 -0
  124. package/dist/step-record-boundary.vectors.js.map +1 -0
  125. package/dist/structural-extractor.d.ts +9 -0
  126. package/dist/structural-extractor.d.ts.map +1 -0
  127. package/dist/structural-extractor.js +310 -0
  128. package/dist/structural-extractor.js.map +1 -0
  129. package/dist/structural-load-extractor.d.ts +147 -0
  130. package/dist/structural-load-extractor.d.ts.map +1 -0
  131. package/dist/structural-load-extractor.js +178 -0
  132. package/dist/structural-load-extractor.js.map +1 -0
  133. package/dist/structural-step-values.d.ts +51 -0
  134. package/dist/structural-step-values.d.ts.map +1 -0
  135. package/dist/structural-step-values.js +109 -0
  136. package/dist/structural-step-values.js.map +1 -0
  137. package/dist/structural-types.d.ts +145 -0
  138. package/dist/structural-types.d.ts.map +1 -0
  139. package/dist/structural-types.js +5 -0
  140. package/dist/structural-types.js.map +1 -0
  141. package/dist/tokenizer.d.ts +11 -5
  142. package/dist/tokenizer.d.ts.map +1 -1
  143. package/dist/tokenizer.js +78 -21
  144. package/dist/tokenizer.js.map +1 -1
  145. package/dist/wasm-init-retry.d.ts +6 -42
  146. package/dist/wasm-init-retry.d.ts.map +1 -1
  147. package/dist/wasm-init-retry.js +6 -99
  148. package/dist/wasm-init-retry.js.map +1 -1
  149. package/dist/wasm-panic-forward.d.ts +7 -63
  150. package/dist/wasm-panic-forward.d.ts.map +1 -1
  151. package/dist/wasm-panic-forward.js +7 -100
  152. package/dist/wasm-panic-forward.js.map +1 -1
  153. package/package.json +5 -4
@@ -19,6 +19,12 @@
19
19
  * STEP source buffer. Re-running it with the same inputs produces the same
20
20
  * output (deterministic), which keeps round-trip exports stable and makes
21
21
  * unit tests simple.
22
+ *
23
+ * The low-level STEP string encoding and the per-entity line builders
24
+ * (`buildWorkControl`, `buildTaskTime`, `buildTask`, …) live in
25
+ * `schedule-serializer-builders.ts` — this file owns only the orchestration:
26
+ * which entities and relationships to emit, in what order, and how their
27
+ * express IDs cross-reference each other.
22
28
  */
23
29
  import type { ScheduleExtraction } from './schedule-extractor.js';
24
30
  export interface SerializeScheduleOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-serializer.d.ts","sourceRoot":"","sources":["../src/schedule-serializer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3E;AAED,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAgDD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CAmIzB"}
1
+ {"version":3,"file":"schedule-serializer.d.ts","sourceRoot":"","sources":["../src/schedule-serializer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,yBAAyB,CAAC;AAiBxF,MAAM,WAAW,wBAAwB;IACvC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC3E;AAED,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAMD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CA0JzB"}
@@ -1,43 +1,9 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- import { deterministicGlobalId } from './deterministic-global-id.js';
5
4
  import { secondsToIso8601Duration } from './iso8601-duration.js';
6
- // ─────────────────────────────────────────────────────────────────────────
7
- // STEP encoding helpers (kept local same convention as @ifc-lite/create)
8
- // ─────────────────────────────────────────────────────────────────────────
9
- function escStr(s) {
10
- return s.replace(/\\/g, '\\\\').replace(/'/g, "''");
11
- }
12
- function optStr(v) {
13
- return v === undefined || v === null || v === '' ? '$' : `'${escStr(v)}'`;
14
- }
15
- function optEnum(v) {
16
- return v === undefined || v === null || v === '' ? '$' : `.${v}.`;
17
- }
18
- function optBool(v) {
19
- return v === undefined || v === null ? '$' : v ? '.T.' : '.F.';
20
- }
21
- function optReal(v) {
22
- if (v === undefined || v === null || !Number.isFinite(v))
23
- return '$';
24
- // Integer-format avoids "1.0" → "1." re-import differences across viewers.
25
- return Number.isInteger(v) ? `${v}.` : String(v);
26
- }
27
- function ownerRef(ownerHistoryId) {
28
- return ownerHistoryId !== undefined ? `#${ownerHistoryId}` : '$';
29
- }
30
- function refList(ids) {
31
- return ids.length === 0 ? '$' : `(${ids.map(id => `#${id}`).join(',')})`;
32
- }
33
- function ensureGlobalId(existing, seed) {
34
- // Round-tripping should preserve whatever GlobalId the upstream extraction
35
- // saw, even when it isn't exactly 22 chars (some authoring tools emit
36
- // shorter ids). Only invent a deterministic value when the input is empty.
37
- if (existing && existing.length > 0)
38
- return existing;
39
- return deterministicGlobalId(seed);
40
- }
5
+ import { deterministicGlobalId } from './deterministic-global-id.js';
6
+ import { escStr, optStr, optEnum, ownerRef, refList, ensureGlobalId, buildWorkControl, taskHasTimeData, buildTaskTime, buildTask, resolveProductIds, } from './schedule-serializer-builders.js';
41
7
  // ─────────────────────────────────────────────────────────────────────────
42
8
  // Public — serializeScheduleToStep
43
9
  // ─────────────────────────────────────────────────────────────────────────
@@ -117,6 +83,30 @@ export function serializeScheduleToStep(data, options) {
117
83
  lines.push(`#${relId}=IFCRELNESTS('${relGid}',${owner},$,$,#${parentId},${refList(childIds)});`);
118
84
  stats.relNests += 1;
119
85
  }
86
+ // ── 4b. Work-plan → work-schedule grouping (IfcRelNests) ──────────
87
+ for (const plan of data.workSchedules) {
88
+ // `?.length` treats `undefined` and `[]` the same — both mean "emit no
89
+ // relation for this plan" — so any producer is free to use either for
90
+ // "no schedules grouped", whether that's "deliberately none" or a field
91
+ // it doesn't populate at all.
92
+ if (plan.kind !== 'WorkPlan' || !plan.childScheduleGlobalIds?.length)
93
+ continue;
94
+ const parentId = scheduleExpressIdByGlobalId.get(plan.globalId);
95
+ if (parentId === undefined)
96
+ continue;
97
+ const childIds = [];
98
+ for (const childGid of plan.childScheduleGlobalIds) {
99
+ const cid = scheduleExpressIdByGlobalId.get(childGid);
100
+ if (cid !== undefined)
101
+ childIds.push(cid);
102
+ }
103
+ if (childIds.length === 0)
104
+ continue;
105
+ const relId = nextId++;
106
+ const relGid = deterministicGlobalId(`rel-nests-plan|${plan.globalId}`);
107
+ lines.push(`#${relId}=IFCRELNESTS('${relGid}',${owner},$,$,#${parentId},${refList(childIds)});`);
108
+ stats.relNests += 1;
109
+ }
120
110
  // ── 5. Products → tasks (IfcRelAssignsToProcess) ─────────────────
121
111
  for (const task of data.tasks) {
122
112
  if (task.productExpressIds.length === 0 && task.productGlobalIds.length === 0)
@@ -164,133 +154,4 @@ export function serializeScheduleToStep(data, options) {
164
154
  }
165
155
  return { lines, nextId, stats };
166
156
  }
167
- // ─────────────────────────────────────────────────────────────────────────
168
- // Internal builders
169
- // ─────────────────────────────────────────────────────────────────────────
170
- function buildWorkControl(id, ws, owner) {
171
- const entity = ws.kind === 'WorkPlan' ? 'IFCWORKPLAN' : 'IFCWORKSCHEDULE';
172
- const globalId = ensureGlobalId(ws.globalId, `ws|${ws.kind}|${ws.name}`);
173
- // Deterministic fallback ordering — don't touch `Date.now()` here, it would
174
- // give identical inputs different STEP output and break diff-based export
175
- // round-trips. Anchor on whatever the upstream extractor already picked,
176
- // then on the schedule's own start/finish time.
177
- const creationDate = ws.creationDate ?? ws.startTime ?? ws.finishTime ?? '1970-01-01T00:00:00';
178
- // `StartTime` is REQUIRED on IfcWorkControl in IFC4 (ENTITY IfcWorkControl
179
- // ... StartTime : IfcDateTime) — emitting `$` would fail schema
180
- // validation on strict viewers. Fall back through the same deterministic
181
- // chain as `creationDate`. `FinishTime` IS optional, but writing a real
182
- // value is still friendlier than `$` when the schedule's own `startTime`
183
- // is the only datum we have.
184
- const startTime = ws.startTime ?? ws.finishTime ?? creationDate;
185
- const finishTime = ws.finishTime ?? startTime;
186
- // IFC4: GlobalId, OwnerHistory, Name, Description, ObjectType,
187
- // Identification, CreationDate, Creators, Purpose,
188
- // Duration, TotalFloat, StartTime, FinishTime, PredefinedType
189
- return [
190
- `#${id}=${entity}(`,
191
- `'${globalId}',`,
192
- `${owner},`,
193
- `'${escStr(ws.name)}',`,
194
- `${optStr(ws.description)},`,
195
- `$,`,
196
- `${optStr(ws.identification)},`,
197
- `'${escStr(creationDate)}',`,
198
- `$,`,
199
- `${optStr(ws.purpose)},`,
200
- `${optStr(ws.duration)},`,
201
- `$,`,
202
- `'${escStr(startTime)}',`,
203
- `'${escStr(finishTime)}',`,
204
- `${optEnum(ws.predefinedType)});`,
205
- ].join('');
206
- }
207
- function taskHasTimeData(task) {
208
- const t = task.taskTime;
209
- if (!t)
210
- return false;
211
- return Boolean(t.scheduleStart || t.scheduleFinish || t.scheduleDuration
212
- || t.actualStart || t.actualFinish || t.actualDuration
213
- || t.earlyStart || t.earlyFinish || t.lateStart || t.lateFinish
214
- || t.freeFloat || t.totalFloat || t.remainingTime || t.statusTime
215
- || t.durationType || t.isCritical !== undefined || t.completion !== undefined);
216
- }
217
- function buildTaskTime(id, task) {
218
- const t = task.taskTime;
219
- // IFC4: Name, DataOrigin, UDDataOrigin, DurationType,
220
- // ScheduleDuration, ScheduleStart, ScheduleFinish,
221
- // Early/Late Start/Finish, FreeFloat, TotalFloat, IsCritical,
222
- // StatusTime, ActualDuration, ActualStart, ActualFinish,
223
- // RemainingTime, Completion
224
- return [
225
- `#${id}=IFCTASKTIME(`,
226
- `$,$,$,`,
227
- `${optEnum(t.durationType)},`,
228
- `${optStr(t.scheduleDuration)},`,
229
- `${optStr(t.scheduleStart)},`,
230
- `${optStr(t.scheduleFinish)},`,
231
- `${optStr(t.earlyStart)},`,
232
- `${optStr(t.earlyFinish)},`,
233
- `${optStr(t.lateStart)},`,
234
- `${optStr(t.lateFinish)},`,
235
- `${optStr(t.freeFloat)},`,
236
- `${optStr(t.totalFloat)},`,
237
- `${optBool(t.isCritical)},`,
238
- `${optStr(t.statusTime)},`,
239
- `${optStr(t.actualDuration)},`,
240
- `${optStr(t.actualStart)},`,
241
- `${optStr(t.actualFinish)},`,
242
- `${optStr(t.remainingTime)},`,
243
- `${optReal(t.completion)});`,
244
- ].join('');
245
- }
246
- function buildTask(id, task, owner, taskTimeId) {
247
- const globalId = ensureGlobalId(task.globalId, `task|${task.name}`);
248
- const taskTimeRef = taskTimeId !== undefined ? `#${taskTimeId}` : '$';
249
- // IFC4: GlobalId, OwnerHistory, Name, Description, ObjectType,
250
- // Identification, LongDescription, Status, WorkMethod, IsMilestone,
251
- // Priority, TaskTime, PredefinedType
252
- return [
253
- `#${id}=IFCTASK(`,
254
- `'${globalId}',`,
255
- `${owner},`,
256
- `'${escStr(task.name)}',`,
257
- `${optStr(task.description)},`,
258
- `${optStr(task.objectType)},`,
259
- `${optStr(task.identification)},`,
260
- `${optStr(task.longDescription)},`,
261
- `${optStr(task.status)},`,
262
- `${optStr(task.workMethod)},`,
263
- `${task.isMilestone ? '.T.' : '.F.'},`,
264
- `${task.priority !== undefined ? Math.trunc(task.priority) : '$'},`,
265
- `${taskTimeRef},`,
266
- `${optEnum(task.predefinedType)});`,
267
- ].join('');
268
- }
269
- function resolveProductIds(task, resolver) {
270
- // Prefer expressIds when they're present and non-zero (the in-memory schedule
271
- // path). When only globalIds are known (e.g. round-tripping through the SDK
272
- // boundary), use the caller-supplied resolver to look them up against the
273
- // current model — falls back to expressIds whenever the resolver returns
274
- // undefined.
275
- //
276
- // Walk the union of both arrays so global-id-only entries (common for
277
- // generated schedules where expressId was never filled in) still hit the
278
- // resolver instead of being silently dropped.
279
- const out = [];
280
- const count = Math.max(task.productExpressIds.length, task.productGlobalIds.length);
281
- for (let i = 0; i < count; i++) {
282
- const expressId = task.productExpressIds[i];
283
- const globalId = task.productGlobalIds[i];
284
- if (resolver && globalId) {
285
- const resolved = resolver(globalId);
286
- if (resolved !== undefined && resolved > 0) {
287
- out.push(resolved);
288
- continue;
289
- }
290
- }
291
- if (expressId !== undefined && expressId > 0)
292
- out.push(expressId);
293
- }
294
- return out;
295
- }
296
157
  //# sourceMappingURL=schedule-serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-serializer.js","sourceRoot":"","sources":["../src/schedule-serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-serializer.js","sourceRoot":"","sources":["../src/schedule-serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Schedule (4D) shapes and sub-entity extractors — STEP attribute-index
3
+ * layouts for IfcTask / IfcTaskTime / IfcRelSequence / IfcRelAssignsToProcess
4
+ * / IfcRelAssignsToControl / IfcRelNests / IfcWorkSchedule / IfcWorkPlan /
5
+ * IfcLagTime, the public `ScheduleExtraction` record types built from them,
6
+ * and the small pure helpers (`asString` et al.) plus single-entity
7
+ * sub-extractors (`extractTaskTime`, `extractLagTimeSeconds`) that turn one
8
+ * STEP entity's attribute array into a typed field.
9
+ *
10
+ * `schedule-extractor.ts` owns the orchestration — walking `byType` arrays
11
+ * and wiring these records together across passes — and imports everything
12
+ * it needs from here. Splitting "how one entity's attributes decode" from
13
+ * "how entities cross-reference each other" keeps each file to one concern,
14
+ * the same shape as this package's `spatial-hierarchy-canonical-parent.ts`
15
+ * being split out of `spatial-hierarchy-builder.ts`.
16
+ */
17
+ import { EntityExtractor } from './entity-extractor.js';
18
+ import type { IfcDataStore } from './columnar-parser.js';
19
+ /** IFC4 STEP attribute indices for IfcTask. */
20
+ export declare const TASK_ATTR: {
21
+ readonly GlobalId: 0;
22
+ readonly Name: 2;
23
+ readonly Description: 3;
24
+ readonly ObjectType: 4;
25
+ readonly Identification: 5;
26
+ readonly LongDescription: 6;
27
+ readonly Status: 7;
28
+ readonly WorkMethod: 8;
29
+ readonly IsMilestone: 9;
30
+ readonly Priority: 10;
31
+ readonly TaskTime: 11;
32
+ readonly PredefinedType: 12;
33
+ };
34
+ /**
35
+ * IFC2X3 IfcTask layout — the attributes IfcTask itself adds over IfcObject
36
+ * (TaskId, Status, WorkMethod, IsMilestone, Priority). IFC2X3 schedule times
37
+ * live on `IfcScheduleTimeControl` and link to IfcTask via `IfcRelAssignsTasks`
38
+ * — we don't resolve those here yet; best-effort 2x3 models only surface task
39
+ * metadata without dates.
40
+ */
41
+ export declare const TASK_ATTR_2X3: {
42
+ readonly GlobalId: 0;
43
+ readonly Name: 2;
44
+ readonly Description: 3;
45
+ readonly ObjectType: 4;
46
+ readonly TaskId: 5;
47
+ readonly Status: 6;
48
+ readonly WorkMethod: 7;
49
+ readonly IsMilestone: 8;
50
+ readonly Priority: 9;
51
+ };
52
+ export declare const REL_SEQUENCE_ATTR: {
53
+ readonly GlobalId: 0;
54
+ readonly RelatingProcess: 4;
55
+ readonly RelatedProcess: 5;
56
+ readonly TimeLag: 6;
57
+ readonly SequenceType: 7;
58
+ readonly UserDefinedSequenceType: 8;
59
+ };
60
+ export declare const REL_ASSIGNS_TO_PROCESS_ATTR: {
61
+ readonly RelatedObjects: 4;
62
+ readonly RelatingProcess: 6;
63
+ };
64
+ export declare const REL_ASSIGNS_TO_CONTROL_ATTR: {
65
+ readonly RelatedObjects: 4;
66
+ readonly RelatingControl: 6;
67
+ };
68
+ export declare const REL_NESTS_ATTR: {
69
+ readonly RelatingObject: 4;
70
+ readonly RelatedObjects: 5;
71
+ };
72
+ export declare const WORK_SCHEDULE_ATTR: {
73
+ readonly GlobalId: 0;
74
+ readonly Name: 2;
75
+ readonly Description: 3;
76
+ readonly ObjectType: 4;
77
+ readonly Identification: 5;
78
+ readonly CreationDate: 6;
79
+ readonly Purpose: 8;
80
+ readonly Duration: 9;
81
+ readonly TotalFloat: 10;
82
+ readonly StartTime: 11;
83
+ readonly FinishTime: 12;
84
+ readonly PredefinedType: 13;
85
+ };
86
+ export declare const WORK_PLAN_ATTR: {
87
+ readonly GlobalId: 0;
88
+ readonly Name: 2;
89
+ readonly Description: 3;
90
+ readonly ObjectType: 4;
91
+ readonly Identification: 5;
92
+ readonly CreationDate: 6;
93
+ readonly Purpose: 8;
94
+ readonly Duration: 9;
95
+ readonly TotalFloat: 10;
96
+ readonly StartTime: 11;
97
+ readonly FinishTime: 12;
98
+ readonly PredefinedType: 13;
99
+ };
100
+ export type SequenceTypeEnum = 'START_START' | 'START_FINISH' | 'FINISH_START' | 'FINISH_FINISH' | 'USERDEFINED' | 'NOTDEFINED';
101
+ export type TaskDurationType = 'WORKTIME' | 'ELAPSEDTIME' | 'NOTDEFINED';
102
+ export interface ScheduleTaskTimeInfo {
103
+ scheduleStart?: string;
104
+ scheduleFinish?: string;
105
+ scheduleDuration?: string;
106
+ actualStart?: string;
107
+ actualFinish?: string;
108
+ actualDuration?: string;
109
+ earlyStart?: string;
110
+ earlyFinish?: string;
111
+ lateStart?: string;
112
+ lateFinish?: string;
113
+ freeFloat?: string;
114
+ totalFloat?: string;
115
+ remainingTime?: string;
116
+ durationType?: TaskDurationType;
117
+ statusTime?: string;
118
+ isCritical?: boolean;
119
+ completion?: number;
120
+ }
121
+ export interface ScheduleTaskInfo {
122
+ expressId: number;
123
+ globalId: string;
124
+ name: string;
125
+ description?: string;
126
+ objectType?: string;
127
+ identification?: string;
128
+ longDescription?: string;
129
+ status?: string;
130
+ workMethod?: string;
131
+ isMilestone: boolean;
132
+ priority?: number;
133
+ predefinedType?: string;
134
+ taskTime?: ScheduleTaskTimeInfo;
135
+ /** Parent task globalId (from IfcRelNests where this task is in RelatedObjects). */
136
+ parentGlobalId?: string;
137
+ /** Child task globalIds (from IfcRelNests where this task is RelatingObject). */
138
+ childGlobalIds: string[];
139
+ /** expressIds of products assigned to this task via IfcRelAssignsToProcess. */
140
+ productExpressIds: number[];
141
+ /** globalIds of the same products (aligned with productExpressIds by index). */
142
+ productGlobalIds: string[];
143
+ /** WorkSchedule globalIds that control this task via IfcRelAssignsToControl. */
144
+ controllingScheduleGlobalIds: string[];
145
+ }
146
+ export interface ScheduleSequenceInfo {
147
+ globalId: string;
148
+ relatingTaskGlobalId: string;
149
+ relatedTaskGlobalId: string;
150
+ sequenceType: SequenceTypeEnum;
151
+ userDefinedSequenceType?: string;
152
+ /** Lag value expressed in seconds if it resolves to an IfcDuration; otherwise undefined. */
153
+ timeLagSeconds?: number;
154
+ /** Original lag duration string (ISO 8601 like 'P1D'), if available. */
155
+ timeLagDuration?: string;
156
+ }
157
+ export interface WorkScheduleInfo {
158
+ expressId: number;
159
+ globalId: string;
160
+ kind: 'WorkSchedule' | 'WorkPlan';
161
+ name: string;
162
+ description?: string;
163
+ identification?: string;
164
+ creationDate?: string;
165
+ purpose?: string;
166
+ duration?: string;
167
+ startTime?: string;
168
+ finishTime?: string;
169
+ predefinedType?: string;
170
+ /** Root task globalIds directly assigned via IfcRelAssignsToControl. */
171
+ taskGlobalIds: string[];
172
+ /**
173
+ * Parent IfcWorkPlan globalId, when this schedule is nested under a work
174
+ * plan via IfcRelNests (this schedule as a RelatedObject). Undefined for
175
+ * a WorkPlan itself, or a WorkSchedule with no nesting parent.
176
+ */
177
+ parentPlanGlobalId?: string;
178
+ /**
179
+ * Child IfcWorkSchedule globalIds nested under this work plan via
180
+ * IfcRelNests or IfcRelAssignsToControl (this record as the parent side).
181
+ * Empty (or absent) for a plain WorkSchedule, or a WorkPlan with no
182
+ * nested schedules.
183
+ *
184
+ * Optional so a `WorkScheduleInfo` built without any opinion on grouping
185
+ * doesn't have to populate a field it never touches. Absent and `[]` are
186
+ * equivalent everywhere this field is read — neither the extractor nor
187
+ * the serializer distinguishes "unknown/legacy" from "known and empty";
188
+ * both mean "no nested schedules to write or report".
189
+ */
190
+ childScheduleGlobalIds?: string[];
191
+ }
192
+ export interface ScheduleExtraction {
193
+ workSchedules: WorkScheduleInfo[];
194
+ tasks: ScheduleTaskInfo[];
195
+ sequences: ScheduleSequenceInfo[];
196
+ /** True if we encountered any scheduling entity (useful for empty-state UI). */
197
+ hasSchedule: boolean;
198
+ }
199
+ export declare function asString(v: unknown): string | undefined;
200
+ export declare function asNumber(v: unknown): number | undefined;
201
+ export declare function asBoolean(v: unknown): boolean | undefined;
202
+ export declare function asEnum(v: unknown): string | undefined;
203
+ export declare function asRef(v: unknown): number | undefined;
204
+ export declare function asRefList(v: unknown): number[];
205
+ export declare function sequenceTypeFromString(s: string | undefined): SequenceTypeEnum;
206
+ export declare function extractTaskTime(extractor: EntityExtractor, store: IfcDataStore, taskTimeId: number): ScheduleTaskTimeInfo | undefined;
207
+ export declare function extractLagTimeSeconds(extractor: EntityExtractor, store: IfcDataStore, lagId: number): {
208
+ seconds?: number;
209
+ duration?: string;
210
+ };
211
+ //# sourceMappingURL=schedule-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-types.d.ts","sourceRoot":"","sources":["../src/schedule-types.ts"],"names":[],"mappings":"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"}