@ifc-lite/parser 1.1.7 → 1.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 (94) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +1 -1
  3. package/dist/classification-extractor.js +3 -3
  4. package/dist/classification-extractor.js.map +1 -1
  5. package/dist/columnar-parser.d.ts +86 -2
  6. package/dist/columnar-parser.d.ts.map +1 -1
  7. package/dist/columnar-parser.js +440 -173
  8. package/dist/columnar-parser.js.map +1 -1
  9. package/dist/entity-extractor.d.ts.map +1 -1
  10. package/dist/entity-extractor.js +23 -11
  11. package/dist/entity-extractor.js.map +1 -1
  12. package/dist/generated/entities.d.ts +3 -2
  13. package/dist/generated/entities.d.ts.map +1 -1
  14. package/dist/generated/entities.js +6 -3
  15. package/dist/generated/entities.js.map +1 -1
  16. package/dist/generated/enums.d.ts.map +1 -1
  17. package/dist/generated/enums.js +0 -3
  18. package/dist/generated/enums.js.map +1 -1
  19. package/dist/generated/index.d.ts +4 -2
  20. package/dist/generated/index.d.ts.map +1 -1
  21. package/dist/generated/index.js +4 -2
  22. package/dist/generated/index.js.map +1 -1
  23. package/dist/generated/schema-registry.d.ts.map +1 -1
  24. package/dist/generated/schema-registry.js +8 -3
  25. package/dist/generated/schema-registry.js.map +1 -1
  26. package/dist/generated/selects.d.ts +3 -0
  27. package/dist/generated/selects.d.ts.map +1 -1
  28. package/dist/generated/selects.js +6 -3
  29. package/dist/generated/selects.js.map +1 -1
  30. package/dist/generated/serializers.d.ts +71 -0
  31. package/dist/generated/serializers.d.ts.map +1 -0
  32. package/dist/generated/serializers.js +236 -0
  33. package/dist/generated/serializers.js.map +1 -0
  34. package/dist/generated/test-compile.d.ts +1 -6
  35. package/dist/generated/test-compile.d.ts.map +1 -1
  36. package/dist/generated/test-compile.js +30 -25
  37. package/dist/generated/test-compile.js.map +1 -1
  38. package/dist/generated/type-ids.d.ts +815 -0
  39. package/dist/generated/type-ids.d.ts.map +1 -0
  40. package/dist/generated/type-ids.js +1669 -0
  41. package/dist/generated/type-ids.js.map +1 -0
  42. package/dist/generated/types.d.ts +9 -542
  43. package/dist/generated/types.d.ts.map +1 -1
  44. package/dist/generated/types.js +6 -497
  45. package/dist/generated/types.js.map +1 -1
  46. package/dist/georef-extractor.js +2 -2
  47. package/dist/georef-extractor.js.map +1 -1
  48. package/dist/index.d.ts +38 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +233 -41
  51. package/dist/index.js.map +1 -1
  52. package/dist/material-extractor.js +8 -8
  53. package/dist/material-extractor.js.map +1 -1
  54. package/dist/parser.worker.d.ts +2 -0
  55. package/dist/parser.worker.d.ts.map +1 -0
  56. package/dist/parser.worker.js +43 -0
  57. package/dist/parser.worker.js.map +1 -0
  58. package/dist/property-extractor.d.ts +5 -1
  59. package/dist/property-extractor.d.ts.map +1 -1
  60. package/dist/property-extractor.js +22 -1
  61. package/dist/property-extractor.js.map +1 -1
  62. package/dist/quantity-extractor.d.ts +5 -1
  63. package/dist/quantity-extractor.d.ts.map +1 -1
  64. package/dist/quantity-extractor.js +29 -1
  65. package/dist/quantity-extractor.js.map +1 -1
  66. package/dist/relationship-extractor.d.ts +5 -1
  67. package/dist/relationship-extractor.d.ts.map +1 -1
  68. package/dist/relationship-extractor.js +27 -2
  69. package/dist/relationship-extractor.js.map +1 -1
  70. package/dist/spatial-hierarchy-builder.d.ts +4 -3
  71. package/dist/spatial-hierarchy-builder.d.ts.map +1 -1
  72. package/dist/spatial-hierarchy-builder.js +46 -34
  73. package/dist/spatial-hierarchy-builder.js.map +1 -1
  74. package/dist/style-extractor.d.ts +1 -0
  75. package/dist/style-extractor.d.ts.map +1 -1
  76. package/dist/style-extractor.js +18 -0
  77. package/dist/style-extractor.js.map +1 -1
  78. package/dist/tokenizer.d.ts +11 -0
  79. package/dist/tokenizer.d.ts.map +1 -1
  80. package/dist/tokenizer.js +150 -10
  81. package/dist/tokenizer.js.map +1 -1
  82. package/dist/unit-extractor.d.ts +22 -0
  83. package/dist/unit-extractor.d.ts.map +1 -0
  84. package/dist/unit-extractor.js +205 -0
  85. package/dist/unit-extractor.js.map +1 -0
  86. package/dist/worker-parser.d.ts +28 -0
  87. package/dist/worker-parser.d.ts.map +1 -0
  88. package/dist/worker-parser.js +81 -0
  89. package/dist/worker-parser.js.map +1 -0
  90. package/package.json +9 -8
  91. package/dist/examples/comprehensive-extraction.d.ts +0 -76
  92. package/dist/examples/comprehensive-extraction.d.ts.map +0 -1
  93. package/dist/examples/comprehensive-extraction.js +0 -228
  94. package/dist/examples/comprehensive-extraction.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"property-extractor.js","sourceRoot":"","sources":["../src/property-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"property-extractor.js","sourceRoot":"","sources":["../src/property-extractor.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,11 @@ export declare class QuantityExtractor {
22
22
  private debug;
23
23
  constructor(entities: Map<number, IfcEntity>, debug?: boolean);
24
24
  /**
25
- * Extract all IfcElementQuantity sets from entities
25
+ * Extract all IfcElementQuantity sets from entities (async version with yields)
26
+ */
27
+ extractQuantitySetsAsync(): Promise<Map<number, QuantitySet>>;
28
+ /**
29
+ * Extract all IfcElementQuantity sets from entities (sync version for backward compatibility)
26
30
  */
27
31
  extractQuantitySets(): Map<number, QuantitySet>;
28
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"quantity-extractor.d.ts","sourceRoot":"","sources":["../src/quantity-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAY3F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAE,OAAe;IAKpE;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAgC/C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAuD1B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,uBAAuB,IAAI,MAAM;IAUjC;;OAEG;IACH,qBAAqB,IAAI,MAAM;CAUhC"}
1
+ {"version":3,"file":"quantity-extractor.d.ts","sourceRoot":"","sources":["../src/quantity-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAY3F,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAE,OAAe;IAKpE;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IA+BnE;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAgC/C;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB;IAuD1B;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,uBAAuB,IAAI,MAAM;IAUjC;;OAEG;IACH,qBAAqB,IAAI,MAAM;CAUhC"}
@@ -18,7 +18,35 @@ export class QuantityExtractor {
18
18
  this.debug = debug;
19
19
  }
20
20
  /**
21
- * Extract all IfcElementQuantity sets from entities
21
+ * Extract all IfcElementQuantity sets from entities (async version with yields)
22
+ */
23
+ async extractQuantitySetsAsync() {
24
+ const quantitySets = new Map();
25
+ let elementQuantityCount = 0;
26
+ let quantityValueCount = 0;
27
+ let processed = 0;
28
+ for (const [id, entity] of this.entities) {
29
+ const typeUpper = entity.type.toUpperCase();
30
+ if (typeUpper === 'IFCELEMENTQUANTITY') {
31
+ elementQuantityCount++;
32
+ const qset = this.extractQuantitySet(entity);
33
+ if (qset) {
34
+ quantitySets.set(id, qset);
35
+ quantityValueCount += qset.quantities.length;
36
+ }
37
+ }
38
+ processed++;
39
+ // Yield to event loop every 2000 entities to prevent blocking
40
+ if (processed % 2000 === 0) {
41
+ await new Promise(resolve => setTimeout(resolve, 0));
42
+ }
43
+ }
44
+ console.log(`[QuantityExtractor] Found ${elementQuantityCount} IfcElementQuantity entities`);
45
+ console.log(`[QuantityExtractor] Extracted ${quantitySets.size} quantity sets with ${quantityValueCount} total quantities`);
46
+ return quantitySets;
47
+ }
48
+ /**
49
+ * Extract all IfcElementQuantity sets from entities (sync version for backward compatibility)
22
50
  */
23
51
  extractQuantitySets() {
24
52
  const quantitySets = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"quantity-extractor.js","sourceRoot":"","sources":["../src/quantity-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quantity-extractor.js","sourceRoot":"","sources":["../src/quantity-extractor.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,11 @@ export declare class RelationshipExtractor {
6
6
  private entities;
7
7
  constructor(entities: Map<number, IfcEntity>);
8
8
  /**
9
- * Extract all relationships
9
+ * Extract all relationships (async version with yields for large files)
10
+ */
11
+ extractRelationshipsAsync(): Promise<Relationship[]>;
12
+ /**
13
+ * Extract all relationships (sync version for backward compatibility)
10
14
  */
11
15
  extractRelationships(): Relationship[];
12
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;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;IACH,oBAAoB,IAAI,YAAY,EAAE;IAwBtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;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;IAwD3B,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -7,11 +7,36 @@ export class RelationshipExtractor {
7
7
  this.entities = entities;
8
8
  }
9
9
  /**
10
- * Extract all relationships
10
+ * Extract all relationships (async version with yields for large files)
11
+ */
12
+ async extractRelationshipsAsync() {
13
+ const relationships = [];
14
+ const typeCounts = new Map();
15
+ let processed = 0;
16
+ for (const [, entity] of this.entities) {
17
+ const typeUpper = entity.type.toUpperCase();
18
+ if (typeUpper.startsWith('IFCREL')) {
19
+ typeCounts.set(typeUpper, (typeCounts.get(typeUpper) || 0) + 1);
20
+ }
21
+ const rel = this.extractRelationship(entity);
22
+ if (rel) {
23
+ relationships.push(rel);
24
+ }
25
+ processed++;
26
+ // Yield to event loop every 2000 entities to prevent blocking
27
+ if (processed % 2000 === 0) {
28
+ await new Promise(resolve => setTimeout(resolve, 0));
29
+ }
30
+ }
31
+ console.log('[RelationshipExtractor] Relationship type counts:', Object.fromEntries(typeCounts));
32
+ console.log('[RelationshipExtractor] Successfully extracted:', relationships.length);
33
+ return relationships;
34
+ }
35
+ /**
36
+ * Extract all relationships (sync version for backward compatibility)
11
37
  */
12
38
  extractRelationships() {
13
39
  const relationships = [];
14
- // Debug: count relationship types found
15
40
  const typeCounts = new Map();
16
41
  for (const [, entity] of this.entities) {
17
42
  const typeUpper = entity.type.toUpperCase();
@@ -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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"}
@@ -6,15 +6,16 @@ import type { EntityRef } from './types.js';
6
6
  export declare class SpatialHierarchyBuilder {
7
7
  /**
8
8
  * Build spatial hierarchy from entities and relationships
9
+ *
10
+ * @param lengthUnitScale - Scale factor to convert IFC length values to meters (e.g., 0.001 for millimeters)
9
11
  */
10
12
  build(entities: EntityTable, relationships: RelationshipGraph, strings: StringTable, source: Uint8Array, entityIndex: {
11
13
  byId: Map<number, EntityRef>;
12
- }): SpatialHierarchy;
14
+ }, lengthUnitScale?: number): SpatialHierarchy;
13
15
  private buildNode;
14
- private getTypeEnum;
15
16
  /**
16
17
  * Extract elevation from IfcBuildingStorey entity
17
- * Elevation is typically in attribute index 8 (after GlobalId, OwnerHistory, Name, Description, ObjectType, etc.)
18
+ * Elevation is at attribute index 9 in IFC4 (after GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType)
18
19
  */
19
20
  private extractElevation;
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-hierarchy-builder.d.ts","sourceRoot":"","sources":["../src/spatial-hierarchy-builder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AAEjH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,uBAAuB;IAClC;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE;QAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KAAE,GAC5C,gBAAgB;IA0HnB,OAAO,CAAC,SAAS;IA0FjB,OAAO,CAAC,WAAW;IAUnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CA4CzB"}
1
+ {"version":3,"file":"spatial-hierarchy-builder.d.ts","sourceRoot":"","sources":["../src/spatial-hierarchy-builder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AAEjH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,uBAAuB;IAClC;;;;OAIG;IACH,KAAK,CACH,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE;QAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KAAE,EAC7C,eAAe,GAAE,MAAY,GAC5B,gBAAgB;IAuInB,OAAO,CAAC,SAAS;IAgGjB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAiDzB"}
@@ -6,14 +6,23 @@ import { EntityExtractor } from './entity-extractor.js';
6
6
  export class SpatialHierarchyBuilder {
7
7
  /**
8
8
  * Build spatial hierarchy from entities and relationships
9
+ *
10
+ * @param lengthUnitScale - Scale factor to convert IFC length values to meters (e.g., 0.001 for millimeters)
9
11
  */
10
- build(entities, relationships, strings, source, entityIndex) {
12
+ build(entities, relationships, strings, source, entityIndex, lengthUnitScale = 1.0) {
11
13
  const byStorey = new Map();
12
14
  const byBuilding = new Map();
13
15
  const bySite = new Map();
14
16
  const bySpace = new Map();
15
17
  const storeyElevations = new Map();
18
+ const storeyHeights = new Map();
16
19
  const elementToStorey = new Map();
20
+ // PRE-BUILD INDEX MAP: O(n) once, then O(1) lookups
21
+ // This eliminates O(n²) when getTypeEnum is called for every spatial node
22
+ const entityTypeMap = new Map();
23
+ for (let i = 0; i < entities.count; i++) {
24
+ entityTypeMap.set(entities.expressId[i], entities.typeEnum[i]);
25
+ }
17
26
  // Find IfcProject (should be only one)
18
27
  const projectIds = entities.getByType(IfcTypeEnum.IfcProject);
19
28
  if (projectIds.length === 0) {
@@ -22,13 +31,14 @@ export class SpatialHierarchyBuilder {
22
31
  }
23
32
  const projectId = projectIds[0];
24
33
  // Build project node
25
- const projectNode = this.buildNode(projectId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey);
34
+ const projectNode = this.buildNode(projectId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey, entityTypeMap, lengthUnitScale);
26
35
  // Build reverse lookup map: elementId -> storeyId
27
36
  for (const [storeyId, elementIds] of byStorey) {
28
37
  for (const elementId of elementIds) {
29
38
  elementToStorey.set(elementId, storeyId);
30
39
  }
31
40
  }
41
+ // Note: storeyHeights remains empty for client path - uses on-demand property extraction
32
42
  // Validation: log warnings if maps are empty
33
43
  if (byStorey.size === 0) {
34
44
  console.warn('[SpatialHierarchyBuilder] No storeys found in spatial hierarchy');
@@ -43,6 +53,7 @@ export class SpatialHierarchyBuilder {
43
53
  bySite,
44
54
  bySpace,
45
55
  storeyElevations,
56
+ storeyHeights,
46
57
  elementToStorey,
47
58
  getStoreyElements(storeyId) {
48
59
  return byStorey.get(storeyId) ?? [];
@@ -98,14 +109,16 @@ export class SpatialHierarchyBuilder {
98
109
  };
99
110
  return hierarchy;
100
111
  }
101
- buildNode(expressId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey) {
102
- const typeEnum = this.getTypeEnum(expressId, entities);
112
+ buildNode(expressId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey, entityTypeMap, lengthUnitScale) {
113
+ const typeEnum = entityTypeMap.get(expressId) ?? IfcTypeEnum.Unknown;
103
114
  const name = entities.getName(expressId);
104
- // Extract elevation for storeys
115
+ // Extract elevation for storeys (apply unit scale to convert to meters)
105
116
  let elevation;
106
117
  if (typeEnum === IfcTypeEnum.IfcBuildingStorey) {
107
- elevation = this.extractElevation(expressId, source, entityIndex);
108
- if (elevation !== undefined) {
118
+ const rawElevation = this.extractElevation(expressId, source, entityIndex);
119
+ if (rawElevation !== undefined) {
120
+ // Apply unit scale to convert to meters
121
+ elevation = rawElevation * lengthUnitScale;
109
122
  storeyElevations.set(expressId, elevation);
110
123
  }
111
124
  }
@@ -117,12 +130,12 @@ export class SpatialHierarchyBuilder {
117
130
  // Filter to only spatial structure types
118
131
  const childNodes = [];
119
132
  for (const childId of aggregatedChildren) {
120
- const childType = this.getTypeEnum(childId, entities);
133
+ const childType = entityTypeMap.get(childId) ?? IfcTypeEnum.Unknown;
121
134
  if (childType === IfcTypeEnum.IfcSite ||
122
135
  childType === IfcTypeEnum.IfcBuilding ||
123
136
  childType === IfcTypeEnum.IfcBuildingStorey ||
124
137
  childType === IfcTypeEnum.IfcSpace) {
125
- const childNode = this.buildNode(childId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey);
138
+ const childNode = this.buildNode(childId, entities, relationships, strings, source, entityIndex, byStorey, byBuilding, bySite, bySpace, storeyElevations, elementToStorey, entityTypeMap, lengthUnitScale);
126
139
  childNodes.push(childNode);
127
140
  }
128
141
  }
@@ -148,18 +161,9 @@ export class SpatialHierarchyBuilder {
148
161
  elements: containedElements,
149
162
  };
150
163
  }
151
- getTypeEnum(expressId, entities) {
152
- // Linear search through expressId array
153
- for (let i = 0; i < entities.count; i++) {
154
- if (entities.expressId[i] === expressId) {
155
- return entities.typeEnum[i];
156
- }
157
- }
158
- return IfcTypeEnum.Unknown;
159
- }
160
164
  /**
161
165
  * Extract elevation from IfcBuildingStorey entity
162
- * Elevation is typically in attribute index 8 (after GlobalId, OwnerHistory, Name, Description, ObjectType, etc.)
166
+ * Elevation is at attribute index 9 in IFC4 (after GlobalId, OwnerHistory, Name, Description, ObjectType, ObjectPlacement, Representation, LongName, CompositionType)
163
167
  */
164
168
  extractElevation(expressId, source, entityIndex) {
165
169
  const ref = entityIndex.byId.get(expressId);
@@ -170,25 +174,33 @@ export class SpatialHierarchyBuilder {
170
174
  const entity = extractor.extractEntity(ref);
171
175
  if (!entity)
172
176
  return undefined;
173
- // IfcBuildingStorey elevation is typically at index 8
174
- // But it might vary, so try common indices
175
177
  const attrs = entity.attributes || [];
176
- // Try index 8 first (most common)
177
- if (attrs.length > 8 && typeof attrs[8] === 'number') {
178
- return attrs[8];
179
- }
180
- // Try index 7
181
- if (attrs.length > 7 && typeof attrs[7] === 'number') {
182
- return attrs[7];
178
+ // Helper to extract number from raw value or typed value like ['IFCLENGTHMEASURE', 3.0]
179
+ const extractNumber = (val) => {
180
+ if (typeof val === 'number')
181
+ return val;
182
+ if (Array.isArray(val) && val.length === 2 && typeof val[1] === 'number') {
183
+ return val[1]; // Typed value: ['IFCLENGTHMEASURE', 3.0]
184
+ }
185
+ return undefined;
186
+ };
187
+ // Try index 9 first (correct index for IfcBuildingStorey.Elevation in IFC4)
188
+ if (attrs.length > 9) {
189
+ const elev = extractNumber(attrs[9]);
190
+ if (elev !== undefined)
191
+ return elev;
183
192
  }
184
- // Try index 6
185
- if (attrs.length > 6 && typeof attrs[6] === 'number') {
186
- return attrs[6];
193
+ // Try index 8 (in case of schema variations)
194
+ if (attrs.length > 8) {
195
+ const elev = extractNumber(attrs[8]);
196
+ if (elev !== undefined)
197
+ return elev;
187
198
  }
188
- // Search for first numeric value that looks like an elevation
199
+ // Fallback: search for first numeric value that looks like an elevation
189
200
  for (let i = 0; i < attrs.length; i++) {
190
- if (typeof attrs[i] === 'number' && Math.abs(attrs[i]) < 10000) {
191
- return attrs[i];
201
+ const elev = extractNumber(attrs[i]);
202
+ if (elev !== undefined && Math.abs(elev) < 10000) {
203
+ return elev;
192
204
  }
193
205
  }
194
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spatial-hierarchy-builder.js","sourceRoot":"","sources":["../src/spatial-hierarchy-builder.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAO/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,OAAO,uBAAuB;IAClC;;OAEG;IACH,KAAK,CACH,QAAqB,EACrB,aAAgC,EAChC,OAAoB,EACpB,MAAkB,EAClB,WAA6C;QAE7C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAElD,uCAAuC;QACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAEhC,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC,SAAS,EACT,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,eAAe,CAChB,CAAC;QAEF,kDAAkD;QAClD,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,SAAS,GAAqB;YAClC,OAAO,EAAE,WAAW;YACpB,QAAQ;YACR,UAAU;YACV,MAAM;YACN,OAAO;YACP,gBAAgB;YAChB,eAAe;YAEf,iBAAiB,CAAC,QAAgB;gBAChC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,CAAC;YAED,oBAAoB,CAAC,CAAS;gBAC5B,IAAI,aAAa,GAAkB,IAAI,CAAC;gBACxC,IAAI,eAAe,GAAG,QAAQ,CAAC;gBAE/B,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;oBACzC,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;wBAC/B,eAAe,GAAG,QAAQ,CAAC;wBAC3B,aAAa,GAAG,QAAQ,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBAED,sDAAsD;gBACtD,OAAO,eAAe,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;YAED,kBAAkB,CAAC,SAAiB;gBAClC,oDAAoD;gBACpD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC;oBAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACnC,OAAO,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,CAAC,SAAiB;gBACvB,MAAM,IAAI,GAAkB,EAAE,CAAC;gBAE/B,0CAA0C;gBAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAChD,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAE3B,qCAAqC;gBACrC,MAAM,QAAQ,GAAG,CAAC,IAAiB,EAAE,QAAgB,EAAW,EAAE;oBAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEhB,yCAAyC;oBACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,8BAA8B;oBAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClC,IAAI,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;4BAC9B,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;oBAED,YAAY;oBACZ,IAAI,CAAC,GAAG,EAAE,CAAC;oBACX,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC;gBAEF,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,SAAS,CACf,SAAiB,EACjB,QAAqB,EACrB,aAAgC,EAChC,OAAoB,EACpB,MAAkB,EAClB,WAA6C,EAC7C,QAA+B,EAC/B,UAAiC,EACjC,MAA6B,EAC7B,OAA8B,EAC9B,gBAAqC,EACrC,eAAoC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzC,gCAAgC;QAChC,IAAI,SAA6B,CAAC;QAClC,IAAI,QAAQ,KAAK,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAClE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,CAChD,SAAS,EACT,gBAAgB,CAAC,gBAAgB,EACjC,SAAS,CACV,CAAC;QAEF,mFAAmF;QACnF,gEAAgE;QAChE,MAAM,kBAAkB,GAAG,aAAa,CAAC,UAAU,CACjD,SAAS,EACT,gBAAgB,CAAC,UAAU,EAC3B,SAAS,CACV,CAAC;QAEF,yCAAyC;QACzC,MAAM,UAAU,GAAkB,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACtD,IACE,SAAS,KAAK,WAAW,CAAC,OAAO;gBACjC,SAAS,KAAK,WAAW,CAAC,WAAW;gBACrC,SAAS,KAAK,WAAW,CAAC,iBAAiB;gBAC3C,SAAS,KAAK,WAAW,CAAC,QAAQ,EAClC,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,eAAe,CAChB,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,QAAQ,KAAK,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAC/C,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;YAChD,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO;YACL,SAAS;YACT,IAAI,EAAE,QAAQ;YACd,IAAI;YACJ,SAAS;YACT,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,SAAiB,EAAE,QAAqB;QAC1D,wCAAwC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACtB,SAAiB,EACjB,MAAkB,EAClB,WAA6C;QAE7C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAE9B,sDAAsD;YACtD,2CAA2C;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YAEtC,kCAAkC;YAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,cAAc;YACd,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,cAAc;YACd,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACrD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,8DAA8D;YAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;oBAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wCAAwC;QAC1C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"spatial-hierarchy-builder.js","sourceRoot":"","sources":["../src/spatial-hierarchy-builder.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,7 @@ export declare class StyleExtractor {
77
77
  private getAttributeValue;
78
78
  /**
79
79
  * Get numeric value from entity attribute
80
+ * Also handles TypedValue wrappers like [typeName, numericValue]
80
81
  */
81
82
  private getNumericValue;
82
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"style-extractor.d.ts","sourceRoot":"","sources":["../src/style-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,WAAW;IAExB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAG5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtG,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW;IAMvE;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAyBzC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAsB1C;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAgCvC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwCpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqBlC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAW1B"}
1
+ {"version":3,"file":"style-extractor.d.ts","sourceRoot":"","sources":["../src/style-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,WAAW;IAExB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAG5C,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtG,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW;IAMvE;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAyBzC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAsB1C;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAgCvC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwCpC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAqBlC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyD3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,eAAe;CA4B1B"}
@@ -311,6 +311,7 @@ export class StyleExtractor {
311
311
  }
312
312
  /**
313
313
  * Get numeric value from entity attribute
314
+ * Also handles TypedValue wrappers like [typeName, numericValue]
314
315
  */
315
316
  getNumericValue(entity, index) {
316
317
  const value = this.getAttributeValue(entity, index);
@@ -321,6 +322,23 @@ export class StyleExtractor {
321
322
  const parsed = parseFloat(value);
322
323
  return isNaN(parsed) ? null : parsed;
323
324
  }
325
+ // Handle TypedValue wrappers: [typeName, numericValue]
326
+ // e.g., ["IFCNORMALISEDRATIOMEASURE", 0.5]
327
+ if (Array.isArray(value) && value.length >= 2) {
328
+ if (typeof value[0] === 'string' && typeof value[1] === 'number') {
329
+ return value[1];
330
+ }
331
+ // Nested case: recursively try to extract numeric from second element
332
+ if (typeof value[0] === 'string') {
333
+ if (typeof value[1] === 'number') {
334
+ return value[1];
335
+ }
336
+ if (typeof value[1] === 'string') {
337
+ const parsed = parseFloat(value[1]);
338
+ return isNaN(parsed) ? null : parsed;
339
+ }
340
+ }
341
+ }
324
342
  return null;
325
343
  }
326
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"style-extractor.js","sourceRoot":"","sources":["../src/style-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"style-extractor.js","sourceRoot":"","sources":["../src/style-extractor.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,17 @@ export declare class StepTokenizer {
18
18
  length: number;
19
19
  line: number;
20
20
  }>;
21
+ /**
22
+ * FAST scan - skips to semicolon instead of matching parentheses
23
+ * ~5-10x faster for large files, yields length=0 (calculate on-demand)
24
+ */
25
+ scanEntitiesFast(): Generator<{
26
+ expressId: number;
27
+ type: string;
28
+ offset: number;
29
+ length: number;
30
+ line: number;
31
+ }>;
21
32
  private readExpressId;
22
33
  private readTypeName;
23
34
  private skipWhitespace;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,UAAU;IAI9B;;;OAGG;IACF,YAAY,IAAI,SAAS,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAmE7G,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,gBAAgB;CA8CzB"}
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../src/tokenizer.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,UAAU;IAI9B;;;OAGG;IACF,YAAY,IAAI,SAAS,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAmE7G;;;OAGG;IACF,gBAAgB,IAAI,SAAS,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA4HjH,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,gBAAgB;CA6CzB"}