@ifc-lite/parser 7.0.0 → 8.0.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 (87) hide show
  1. package/dist/columnar-parser-attributes.d.ts +1 -1
  2. package/dist/columnar-parser-attributes.d.ts.map +1 -1
  3. package/dist/columnar-parser-attributes.js +36 -1
  4. package/dist/columnar-parser-attributes.js.map +1 -1
  5. package/dist/columnar-parser-indexes.d.ts.map +1 -1
  6. package/dist/columnar-parser-indexes.js +24 -1
  7. package/dist/columnar-parser-indexes.js.map +1 -1
  8. package/dist/columnar-parser-relationships.d.ts +2 -1
  9. package/dist/columnar-parser-relationships.d.ts.map +1 -1
  10. package/dist/columnar-parser-relationships.js +2 -2
  11. package/dist/columnar-parser-relationships.js.map +1 -1
  12. package/dist/columnar-parser-root-attributes.d.ts +2 -5
  13. package/dist/columnar-parser-root-attributes.d.ts.map +1 -1
  14. package/dist/columnar-parser-root-attributes.js +22 -2
  15. package/dist/columnar-parser-root-attributes.js.map +1 -1
  16. package/dist/columnar-parser.d.ts +5 -1
  17. package/dist/columnar-parser.d.ts.map +1 -1
  18. package/dist/columnar-parser.js +19 -56
  19. package/dist/columnar-parser.js.map +1 -1
  20. package/dist/cost-evaluator.d.ts.map +1 -1
  21. package/dist/cost-evaluator.js +6 -4
  22. package/dist/cost-evaluator.js.map +1 -1
  23. package/dist/cost-extractor.d.ts +2 -1
  24. package/dist/cost-extractor.d.ts.map +1 -1
  25. package/dist/cost-extractor.js +22 -5
  26. package/dist/cost-extractor.js.map +1 -1
  27. package/dist/cost-overlay.d.ts +104 -0
  28. package/dist/cost-overlay.d.ts.map +1 -0
  29. package/dist/cost-overlay.js +5 -0
  30. package/dist/cost-overlay.js.map +1 -0
  31. package/dist/cost-reader.d.ts +45 -2
  32. package/dist/cost-reader.d.ts.map +1 -1
  33. package/dist/cost-reader.js +168 -11
  34. package/dist/cost-reader.js.map +1 -1
  35. package/dist/cost-types.d.ts +9 -1
  36. package/dist/cost-types.d.ts.map +1 -1
  37. package/dist/cost.d.ts +1 -0
  38. package/dist/cost.d.ts.map +1 -1
  39. package/dist/cost.js.map +1 -1
  40. package/dist/effective-entity-record.d.ts +35 -0
  41. package/dist/effective-entity-record.d.ts.map +1 -0
  42. package/dist/effective-entity-record.js +43 -0
  43. package/dist/effective-entity-record.js.map +1 -0
  44. package/dist/effective-relationship-overlay.d.ts +31 -0
  45. package/dist/effective-relationship-overlay.d.ts.map +1 -0
  46. package/dist/effective-relationship-overlay.js +111 -0
  47. package/dist/effective-relationship-overlay.js.map +1 -0
  48. package/dist/exact-relationship-edges.d.ts +46 -0
  49. package/dist/exact-relationship-edges.d.ts.map +1 -0
  50. package/dist/exact-relationship-edges.js +88 -0
  51. package/dist/exact-relationship-edges.js.map +1 -0
  52. package/dist/identity-hints.d.ts +32 -0
  53. package/dist/identity-hints.d.ts.map +1 -0
  54. package/dist/identity-hints.js +130 -0
  55. package/dist/identity-hints.js.map +1 -0
  56. package/dist/ifc-schema.d.ts +2 -0
  57. package/dist/ifc-schema.d.ts.map +1 -1
  58. package/dist/ifc-schema.js +13 -0
  59. package/dist/ifc-schema.js.map +1 -1
  60. package/dist/index.d.ts +6 -3
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +6 -3
  63. package/dist/index.js.map +1 -1
  64. package/dist/on-demand-extractors.d.ts +6 -31
  65. package/dist/on-demand-extractors.d.ts.map +1 -1
  66. package/dist/on-demand-extractors.js +18 -11
  67. package/dist/on-demand-extractors.js.map +1 -1
  68. package/dist/project-units.d.ts.map +1 -1
  69. package/dist/project-units.js +8 -2
  70. package/dist/project-units.js.map +1 -1
  71. package/dist/property-unit.d.ts +24 -0
  72. package/dist/property-unit.d.ts.map +1 -0
  73. package/dist/property-unit.js +29 -0
  74. package/dist/property-unit.js.map +1 -0
  75. package/dist/query-backend-maps.d.ts +5 -8
  76. package/dist/query-backend-maps.d.ts.map +1 -1
  77. package/dist/query-backend-maps.js +8 -15
  78. package/dist/query-backend-maps.js.map +1 -1
  79. package/dist/relationship-schema-slots.d.ts +8 -8
  80. package/dist/relationship-schema-slots.d.ts.map +1 -1
  81. package/dist/relationship-schema-slots.js +31 -18
  82. package/dist/relationship-schema-slots.js.map +1 -1
  83. package/dist/worker-parser.d.ts +29 -1
  84. package/dist/worker-parser.d.ts.map +1 -1
  85. package/dist/worker-parser.js +80 -7
  86. package/dist/worker-parser.js.map +1 -1
  87. package/package.json +7 -7
@@ -9,9 +9,11 @@
9
9
  * rather than pre-building all data upfront during initial parse.
10
10
  */
11
11
  import { EntityExtractor } from './entity-extractor.js';
12
- import { RelationshipType } from '@ifc-lite/data';
12
+ import { RelationshipType, resolvedTypeName } from '@ifc-lite/data';
13
13
  import { readQuantitySet } from './quantity-collect.js';
14
14
  import { appendSetsFromSecondSource, setIdentityKey } from './property-set-merge.js';
15
+ import { extractExactRelationshipEdges } from './exact-relationship-edges.js';
16
+ export { extractExactRelatedIds } from './exact-relationship-edges.js';
15
17
  // Re-export classification and material resolvers
16
18
  export { extractClassificationsOnDemand, extractClassificationSystemsOnDemand } from './classification-resolver.js';
17
19
  export { extractMaterialsOnDemand, extractAllMaterialsOnDemand } from './material-resolver.js';
@@ -25,17 +27,15 @@ import { resolveAllMaterialDefIds as resolveAllMaterialDefIdsImpl, collectMateri
25
27
  // re-exported here so every existing import of this module keeps resolving.
26
28
  export { parsePropertyValue, extractNumericValue, resolveComplexPropertyValue, parsePropertyValueWithComplex, } from './property-value-parser.js';
27
29
  import { parsePropertyValueWithComplex } from './property-value-parser.js';
30
+ import { resolvePropertyUnit } from './property-unit.js';
28
31
  // ============================================================================
29
32
  // Property Set Extraction Helpers
30
33
  // ============================================================================
31
- /**
32
- * Extract property sets from a list of pset IDs using the entity index.
33
- * Shared logic between instance-level and type-level property extraction.
34
- */
34
+ /** Extract property sets from IDs, shared by instance- and type-level extraction. */
35
35
  export function extractPsetsFromIds(store, extractor, psetIds) {
36
36
  const result = [];
37
37
  for (const psetId of psetIds) {
38
- const psetRef = store.entityIndex.byId.get(psetId);
38
+ const psetRef = store.entityIndex.byId.get(psetId) ?? store.deferredEntityIndex?.get(psetId);
39
39
  if (!psetRef)
40
40
  continue;
41
41
  // Only extract IFCPROPERTYSET entities (skip quantity sets etc.)
@@ -53,7 +53,7 @@ export function extractPsetsFromIds(store, extractor, psetIds) {
53
53
  for (const propRef of hasProperties) {
54
54
  if (typeof propRef !== 'number')
55
55
  continue;
56
- const propEntityRef = store.entityIndex.byId.get(propRef);
56
+ const propEntityRef = store.entityIndex.byId.get(propRef) ?? store.deferredEntityIndex?.get(propRef);
57
57
  if (!propEntityRef)
58
58
  continue;
59
59
  const propEntity = extractor.extractEntity(propEntityRef);
@@ -73,6 +73,11 @@ export function extractPsetsFromIds(store, extractor, psetIds) {
73
73
  entry.values = parsed.values;
74
74
  if (parsed.dataType)
75
75
  entry.dataType = parsed.dataType;
76
+ const unit = resolvePropertyUnit(store, extractor, propEntity.type, propAttrs, parsed.dataType);
77
+ if (unit)
78
+ entry.unit = unit.symbol;
79
+ if (unit?.siScale !== undefined)
80
+ entry.unitSiScale = unit.siScale;
76
81
  properties.push(entry);
77
82
  }
78
83
  }
@@ -386,9 +391,11 @@ export function extractRelationshipsOnDemand(store, entityId) {
386
391
  fills: [],
387
392
  groups: [],
388
393
  connections: [],
394
+ relations: [],
389
395
  };
390
396
  if (!store.relationships)
391
397
  return result;
398
+ result.relations = extractExactRelationshipEdges(store, entityId);
392
399
  const getEntityInfo = (id) => {
393
400
  const ref = store.entityIndex.byId.get(id);
394
401
  // Canonical IfcPascalCase (e.g. "IfcZone") for display + case-sensitive
@@ -397,8 +404,8 @@ export function extractRelationshipsOnDemand(store, entityId) {
397
404
  // IFCX stores ingest with an EMPTY entityIndex.byId (no STEP byte
398
405
  // spans exist), so when byId misses the EntityTable is the authority
399
406
  // for name/type instead of reporting Unknown (#1622 IFCX follow-up).
400
- const tableType = store.entities?.getTypeName?.(id);
401
- if (!ref && (!tableType || tableType === 'Unknown'))
407
+ const tableType = store.entities && resolvedTypeName(store.entities, id);
408
+ if (!ref && !tableType)
402
409
  return { type: 'Unknown' };
403
410
  const name = store.entities?.getName(id);
404
411
  const type = tableType || ref?.type || 'Unknown';
@@ -451,12 +458,12 @@ export function extractGroupMembersOnDemand(store, groupId) {
451
458
  // Canonical IfcPascalCase (e.g. "IfcSpace") — `ref.type` is the raw STEP
452
459
  // token ("IFCSPACE"), which would break case-sensitive class checks in
453
460
  // consumers (member-isolation toggles, lens zone matching). (#1075)
454
- const tableType = store.entities?.getTypeName(id);
461
+ const tableType = store.entities && resolvedTypeName(store.entities, id);
455
462
  // IFCX stores ingest with an EMPTY entityIndex.byId (no STEP byte spans
456
463
  // exist), so existence rides the EntityTable there: keep a member when
457
464
  // EITHER source knows the id. STEP stores keep byId as the primary gate
458
465
  // and resolve identically to before (#1622 IFCX follow-up).
459
- if (!ref && (!tableType || tableType === 'Unknown'))
466
+ if (!ref && !tableType)
460
467
  continue;
461
468
  const name = store.entities?.getName(id);
462
469
  const type = tableType || ref?.type || 'Unknown';
@@ -1 +1 @@
1
- {"version":3,"file":"on-demand-extractors.js","sourceRoot":"","sources":["../src/on-demand-extractors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"on-demand-extractors.js","sourceRoot":"","sources":["../src/on-demand-extractors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-units.d.ts","sourceRoot":"","sources":["../src/project-units.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAIL,WAAW,EAEX,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;+DAE+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE;QAAE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD;AAED,UAAU,eAAgB,SAAQ,mBAAmB;IACnD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC/B;AAMD,2DAA2D;AAC3D,qBAAa,YAAY;IACvB;6EACyE;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKnF,MAAM,CAAC,KAAK,IAAI,YAAY;IAI5B;;kFAE8E;IAC9E,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IASxD,iFAAiF;IACjF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/D,QAAQ,IAAI,YAAY,GAAG,IAAI;IAI/B,IAAI,aAAa,IAAI,MAAM,CAE1B;CACF;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAOD;yDACyD;AACzD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,mBAAmB,EAChC,GAAG,EAAE,MAAM,GACV,SAAS,GAAG,IAAI,CAGlB;AAyHD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,GAAG,cAAc,EACnC,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,CAqCd"}
1
+ {"version":3,"file":"project-units.d.ts","sourceRoot":"","sources":["../src/project-units.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAIL,WAAW,EAEX,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;+DAE+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE;QAAE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;KAAE,CAAC;CACzD;AAED,UAAU,eAAgB,SAAQ,mBAAmB;IACnD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC/B;AAMD,2DAA2D;AAC3D,qBAAa,YAAY;IACvB;6EACyE;IACzE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAEvC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKnF,MAAM,CAAC,KAAK,IAAI,YAAY;IAI5B;;kFAE8E;IAC9E,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IASxD,iFAAiF;IACjF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI/D,QAAQ,IAAI,YAAY,GAAG,IAAI;IAI/B,IAAI,aAAa,IAAI,MAAM,CAE1B;CACF;AAED,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAOD;yDACyD;AACzD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,mBAAmB,EAChC,GAAG,EAAE,MAAM,GACV,SAAS,GAAG,IAAI,CAGlB;AA4HD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,GAAG,cAAc,EACnC,WAAW,EAAE,eAAe,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,CAqCd"}
@@ -96,19 +96,25 @@ function resolveDeclaredUnit(extractor, entityIndex, ref) {
96
96
  const elemRefs = Array.isArray(attrs[0]) ? attrs[0] : [];
97
97
  const parts = [];
98
98
  let scale = 1.0;
99
+ let incomplete = false;
99
100
  for (const er of elemRefs) {
100
- if (typeof er !== 'number')
101
+ if (typeof er !== 'number') {
102
+ incomplete = true;
101
103
  continue;
104
+ }
102
105
  const el = resolveDerivedElement(extractor, entityIndex, er);
103
106
  if (el) {
104
107
  scale *= Math.pow(el.unitScale, el.exponent);
105
108
  parts.push([el.symbol, el.exponent]);
106
109
  }
110
+ else {
111
+ incomplete = true; // a factor we cannot read: the product is not this unit's scale (#4833)
112
+ }
107
113
  }
108
114
  const symbol = composeDerived(parts);
109
115
  if (symbol.length === 0)
110
116
  return null;
111
- return { unitType, resolved: { symbol, siScale: scale }, monetary: false };
117
+ return { unitType, resolved: incomplete ? null : { symbol, siScale: scale }, monetary: false };
112
118
  }
113
119
  case 'IFCMONETARYUNIT': {
114
120
  // [0]=Currency (IfcLabel string in IFC4+, IfcCurrencyEnum in IFC2x3)
@@ -1 +1 @@
1
- {"version":3,"file":"project-units.js","sourceRoot":"","sources":["../src/project-units.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-units.js","sourceRoot":"","sources":["../src/project-units.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { IfcDataStore } from './columnar-parser.js';
2
+ import type { EntityExtractor } from './entity-extractor.js';
3
+ /**
4
+ * The explicit `Unit` an `IfcProperty` subtype declares, when it declares one.
5
+ *
6
+ * `siScale` is present only when the unit entity resolved (its symbol and
7
+ * scale to the SI base are known). A `Unit` reference the file does not let us
8
+ * read — a dangling ref, an `IfcSIUnit` name outside the table, a conversion
9
+ * factor that cannot be followed — is still REPORTED, as the STEP reference
10
+ * (`#123`, the same spelling `IfcPropertyReferenceValue` uses) with no scale:
11
+ * the value is in a unit we cannot name, which is a different fact from "the
12
+ * value is in the project unit". Readers that aggregate must treat a missing
13
+ * `siScale` as not convertible rather than falling back to the project
14
+ * assignment (#4833).
15
+ */
16
+ export interface ExplicitPropertyUnit {
17
+ symbol: string;
18
+ siScale?: number;
19
+ }
20
+ /** Resolve the optional explicit Unit attribute shared by IFC property values. */
21
+ export declare function resolvePropertyUnit(store: IfcDataStore, extractor: EntityExtractor, propertyType: string, attributes: unknown[],
22
+ /** The value's IFC measure type when tagged; an explicit unit of another dimension is reported unresolved. */
23
+ dataType?: string): ExplicitPropertyUnit | undefined;
24
+ //# sourceMappingURL=property-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-unit.d.ts","sourceRoot":"","sources":["../src/property-unit.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,OAAO,EAAE;AACrB,8GAA8G;AAC9G,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,GAAG,SAAS,CAoBlC"}
@@ -0,0 +1,29 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ import { measureUnit, resolveUnitByRef } from './project-units.js';
5
+ /** Resolve the optional explicit Unit attribute shared by IFC property values. */
6
+ export function resolvePropertyUnit(store, extractor, propertyType, attributes,
7
+ /** The value's IFC measure type when tagged; an explicit unit of another dimension is reported unresolved. */
8
+ dataType) {
9
+ // IfcPropertyTableValue carries DefiningUnit and DefinedUnit (slots 5 and
10
+ // 6); a single `unit` cannot represent both, so a table reports none.
11
+ const type = propertyType.toUpperCase();
12
+ const unitIndex = type === 'IFCPROPERTYBOUNDEDVALUE' ? 4
13
+ : type === 'IFCPROPERTYSINGLEVALUE' || type === 'IFCPROPERTYLISTVALUE' ? 3 : -1;
14
+ const unitRef = unitIndex >= 0 && typeof attributes[unitIndex] === 'number'
15
+ ? attributes[unitIndex]
16
+ : undefined;
17
+ if (unitRef === undefined)
18
+ return undefined;
19
+ const entry = resolveUnitByRef(extractor, {
20
+ byId: { get: (id) => store.entityIndex.byId.get(id) ?? store.deferredEntityIndex?.get(id) },
21
+ }, unitRef);
22
+ const measure = dataType ? measureUnit(dataType) : undefined;
23
+ const compatible = !entry || !measure
24
+ || (measure.kind === 'typed' && entry.unitType === measure.unitType)
25
+ || (measure.kind === 'monetary' && entry.monetary)
26
+ || measure.kind === 'dimensionless';
27
+ return entry && compatible ? { symbol: entry.resolved.symbol, siScale: entry.resolved.siScale } : { symbol: `#${unitRef}` };
28
+ }
29
+ //# sourceMappingURL=property-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property-unit.js","sourceRoot":"","sources":["../src/property-unit.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAoBnE,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CACjC,KAAmB,EACnB,SAA0B,EAC1B,YAAoB,EACpB,UAAqB;AACrB,8GAA8G;AAC9G,QAAiB;IAEjB,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,KAAK,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,IAAI,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,QAAQ;QACzE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACvB,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,EAAE;QACxC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;KAC5F,EAAE,OAAO,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO;WAChC,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC;WACjE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC;WAC/C,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC;IACtC,OAAO,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,CAAC;AAC9H,CAAC"}
@@ -28,13 +28,10 @@ export declare function expandTypes(types: string[], schemaVersion?: string): st
28
28
  * Relationship names the SDK's `related(ref, relType, direction)` accepts,
29
29
  * keyed in the PascalCase spelling a caller writes.
30
30
  *
31
- * Deliberately NARROWER than `REL_TYPE_MAP` in `columnar-parser-indexes.ts`,
32
- * which the parser uses to bucket every relationship it indexes: the SDK
33
- * surface exposes five of those, and a name outside this map resolves to no
34
- * edges rather than throwing. Keeping the two maps in one place — rather than
35
- * three copies of this one and no cross-reference to the other — is what makes
36
- * that narrowing visible; widening the SDK surface is a deliberate change to
37
- * this table, not an accident of which backend a caller reached.
31
+ * Derived from the enum's canonical EXPRESS-name table so every exact class
32
+ * indexed by the parser is traversable through `bim.query().related()` and
33
+ * MCP. Before #4205 this was a nine-entry hand list: the graph contained many
34
+ * more classes than the public query surface could name.
38
35
  */
39
- export declare const QUERY_REL_TYPE_MAP: Record<string, RelationshipType>;
36
+ export declare const QUERY_REL_TYPE_MAP: Readonly<Record<string, RelationshipType>>;
40
37
  //# sourceMappingURL=query-backend-maps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-backend-maps.d.ts","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAgC,MAAM,gBAAgB,CAAC;AAGhF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAcjD,CAAC;AAkHF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ7E;AAiDD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAM/D,CAAC"}
1
+ {"version":3,"file":"query-backend-maps.d.ts","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAsD,MAAM,gBAAgB,CAAC;AAGtG;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAcjD,CAAC;AAkHF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ7E;AAiDD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIzE,CAAC"}
@@ -14,7 +14,7 @@
14
14
  * many, so the tables live here, next to the `entityIndex` whose key shape
15
15
  * they are written against.
16
16
  */
17
- import { RelationshipType, expandTypeNamesToDescendants } from '@ifc-lite/data';
17
+ import { RelationshipType, expandTypeNamesToDescendants, relationshipTypeName } from '@ifc-lite/data';
18
18
  import { getInheritanceChain, isQueryableObjectType } from './ifc-schema.js';
19
19
  /**
20
20
  * IFC4 subtype map — parent types to their StandardCase/ElementedCase
@@ -200,19 +200,12 @@ function computeExpandTypes(types, schemaVersion) {
200
200
  * Relationship names the SDK's `related(ref, relType, direction)` accepts,
201
201
  * keyed in the PascalCase spelling a caller writes.
202
202
  *
203
- * Deliberately NARROWER than `REL_TYPE_MAP` in `columnar-parser-indexes.ts`,
204
- * which the parser uses to bucket every relationship it indexes: the SDK
205
- * surface exposes five of those, and a name outside this map resolves to no
206
- * edges rather than throwing. Keeping the two maps in one place — rather than
207
- * three copies of this one and no cross-reference to the other — is what makes
208
- * that narrowing visible; widening the SDK surface is a deliberate change to
209
- * this table, not an accident of which backend a caller reached.
203
+ * Derived from the enum's canonical EXPRESS-name table so every exact class
204
+ * indexed by the parser is traversable through `bim.query().related()` and
205
+ * MCP. Before #4205 this was a nine-entry hand list: the graph contained many
206
+ * more classes than the public query surface could name.
210
207
  */
211
- export const QUERY_REL_TYPE_MAP = {
212
- IfcRelContainedInSpatialStructure: RelationshipType.ContainsElements,
213
- IfcRelAggregates: RelationshipType.Aggregates,
214
- IfcRelDefinesByType: RelationshipType.DefinesByType,
215
- IfcRelVoidsElement: RelationshipType.VoidsElement,
216
- IfcRelFillsElement: RelationshipType.FillsElement,
217
- };
208
+ export const QUERY_REL_TYPE_MAP = Object.fromEntries(Object.values(RelationshipType)
209
+ .filter((value) => typeof value === 'number')
210
+ .map((value) => [relationshipTypeName(value), value]));
218
211
  //# sourceMappingURL=query-backend-maps.js.map
@@ -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":"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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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"}