@ifc-lite/parser 7.1.0 → 8.2.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.
Files changed (139) hide show
  1. package/dist/attribute-helpers.d.ts +23 -5
  2. package/dist/attribute-helpers.d.ts.map +1 -1
  3. package/dist/attribute-helpers.js +74 -13
  4. package/dist/attribute-helpers.js.map +1 -1
  5. package/dist/classification-resolver.d.ts.map +1 -1
  6. package/dist/classification-resolver.js +42 -6
  7. package/dist/classification-resolver.js.map +1 -1
  8. package/dist/columnar-parser-attributes.d.ts +1 -1
  9. package/dist/columnar-parser-attributes.d.ts.map +1 -1
  10. package/dist/columnar-parser-attributes.js +36 -1
  11. package/dist/columnar-parser-attributes.js.map +1 -1
  12. package/dist/columnar-parser-indexes.d.ts.map +1 -1
  13. package/dist/columnar-parser-indexes.js +24 -1
  14. package/dist/columnar-parser-indexes.js.map +1 -1
  15. package/dist/columnar-parser-relationships.d.ts +2 -1
  16. package/dist/columnar-parser-relationships.d.ts.map +1 -1
  17. package/dist/columnar-parser-relationships.js +2 -2
  18. package/dist/columnar-parser-relationships.js.map +1 -1
  19. package/dist/columnar-parser-root-attributes.d.ts.map +1 -1
  20. package/dist/columnar-parser-root-attributes.js +3 -0
  21. package/dist/columnar-parser-root-attributes.js.map +1 -1
  22. package/dist/columnar-parser.d.ts +4 -11
  23. package/dist/columnar-parser.d.ts.map +1 -1
  24. package/dist/columnar-parser.js +24 -11
  25. package/dist/columnar-parser.js.map +1 -1
  26. package/dist/cost-extractor.js +2 -2
  27. package/dist/cost-extractor.js.map +1 -1
  28. package/dist/cost-overlay.d.ts +34 -2
  29. package/dist/cost-overlay.d.ts.map +1 -1
  30. package/dist/cost-reader.d.ts +10 -0
  31. package/dist/cost-reader.d.ts.map +1 -1
  32. package/dist/cost-reader.js +82 -17
  33. package/dist/cost-reader.js.map +1 -1
  34. package/dist/cost.d.ts +1 -1
  35. package/dist/cost.d.ts.map +1 -1
  36. package/dist/data-store-transport.d.ts.map +1 -1
  37. package/dist/data-store-transport.js +8 -0
  38. package/dist/data-store-transport.js.map +1 -1
  39. package/dist/effective-entity-record.d.ts +35 -0
  40. package/dist/effective-entity-record.d.ts.map +1 -0
  41. package/dist/effective-entity-record.js +43 -0
  42. package/dist/effective-entity-record.js.map +1 -0
  43. package/dist/effective-relationship-overlay.d.ts +31 -0
  44. package/dist/effective-relationship-overlay.d.ts.map +1 -0
  45. package/dist/effective-relationship-overlay.js +111 -0
  46. package/dist/effective-relationship-overlay.js.map +1 -0
  47. package/dist/entity-extractor.d.ts.map +1 -1
  48. package/dist/entity-extractor.js +33 -15
  49. package/dist/entity-extractor.js.map +1 -1
  50. package/dist/exact-relationship-edges.d.ts +46 -0
  51. package/dist/exact-relationship-edges.d.ts.map +1 -0
  52. package/dist/exact-relationship-edges.js +89 -0
  53. package/dist/exact-relationship-edges.js.map +1 -0
  54. package/dist/identity-hints.d.ts +32 -0
  55. package/dist/identity-hints.d.ts.map +1 -0
  56. package/dist/identity-hints.js +131 -0
  57. package/dist/identity-hints.js.map +1 -0
  58. package/dist/ifc-schema.d.ts +9 -0
  59. package/dist/ifc-schema.d.ts.map +1 -1
  60. package/dist/ifc-schema.js +37 -2
  61. package/dist/ifc-schema.js.map +1 -1
  62. package/dist/index.d.ts +6 -3
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +9 -4
  65. package/dist/index.js.map +1 -1
  66. package/dist/material-resolver.d.ts +3 -0
  67. package/dist/material-resolver.d.ts.map +1 -1
  68. package/dist/material-resolver.js +6 -2
  69. package/dist/material-resolver.js.map +1 -1
  70. package/dist/on-demand-extractors.d.ts +11 -37
  71. package/dist/on-demand-extractors.d.ts.map +1 -1
  72. package/dist/on-demand-extractors.js +13 -5
  73. package/dist/on-demand-extractors.js.map +1 -1
  74. package/dist/parser.worker.d.ts.map +1 -1
  75. package/dist/parser.worker.js +3 -1
  76. package/dist/parser.worker.js.map +1 -1
  77. package/dist/project-units.d.ts.map +1 -1
  78. package/dist/project-units.js +7 -0
  79. package/dist/project-units.js.map +1 -1
  80. package/dist/property-unit.d.ts.map +1 -1
  81. package/dist/property-unit.js +1 -0
  82. package/dist/property-unit.js.map +1 -1
  83. package/dist/property-value-parser.d.ts +14 -18
  84. package/dist/property-value-parser.d.ts.map +1 -1
  85. package/dist/property-value-parser.js +26 -11
  86. package/dist/property-value-parser.js.map +1 -1
  87. package/dist/quantity-collect.d.ts +2 -0
  88. package/dist/quantity-collect.d.ts.map +1 -1
  89. package/dist/quantity-collect.js +2 -1
  90. package/dist/quantity-collect.js.map +1 -1
  91. package/dist/quantity-extractor.d.ts.map +1 -1
  92. package/dist/quantity-extractor.js +7 -5
  93. package/dist/quantity-extractor.js.map +1 -1
  94. package/dist/query-backend-maps.d.ts +5 -8
  95. package/dist/query-backend-maps.d.ts.map +1 -1
  96. package/dist/query-backend-maps.js +8 -15
  97. package/dist/query-backend-maps.js.map +1 -1
  98. package/dist/relationship-extractor.d.ts.map +1 -1
  99. package/dist/relationship-extractor.js +6 -4
  100. package/dist/relationship-extractor.js.map +1 -1
  101. package/dist/relationship-schema-slots.d.ts +8 -8
  102. package/dist/relationship-schema-slots.d.ts.map +1 -1
  103. package/dist/relationship-schema-slots.js +31 -18
  104. package/dist/relationship-schema-slots.js.map +1 -1
  105. package/dist/schedule-calendar-types.d.ts +2 -3
  106. package/dist/schedule-calendar-types.d.ts.map +1 -1
  107. package/dist/schedule-calendar-types.js +12 -24
  108. package/dist/schedule-calendar-types.js.map +1 -1
  109. package/dist/schedule-control-extractor.d.ts +3 -4
  110. package/dist/schedule-control-extractor.d.ts.map +1 -1
  111. package/dist/schedule-control-extractor.js +4 -7
  112. package/dist/schedule-control-extractor.js.map +1 -1
  113. package/dist/schedule-extractor.d.ts +4 -1
  114. package/dist/schedule-extractor.d.ts.map +1 -1
  115. package/dist/schedule-extractor.js +26 -43
  116. package/dist/schedule-extractor.js.map +1 -1
  117. package/dist/schedule-types.d.ts +3 -4
  118. package/dist/schedule-types.d.ts.map +1 -1
  119. package/dist/schedule-types.js +4 -10
  120. package/dist/schedule-types.js.map +1 -1
  121. package/dist/spatial-hierarchy-attributes.d.ts.map +1 -1
  122. package/dist/spatial-hierarchy-attributes.js +3 -0
  123. package/dist/spatial-hierarchy-attributes.js.map +1 -1
  124. package/dist/spatial-hierarchy-builder.d.ts.map +1 -1
  125. package/dist/spatial-hierarchy-builder.js +1 -0
  126. package/dist/spatial-hierarchy-builder.js.map +1 -1
  127. package/dist/structural-load-extractor.d.ts.map +1 -1
  128. package/dist/structural-load-extractor.js +2 -0
  129. package/dist/structural-load-extractor.js.map +1 -1
  130. package/dist/structural-step-values.d.ts.map +1 -1
  131. package/dist/structural-step-values.js +1 -0
  132. package/dist/structural-step-values.js.map +1 -1
  133. package/dist/unit-extractor.d.ts.map +1 -1
  134. package/dist/unit-extractor.js +6 -0
  135. package/dist/unit-extractor.js.map +1 -1
  136. package/dist/worker-index-publication.d.ts.map +1 -1
  137. package/dist/worker-index-publication.js +7 -0
  138. package/dist/worker-index-publication.js.map +1 -1
  139. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"query-backend-maps.js","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-backend-maps.js","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAA6B;IACpD,OAAO,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IACxD,OAAO,EAAE,CAAC,qBAAqB,CAAC;IAChC,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,OAAO,EAAE,CAAC,qBAAqB,CAAC;IAChC,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,OAAO,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;IACxD,SAAS,EAAE,CAAC,uBAAuB,CAAC;IACpC,QAAQ,EAAE,CAAC,sBAAsB,CAAC;IAClC,iBAAiB,EAAE,CAAC,wBAAwB,CAAC;IAC7C,6EAA6E;IAC7E,0EAA0E;IAC1E,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,cAAc,EAAE,2BAA2B,CAAC;CACpE,CAAC;AAgBF,4EAA4E;AAC5E,4EAA4E;AAC5E,gEAAgE;AAChE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,eAAe,CAAC,IAAI,IAAI,WAAW;QAAE,eAAe,CAAC,KAAK,EAAE,CAAC;IACjE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7D,IAAI,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,YAAY,CAAC;IACzD,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEzD;;;;GAIG;AACH,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC,MAAM,UAAU,WAAW,CAAC,KAAe,EAAE,aAAsB;IACjE,MAAM,GAAG,GAAG,GAAG,aAAa,IAAI,cAAc,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM;QAAE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW;QAAE,WAAW,CAAC,KAAK,EAAE,CAAC;IACzD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AACrB,CAAC;AAED,yEAAyE;AACzE,MAAM,cAAc,GAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,4BAA4B,CAAC,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAW,CAAC,CAAC,CAAC,CAAW,CAAC;IAC5F,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAW,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe,EAAE,aAAiC;IAC5E,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GACZ,aAAa,KAAK,SAAS;YACzB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;YACnC,uEAAuE;YACvE,yDAAyD;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,MAAM;gBAAE,SAAS;YACrF,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+C,MAAM,CAAC,WAAW,CAC9F,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;KAC5B,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;KACvE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CACxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAI5C;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA6B1D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAsBtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAI5C;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA6B1D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAsBtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -1,6 +1,8 @@
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 { createLogger } from '@ifc-lite/data';
5
+ const relationshipLog = createLogger('RelationshipExtractor');
4
6
  export class RelationshipExtractor {
5
7
  entities;
6
8
  constructor(entities) {
@@ -28,8 +30,8 @@ export class RelationshipExtractor {
28
30
  await new Promise(resolve => setTimeout(resolve, 0));
29
31
  }
30
32
  }
31
- console.log('[RelationshipExtractor] Relationship type counts:', Object.fromEntries(typeCounts));
32
- console.log('[RelationshipExtractor] Successfully extracted:', relationships.length);
33
+ relationshipLog.debug('Relationship type counts:', Object.fromEntries(typeCounts));
34
+ relationshipLog.debug('Successfully extracted:', relationships.length);
33
35
  return relationships;
34
36
  }
35
37
  /**
@@ -48,8 +50,8 @@ export class RelationshipExtractor {
48
50
  relationships.push(rel);
49
51
  }
50
52
  }
51
- console.log('[RelationshipExtractor] Relationship type counts:', Object.fromEntries(typeCounts));
52
- console.log('[RelationshipExtractor] Successfully extracted:', relationships.length);
53
+ relationshipLog.debug('Relationship type counts:', Object.fromEntries(typeCounts));
54
+ relationshipLog.debug('Successfully extracted:', relationships.length);
53
55
  return relationships;
54
56
  }
55
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-extractor.js","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-extractor.js","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,11 @@
10
10
  * at all (the hand-written gate sets in `columnar-parser-indexes.ts`).
11
11
  *
12
12
  * This module derives the same information from the codegen-generated
13
- * schema registries instead: every EXPRESS `IfcRelationship` subtype names
14
- * its two graph-relevant attributes `RelatingX` (a single reference) and
15
- * `RelatedY` (a single reference or a list) — a convention the schema
16
- * itself enforces, not a coincidence to hardcode around. Walking
13
+ * schema registries instead: EXPRESS `IfcRelationship` subtypes normally
14
+ * name their two graph-relevant attributes `RelatingX` (a single reference)
15
+ * and `RelatedY` (a single reference or a list). IFC2X3 IfcRelCoversSpaces
16
+ * predates that naming pair but still declares two ordered reference slots,
17
+ * which the same schema walk can derive. Walking
17
18
  * `allAttributes` (root → leaf, the same order the STEP file writes them
18
19
  * in) and picking out the first `Relating*`/`Related*` attribute whose
19
20
  * EXPRESS type is an entity or a select (never an enum or a defined
@@ -45,11 +46,10 @@ export interface RelationshipSlotPlan {
45
46
  * The relating/related attribute slots for a STEP relationship keyword
46
47
  * (e.g. `'IFCRELASSIGNSTOACTOR'`), or `undefined` if the type is unknown to
47
48
  * every bundled schema, or is an `IfcRelationship` subtype whose layout
48
- * this convention-based walk cannot resolve (none of the 46 IFC4/IFC4X3
49
- * concrete subtypes as of writing fall into that second case — see
50
- * `relationship-schema-slots.test.ts`).
49
+ * this convention-based walk cannot resolve (only the non-binary, concrete
50
+ * IFC2X3 base IfcRelAssociates — see `relationship-schema-slots.test.ts`).
51
51
  */
52
- export declare function getRelationshipSlotPlan(typeUpper: string): RelationshipSlotPlan | undefined;
52
+ export declare function getRelationshipSlotPlan(typeUpper: string, schemaVersion?: SchemaVersionWithRegistry | string): RelationshipSlotPlan | undefined;
53
53
  /** Every concrete (non-abstract) `IfcRelationship` subtype STEP keyword in
54
54
  * one schema version, upper-cased. */
55
55
  export declare function getConcreteRelationshipTypes(version: SchemaVersionWithRegistry): ReadonlySet<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-schema-slots.d.ts","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAEH,KAAK,yBAAyB,EAEjC,MAAM,2CAA2C,CAAC;AAEnD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B;;iDAE6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;;;6DAGyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;6EAC6E;AAC7E,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AA4FD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAc3F;AAeD;uCACuC;AACvC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,yBAAyB,GAAG,WAAW,CAAC,MAAM,CAAC,CAWpG;AAID;;;;;GAKG;AACH,wBAAgB,+BAA+B,IAAI,WAAW,CAAC,MAAM,CAAC,CAQrE"}
1
+ {"version":3,"file":"relationship-schema-slots.d.ts","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAEH,KAAK,yBAAyB,EAEjC,MAAM,2CAA2C,CAAC;AAEnD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B;;iDAE6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;;;6DAGyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;6EAC6E;AAC7E,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAqGD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,yBAAyB,GAAG,MAAM,GACnD,oBAAoB,GAAG,SAAS,CAkBlC;AAeD;uCACuC;AACvC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,yBAAyB,GAAG,WAAW,CAAC,MAAM,CAAC,CAWpG;AAID;;;;;GAKG;AACH,wBAAgB,+BAA+B,IAAI,WAAW,CAAC,MAAM,CAAC,CAQrE"}
@@ -13,10 +13,11 @@
13
13
  * at all (the hand-written gate sets in `columnar-parser-indexes.ts`).
14
14
  *
15
15
  * This module derives the same information from the codegen-generated
16
- * schema registries instead: every EXPRESS `IfcRelationship` subtype names
17
- * its two graph-relevant attributes `RelatingX` (a single reference) and
18
- * `RelatedY` (a single reference or a list) — a convention the schema
19
- * itself enforces, not a coincidence to hardcode around. Walking
16
+ * schema registries instead: EXPRESS `IfcRelationship` subtypes normally
17
+ * name their two graph-relevant attributes `RelatingX` (a single reference)
18
+ * and `RelatedY` (a single reference or a list). IFC2X3 IfcRelCoversSpaces
19
+ * predates that naming pair but still declares two ordered reference slots,
20
+ * which the same schema walk can derive. Walking
20
21
  * `allAttributes` (root → leaf, the same order the STEP file writes them
21
22
  * in) and picking out the first `Relating*`/`Related*` attribute whose
22
23
  * EXPRESS type is an entity or a select (never an enum or a defined
@@ -99,8 +100,8 @@ function computeSlotPlan(registry, entityName) {
99
100
  const allAttrs = meta?.allAttributes;
100
101
  if (!allAttrs || allAttrs.length <= ROOT_ATTR_COUNT)
101
102
  return undefined;
102
- let relating;
103
- let related;
103
+ const relatingCandidates = [];
104
+ const relatedCandidates = [];
104
105
  for (let i = ROOT_ATTR_COUNT; i < allAttrs.length; i++) {
105
106
  const attr = allAttrs[i];
106
107
  if (!isReferenceType(registry, attr.type))
@@ -109,10 +110,19 @@ function computeSlotPlan(registry, entityName) {
109
110
  index: i - ROOT_ATTR_COUNT,
110
111
  isList: attr.isList || attr.isSet || attr.isArray || resolvesToAggregate(registry, attr.type),
111
112
  };
112
- if (!relating && attr.name.startsWith('Relating'))
113
- relating = slot;
114
- else if (!related && attr.name.startsWith('Related'))
115
- related = slot;
113
+ if (attr.name.startsWith('Relating'))
114
+ relatingCandidates.push(slot);
115
+ else if (attr.name.startsWith('Related'))
116
+ relatedCandidates.push(slot);
117
+ }
118
+ let relating = relatingCandidates[0];
119
+ let related = relatedCandidates[0];
120
+ // IFC2X3 IfcRelCoversSpaces predates the Relating*/Related* naming pair:
121
+ // its two endpoints are RelatedSpace (single) and RelatedCoverings (set).
122
+ // Derive that exceptional shape from the schema's two reference slots,
123
+ // without a relationship-name table.
124
+ if (!relating && relatedCandidates.length >= 2) {
125
+ [relating, related] = relatedCandidates;
116
126
  }
117
127
  if (!relating || !related)
118
128
  return undefined;
@@ -123,16 +133,19 @@ const PLAN_CACHE = new Map();
123
133
  * The relating/related attribute slots for a STEP relationship keyword
124
134
  * (e.g. `'IFCRELASSIGNSTOACTOR'`), or `undefined` if the type is unknown to
125
135
  * every bundled schema, or is an `IfcRelationship` subtype whose layout
126
- * this convention-based walk cannot resolve (none of the 46 IFC4/IFC4X3
127
- * concrete subtypes as of writing fall into that second case — see
128
- * `relationship-schema-slots.test.ts`).
136
+ * this convention-based walk cannot resolve (only the non-binary, concrete
137
+ * IFC2X3 base IfcRelAssociates — see `relationship-schema-slots.test.ts`).
129
138
  */
130
- export function getRelationshipSlotPlan(typeUpper) {
131
- const cached = PLAN_CACHE.get(typeUpper);
132
- if (cached !== undefined || PLAN_CACHE.has(typeUpper))
139
+ export function getRelationshipSlotPlan(typeUpper, schemaVersion) {
140
+ const cacheKey = `${schemaVersion ?? '*'}:${typeUpper}`;
141
+ const cached = PLAN_CACHE.get(cacheKey);
142
+ if (cached !== undefined || PLAN_CACHE.has(cacheKey))
133
143
  return cached;
134
144
  let plan;
135
- for (const version of VERSIONS) {
145
+ const versions = VERSIONS.includes(schemaVersion)
146
+ ? [schemaVersion]
147
+ : VERSIONS;
148
+ for (const version of versions) {
136
149
  const registry = getSchemaRegistryForVersion(version);
137
150
  const canonical = Object.keys(registry.entities).find(n => n.toUpperCase() === typeUpper);
138
151
  if (!canonical)
@@ -141,7 +154,7 @@ export function getRelationshipSlotPlan(typeUpper) {
141
154
  if (plan)
142
155
  break;
143
156
  }
144
- PLAN_CACHE.set(typeUpper, plan);
157
+ PLAN_CACHE.set(cacheKey, plan);
145
158
  return plan;
146
159
  }
147
160
  function isSubtypeOfIfcRelationship(registry, name) {
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-schema-slots.js","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-schema-slots.js","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,7 @@
17
17
  * only; a 2X3 file's IFCWORKCALENDAR entities are silently skipped by
18
18
  * `schedule-extractor.ts`'s `byType.get('IFCWORKCALENDAR')` walk.
19
19
  */
20
- import { EntityExtractor } from './entity-extractor.js';
21
- import type { IfcDataStore } from './columnar-parser.js';
20
+ import type { CostEntityReader } from './cost-reader.js';
22
21
  /**
23
22
  * IFC4/IFC4X3 STEP attribute indices for IfcWorkCalendar. Like
24
23
  * IfcWorkSchedule/IfcWorkPlan it extends IfcControl < IfcObject <
@@ -85,5 +84,5 @@ export interface WorkCalendarInfo {
85
84
  * typed record out, `undefined` when the express id doesn't resolve to an
86
85
  * IFCWORKCALENDAR.
87
86
  */
88
- export declare function extractWorkCalendar(extractor: EntityExtractor, store: IfcDataStore, calendarId: number): WorkCalendarInfo | undefined;
87
+ export declare function extractWorkCalendar(reader: CostEntityReader, calendarId: number): WorkCalendarInfo | undefined;
89
88
  //# sourceMappingURL=schedule-calendar-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-calendar-types.d.ts","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AA8BX,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wHAAwH;IACxH,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AAmFD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GACjB,gBAAgB,GAAG,SAAS,CA+B9B"}
1
+ {"version":3,"file":"schedule-calendar-types.d.ts","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AA8BX,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wHAAwH;IACxH,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AA0ED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,gBAAgB,GAAG,SAAS,CA6B9B"}
@@ -51,11 +51,8 @@ const TIME_PERIOD_ATTR = {
51
51
  StartTime: 0,
52
52
  EndTime: 1,
53
53
  };
54
- function extractTimePeriod(extractor, store, timePeriodId) {
55
- const ref = store.entityIndex.byId.get(timePeriodId);
56
- if (!ref)
57
- return undefined;
58
- const entity = extractor.extractEntity(ref);
54
+ function extractTimePeriod(reader, timePeriodId) {
55
+ const entity = reader.get(timePeriodId);
59
56
  if (!entity)
60
57
  return undefined;
61
58
  if (entity.type.toUpperCase() !== 'IFCTIMEPERIOD')
@@ -67,11 +64,8 @@ function extractTimePeriod(extractor, store, timePeriodId) {
67
64
  return undefined;
68
65
  return { start, end };
69
66
  }
70
- function extractRecurrencePattern(extractor, store, patternId) {
71
- const ref = store.entityIndex.byId.get(patternId);
72
- if (!ref)
73
- return undefined;
74
- const entity = extractor.extractEntity(ref);
67
+ function extractRecurrencePattern(reader, patternId) {
68
+ const entity = reader.get(patternId);
75
69
  if (!entity)
76
70
  return undefined;
77
71
  if (entity.type.toUpperCase() !== 'IFCRECURRENCEPATTERN')
@@ -86,7 +80,7 @@ function extractRecurrencePattern(extractor, store, patternId) {
86
80
  const timePeriodIds = asRefList(a[RECURRENCE_PATTERN_ATTR.TimePeriods]);
87
81
  const timePeriods = [];
88
82
  for (const id of timePeriodIds) {
89
- const tp = extractTimePeriod(extractor, store, id);
83
+ const tp = extractTimePeriod(reader, id);
90
84
  if (tp)
91
85
  timePeriods.push(tp);
92
86
  }
@@ -106,11 +100,8 @@ function asNumberList(value) {
106
100
  return [];
107
101
  return value.map(asNumber).filter((n) => n !== undefined);
108
102
  }
109
- function extractWorkTime(extractor, store, workTimeId) {
110
- const ref = store.entityIndex.byId.get(workTimeId);
111
- if (!ref)
112
- return undefined;
113
- const entity = extractor.extractEntity(ref);
103
+ function extractWorkTime(reader, workTimeId) {
104
+ const entity = reader.get(workTimeId);
114
105
  if (!entity)
115
106
  return undefined;
116
107
  if (entity.type.toUpperCase() !== 'IFCWORKTIME')
@@ -122,7 +113,7 @@ function extractWorkTime(extractor, store, workTimeId) {
122
113
  dataOrigin: asEnum(a[WORK_TIME_ATTR.DataOrigin]),
123
114
  userDefinedDataOrigin: asString(a[WORK_TIME_ATTR.UserDefinedDataOrigin]),
124
115
  recurrencePattern: recurrenceId !== undefined
125
- ? extractRecurrencePattern(extractor, store, recurrenceId)
116
+ ? extractRecurrencePattern(reader, recurrenceId)
126
117
  : undefined,
127
118
  start: asString(a[WORK_TIME_ATTR.Start]),
128
119
  finish: asString(a[WORK_TIME_ATTR.Finish]),
@@ -135,11 +126,8 @@ function extractWorkTime(extractor, store, workTimeId) {
135
126
  * typed record out, `undefined` when the express id doesn't resolve to an
136
127
  * IFCWORKCALENDAR.
137
128
  */
138
- export function extractWorkCalendar(extractor, store, calendarId) {
139
- const ref = store.entityIndex.byId.get(calendarId);
140
- if (!ref)
141
- return undefined;
142
- const entity = extractor.extractEntity(ref);
129
+ export function extractWorkCalendar(reader, calendarId) {
130
+ const entity = reader.get(calendarId);
143
131
  if (!entity)
144
132
  return undefined;
145
133
  if (entity.type.toUpperCase() !== 'IFCWORKCALENDAR')
@@ -149,13 +137,13 @@ export function extractWorkCalendar(extractor, store, calendarId) {
149
137
  const exceptionTimeIds = asRefList(a[WORK_CALENDAR_ATTR.ExceptionTimes]);
150
138
  const workingTimes = [];
151
139
  for (const id of workingTimeIds) {
152
- const wt = extractWorkTime(extractor, store, id);
140
+ const wt = extractWorkTime(reader, id);
153
141
  if (wt)
154
142
  workingTimes.push(wt);
155
143
  }
156
144
  const exceptionTimes = [];
157
145
  for (const id of exceptionTimeIds) {
158
- const wt = extractWorkTime(extractor, store, id);
146
+ const wt = extractWorkTime(reader, id);
159
147
  if (wt)
160
148
  exceptionTimes.push(wt);
161
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-calendar-types.js","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-calendar-types.js","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,7 @@
6
6
  * under the ~400-line module-size guideline (see AGENTS.md) — same reason
7
7
  * `schedule-calendar-types.ts` was split from `schedule-types.ts`.
8
8
  */
9
- import { EntityExtractor } from './entity-extractor.js';
10
- import type { IfcDataStore } from './columnar-parser.js';
9
+ import type { CostEntityReader } from './cost-reader.js';
11
10
  import type { ScheduleTaskInfo, WorkScheduleInfo } from './schedule-types.js';
12
11
  import type { WorkCalendarInfo } from './schedule-calendar-types.js';
13
12
  /**
@@ -17,9 +16,9 @@ import type { WorkCalendarInfo } from './schedule-calendar-types.js';
17
16
  * caller's shared express-id -> GlobalId map, recorded here so the later
18
17
  * passes can resolve a schedule by either key.
19
18
  */
20
- export declare function extractWorkScheduleInfo(extractor: EntityExtractor, store: IfcDataStore, expressId: number, kind: 'WorkSchedule' | 'WorkPlan', globalIdByExpressId: Map<number, string>): WorkScheduleInfo | null;
19
+ export declare function extractWorkScheduleInfo(reader: CostEntityReader, expressId: number, kind: 'WorkSchedule' | 'WorkPlan', globalIdByExpressId: Map<number, string>): WorkScheduleInfo | null;
21
20
  /** Extract every IFCWORKCALENDAR express id into a WorkCalendarInfo, keyed both as a flat list and by express id (for the assignment walk below). */
22
- export declare function extractWorkCalendars(extractor: EntityExtractor, store: IfcDataStore, workCalendarIds: number[]): {
21
+ export declare function extractWorkCalendars(reader: CostEntityReader, workCalendarIds: readonly number[]): {
23
22
  workCalendars: WorkCalendarInfo[];
24
23
  calendarByExpressId: Map<number, WorkCalendarInfo>;
25
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-control-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,cAAc,GAAG,UAAU,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,gBAAgB,GAAG,IAAI,CA0BzB;AAED,qJAAqJ;AACrJ,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EAAE,GACxB;IAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAAE,CAW3F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAClD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACjD,OAAO,CAiBT"}
1
+ {"version":3,"file":"schedule-control-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,cAAc,GAAG,UAAU,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,gBAAgB,GAAG,IAAI,CAwBzB;AAED,qJAAqJ;AACrJ,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC;IAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAAE,CAW3F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAClD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACjD,OAAO,CAiBT"}
@@ -10,11 +10,8 @@ import { extractWorkCalendar } from './schedule-calendar-types.js';
10
10
  * caller's shared express-id -> GlobalId map, recorded here so the later
11
11
  * passes can resolve a schedule by either key.
12
12
  */
13
- export function extractWorkScheduleInfo(extractor, store, expressId, kind, globalIdByExpressId) {
14
- const ref = store.entityIndex.byId.get(expressId);
15
- if (!ref)
16
- return null;
17
- const entity = extractor.extractEntity(ref);
13
+ export function extractWorkScheduleInfo(reader, expressId, kind, globalIdByExpressId) {
14
+ const entity = reader.get(expressId);
18
15
  if (!entity)
19
16
  return null;
20
17
  const a = entity.attributes || [];
@@ -41,11 +38,11 @@ export function extractWorkScheduleInfo(extractor, store, expressId, kind, globa
41
38
  return info;
42
39
  }
43
40
  /** Extract every IFCWORKCALENDAR express id into a WorkCalendarInfo, keyed both as a flat list and by express id (for the assignment walk below). */
44
- export function extractWorkCalendars(extractor, store, workCalendarIds) {
41
+ export function extractWorkCalendars(reader, workCalendarIds) {
45
42
  const workCalendars = [];
46
43
  const calendarByExpressId = new Map();
47
44
  for (const id of workCalendarIds) {
48
- const info = extractWorkCalendar(extractor, store, id);
45
+ const info = extractWorkCalendar(reader, id);
49
46
  if (info) {
50
47
  workCalendars.push(info);
51
48
  calendarByExpressId.set(id, info);
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-control-extractor.js","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule-control-extractor.js","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { CostMutationOverlay } from './cost-overlay.js';
1
2
  import type { IfcDataStore } from './columnar-parser.js';
2
3
  import { parseIso8601Duration } from './iso8601-duration.js';
3
4
  import type { SequenceTypeEnum, TaskDurationType, ScheduleTaskTimeInfo, ScheduleTaskInfo, ScheduleSequenceInfo, WorkScheduleInfo, ScheduleExtraction } from './schedule-types.js';
@@ -11,5 +12,7 @@ export type { WorkCalendarInfo, WorkTimeInfo, RecurrencePatternInfo, TimePeriodI
11
12
  * IfcRelAssignsToControl / IfcRelNests / IfcWorkSchedule / IfcWorkPlan entity
12
13
  * and assembles a connected ScheduleExtraction.
13
14
  */
14
- export declare function extractScheduleOnDemand(store: IfcDataStore): ScheduleExtraction;
15
+ export declare function extractScheduleOnDemand(store: IfcDataStore, options?: {
16
+ overlay?: CostMutationOverlay;
17
+ }): ScheduleExtraction;
15
18
  //# sourceMappingURL=schedule-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-extractor.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAkB7D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAKhC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1H;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAkT/E"}
1
+ {"version":3,"file":"schedule-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-extractor.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAkB7D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAKhC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1H;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,GAAG,kBAAkB,CAsS5H"}