@ifc-lite/parser 2.4.2 → 3.1.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.
- package/README.md +5 -3
- package/dist/columnar-parser-indexes.d.ts +1 -7
- package/dist/columnar-parser-indexes.d.ts.map +1 -1
- package/dist/columnar-parser-indexes.js.map +1 -1
- package/dist/columnar-parser.d.ts +39 -12
- package/dist/columnar-parser.d.ts.map +1 -1
- package/dist/columnar-parser.js +113 -26
- package/dist/columnar-parser.js.map +1 -1
- package/dist/data-store-accessors.d.ts +24 -0
- package/dist/data-store-accessors.d.ts.map +1 -0
- package/dist/data-store-accessors.js +43 -0
- package/dist/data-store-accessors.js.map +1 -0
- package/dist/data-store-transport.d.ts +1 -0
- package/dist/data-store-transport.d.ts.map +1 -1
- package/dist/data-store-transport.js +16 -9
- package/dist/data-store-transport.js.map +1 -1
- package/dist/entity-extractor.d.ts.map +1 -1
- package/dist/entity-extractor.js +20 -1
- package/dist/entity-extractor.js.map +1 -1
- package/dist/entity-index.d.ts +3 -0
- package/dist/entity-index.d.ts.map +1 -1
- package/dist/entity-index.js.map +1 -1
- package/dist/entity-scanner.d.ts +30 -0
- package/dist/entity-scanner.d.ts.map +1 -0
- package/dist/entity-scanner.js +132 -0
- package/dist/entity-scanner.js.map +1 -0
- package/dist/entity-source.d.ts +17 -0
- package/dist/entity-source.d.ts.map +1 -0
- package/dist/entity-source.js +29 -0
- package/dist/entity-source.js.map +1 -0
- package/dist/ifc-schema.d.ts +10 -2
- package/dist/ifc-schema.d.ts.map +1 -1
- package/dist/ifc-schema.js +65 -2
- package/dist/ifc-schema.js.map +1 -1
- package/dist/index.d.ts +15 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -289
- package/dist/index.js.map +1 -1
- package/dist/material-resolver.d.ts +54 -0
- package/dist/material-resolver.d.ts.map +1 -1
- package/dist/material-resolver.js +265 -0
- package/dist/material-resolver.js.map +1 -1
- package/dist/on-demand-extractors.d.ts +34 -0
- package/dist/on-demand-extractors.d.ts.map +1 -1
- package/dist/on-demand-extractors.js +153 -0
- package/dist/on-demand-extractors.js.map +1 -1
- package/dist/parser.worker.d.ts.map +1 -1
- package/dist/parser.worker.js.map +1 -1
- package/dist/property-extractor.d.ts +3 -0
- package/dist/property-extractor.d.ts.map +1 -1
- package/dist/property-extractor.js.map +1 -1
- package/dist/quantity-extractor.d.ts +3 -0
- package/dist/quantity-extractor.d.ts.map +1 -1
- package/dist/quantity-extractor.js.map +1 -1
- package/dist/relationship-extractor.d.ts +3 -0
- package/dist/relationship-extractor.d.ts.map +1 -1
- package/dist/relationship-extractor.js.map +1 -1
- package/dist/spatial-hierarchy-builder.d.ts.map +1 -1
- package/dist/spatial-hierarchy-builder.js +26 -4
- package/dist/spatial-hierarchy-builder.js.map +1 -1
- package/dist/tokenizer.d.ts.map +1 -1
- package/dist/tokenizer.js +21 -4
- package/dist/tokenizer.js.map +1 -1
- package/dist/types.d.ts +2 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/opfs-source-buffer.d.ts +0 -70
- package/dist/opfs-source-buffer.d.ts.map +0 -1
- package/dist/opfs-source-buffer.js +0 -166
- package/dist/opfs-source-buffer.js.map +0 -1
- package/dist/style-extractor.d.ts +0 -84
- package/dist/style-extractor.d.ts.map +0 -1
- package/dist/style-extractor.js +0 -345
- package/dist/style-extractor.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -6,14 +6,17 @@ export { StepTokenizer } from './tokenizer.js';
|
|
|
6
6
|
export { EntityIndexBuilder } from './entity-index.js';
|
|
7
7
|
export { EntityExtractor } from './entity-extractor.js';
|
|
8
8
|
export { CompactEntityIndex, CompactEntityIndexBuilder, buildCompactEntityIndex } from './compact-entity-index.js';
|
|
9
|
-
export {
|
|
9
|
+
export { scanIfcEntities } from './entity-scanner.js';
|
|
10
|
+
export type { EntityScanPath, EntityScanResult, PreScannedEntityIndex, WasmScanApi } from './entity-scanner.js';
|
|
11
|
+
export { REL_TYPE_MAP, RELATIONSHIP_TYPES } from './columnar-parser-indexes.js';
|
|
10
12
|
export { PropertyExtractor } from './property-extractor.js';
|
|
11
13
|
export { QuantityExtractor } from './quantity-extractor.js';
|
|
12
14
|
export { RelationshipExtractor } from './relationship-extractor.js';
|
|
13
|
-
export { StyleExtractor } from './style-extractor.js';
|
|
14
15
|
export { SpatialHierarchyBuilder } from './spatial-hierarchy-builder.js';
|
|
15
16
|
export { extractLengthUnitScale } from './unit-extractor.js';
|
|
16
|
-
export { ColumnarParser, type IfcDataStore, type EntityByIdIndex, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractEntityAttributesOnDemand, extractAllEntityAttributes, extractClassificationsOnDemand, extractMaterialsOnDemand, extractTypePropertiesOnDemand, extractTypeEntityOwnProperties, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractGeoreferencingOnDemand, type ClassificationInfo, type MaterialInfo, type MaterialLayerInfo, type MaterialProfileInfo, type MaterialConstituentInfo, type TypePropertyInfo, type DocumentInfo, type EntityRelationships } from './columnar-parser.js';
|
|
17
|
+
export { ColumnarParser, type IfcDataStore, type EntityByIdIndex, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractEntityAttributesOnDemand, extractAllEntityAttributes, getRawNamedAttributes, extractRootAttributesFromEntity, extractClassificationsOnDemand, extractMaterialsOnDemand, extractMaterialPropertiesOnDemand, extractMaterialPropertiesForMaterialId, resolveMaterialDefId, collectMaterialLeaves, buildMaterialUsageIndex, getMaterialDisplay, extractTypePropertiesOnDemand, extractTypeEntityOwnProperties, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractGeoreferencingOnDemand, type ClassificationInfo, type MaterialInfo, type MaterialLayerInfo, type MaterialProfileInfo, type MaterialConstituentInfo, type MaterialPsetGroup, type MaterialLeaf, type MaterialUsage, type TypePropertyInfo, type DocumentInfo, type EntityRelationships } from './columnar-parser.js';
|
|
18
|
+
export type { IfcStoreBase } from '@ifc-lite/data';
|
|
19
|
+
export { attachDataStoreAccessors, type IfcStoreData } from './data-store-accessors.js';
|
|
17
20
|
export { parseIfcx, parseFederatedIfcx, addIfcxOverlay, detectFormat, composeIfcx, composeFederated, createLayerStack, createPathIndex, parsePath, type IfcxParseResult, type FederatedIfcxParseResult, type FederatedFileInput, type FederatedParseOptions, type IfcxFile, type IfcxNode, type ComposedNode, type ComposedNodeWithSources, type IfcxLayer, type LayerStack, type PathIndex, type MeshData as IfcxMeshData, type PointCloudExtraction, } from '@ifc-lite/ifcx';
|
|
18
21
|
export { extractMaterials, getMaterialForElement, getMaterialNameForElement, type MaterialsData, type Material, type MaterialLayer, type MaterialLayerSet } from './material-extractor.js';
|
|
19
22
|
export { extractGeoreferencing, transformToWorld, transformToLocal, getCoordinateSystemDescription, computeAngleToGridNorth, type GeoreferenceInfo, type MapConversion, type ProjectedCRS } from './georef-extractor.js';
|
|
@@ -26,17 +29,17 @@ export type * from './generated/entities.js';
|
|
|
26
29
|
export * from './generated/enums.js';
|
|
27
30
|
export { serializeValue, toStepLine, generateHeader, generateStepFile, parseStepValue, ref, enumVal, isEntityRef, isEnumValue, type StepValue, type StepEntity, type EntityRef as StepEntityRef, type EnumValue, } from './generated/serializers.js';
|
|
28
31
|
export * from './types.js';
|
|
29
|
-
export * from './style-extractor.js';
|
|
30
32
|
export { getAttributeNames, getAttributeNameAt, isKnownType, normalizeIfcTypeName } from './ifc-schema.js';
|
|
31
|
-
import type { ParseResult
|
|
33
|
+
import type { ParseResult } from './types.js';
|
|
32
34
|
import { type IfcDataStore } from './columnar-parser.js';
|
|
35
|
+
import { type PreScannedEntityIndex, type WasmScanApi } from './entity-scanner.js';
|
|
33
36
|
export interface ParseOptions {
|
|
34
37
|
onProgress?: (progress: {
|
|
35
38
|
phase: string;
|
|
36
39
|
percent: number;
|
|
37
40
|
}) => void;
|
|
38
41
|
onDiagnostic?: (message: string) => void;
|
|
39
|
-
wasmApi?:
|
|
42
|
+
wasmApi?: WasmScanApi;
|
|
40
43
|
/** Yield budget for large incremental parses. Higher values finish faster with longer main-thread slices. */
|
|
41
44
|
yieldIntervalMs?: number;
|
|
42
45
|
/** Keep property-set containers in the primary index but defer indexing individual property/quantity atoms. */
|
|
@@ -45,7 +48,7 @@ export interface ParseOptions {
|
|
|
45
48
|
disableWorkerScan?: boolean;
|
|
46
49
|
/** Called when spatial hierarchy is ready, BEFORE property/association parsing completes.
|
|
47
50
|
* Use this to show the hierarchy panel early while the full parse finishes. */
|
|
48
|
-
onSpatialReady?: (partialStore:
|
|
51
|
+
onSpatialReady?: (partialStore: IfcDataStore) => void;
|
|
49
52
|
/**
|
|
50
53
|
* Pre-built entity index from another worker (typically the streaming
|
|
51
54
|
* geometry pre-pass). When supplied, `parseColumnar` skips both the
|
|
@@ -54,18 +57,17 @@ export interface ParseOptions {
|
|
|
54
57
|
* where the parser would otherwise duplicate the pre-pass scan under
|
|
55
58
|
* heavy WASM contention with the geometry workers.
|
|
56
59
|
*/
|
|
57
|
-
preScannedEntityIndex?:
|
|
58
|
-
ids: Uint32Array;
|
|
59
|
-
starts: Uint32Array;
|
|
60
|
-
lengths: Uint32Array;
|
|
61
|
-
};
|
|
60
|
+
preScannedEntityIndex?: PreScannedEntityIndex;
|
|
62
61
|
}
|
|
63
62
|
/**
|
|
64
63
|
* Main parser class
|
|
65
64
|
*/
|
|
66
65
|
export declare class IfcParser {
|
|
67
66
|
/**
|
|
68
|
-
* Parse IFC file into
|
|
67
|
+
* Parse IFC file into the legacy eager ParseResult shape.
|
|
68
|
+
*
|
|
69
|
+
* @deprecated Prefer parseColumnar() for new code. This method is kept as a
|
|
70
|
+
* compatibility adapter and reuses the shared scanner before eager extraction.
|
|
69
71
|
*/
|
|
70
72
|
parse(buffer: ArrayBuffer, options?: ParseOptions): Promise<ParseResult>;
|
|
71
73
|
/**
|
|
@@ -80,15 +82,6 @@ export declare class IfcParser {
|
|
|
80
82
|
*/
|
|
81
83
|
parseColumnar(buffer: ArrayBuffer | SharedArrayBuffer, options?: ParseOptions): Promise<IfcDataStore>;
|
|
82
84
|
}
|
|
83
|
-
/**
|
|
84
|
-
* On-demand entity parser for lite mode
|
|
85
|
-
* Parse a single entity's attributes from the source buffer
|
|
86
|
-
*/
|
|
87
|
-
export declare function parseEntityOnDemand(source: Uint8Array, entityRef: EntityRef): {
|
|
88
|
-
expressId: number;
|
|
89
|
-
type: string;
|
|
90
|
-
attributes: any[];
|
|
91
|
-
} | null;
|
|
92
85
|
import { type IfcxParseResult, type MeshData as IfcxMeshData } from '@ifc-lite/ifcx';
|
|
93
86
|
/**
|
|
94
87
|
* Result type for auto-parsing (union of IFC4 and IFC5 results)
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,14 +9,15 @@ export { StepTokenizer } from './tokenizer.js';
|
|
|
9
9
|
export { EntityIndexBuilder } from './entity-index.js';
|
|
10
10
|
export { EntityExtractor } from './entity-extractor.js';
|
|
11
11
|
export { CompactEntityIndex, CompactEntityIndexBuilder, buildCompactEntityIndex } from './compact-entity-index.js';
|
|
12
|
-
export {
|
|
12
|
+
export { scanIfcEntities } from './entity-scanner.js';
|
|
13
|
+
export { REL_TYPE_MAP, RELATIONSHIP_TYPES } from './columnar-parser-indexes.js';
|
|
13
14
|
export { PropertyExtractor } from './property-extractor.js';
|
|
14
15
|
export { QuantityExtractor } from './quantity-extractor.js';
|
|
15
16
|
export { RelationshipExtractor } from './relationship-extractor.js';
|
|
16
|
-
export { StyleExtractor } from './style-extractor.js';
|
|
17
17
|
export { SpatialHierarchyBuilder } from './spatial-hierarchy-builder.js';
|
|
18
18
|
export { extractLengthUnitScale } from './unit-extractor.js';
|
|
19
|
-
export { ColumnarParser, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractEntityAttributesOnDemand, extractAllEntityAttributes, extractClassificationsOnDemand, extractMaterialsOnDemand, extractTypePropertiesOnDemand, extractTypeEntityOwnProperties, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractGeoreferencingOnDemand } from './columnar-parser.js';
|
|
19
|
+
export { ColumnarParser, extractPropertiesOnDemand, extractQuantitiesOnDemand, extractEntityAttributesOnDemand, extractAllEntityAttributes, getRawNamedAttributes, extractRootAttributesFromEntity, extractClassificationsOnDemand, extractMaterialsOnDemand, extractMaterialPropertiesOnDemand, extractMaterialPropertiesForMaterialId, resolveMaterialDefId, collectMaterialLeaves, buildMaterialUsageIndex, getMaterialDisplay, extractTypePropertiesOnDemand, extractTypeEntityOwnProperties, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractGeoreferencingOnDemand } from './columnar-parser.js';
|
|
20
|
+
export { attachDataStoreAccessors } from './data-store-accessors.js';
|
|
20
21
|
// WorkerParser is browser-only due to Vite worker imports
|
|
21
22
|
// Import from '@ifc-lite/parser/browser' instead
|
|
22
23
|
// IFC5 (IFCX) support - re-export from @ifc-lite/ifcx
|
|
@@ -42,50 +43,35 @@ export * from './generated/enums.js';
|
|
|
42
43
|
// STEP serialization support for IFC export
|
|
43
44
|
export { serializeValue, toStepLine, generateHeader, generateStepFile, parseStepValue, ref, enumVal, isEntityRef, isEnumValue, } from './generated/serializers.js';
|
|
44
45
|
export * from './types.js';
|
|
45
|
-
export * from './style-extractor.js';
|
|
46
46
|
export { getAttributeNames, getAttributeNameAt, isKnownType, normalizeIfcTypeName } from './ifc-schema.js';
|
|
47
|
-
import { decodeIfcString } from '@ifc-lite/encoding';
|
|
48
|
-
import { StepTokenizer } from './tokenizer.js';
|
|
49
47
|
import { EntityIndexBuilder } from './entity-index.js';
|
|
50
48
|
import { EntityExtractor } from './entity-extractor.js';
|
|
51
49
|
import { PropertyExtractor } from './property-extractor.js';
|
|
52
50
|
import { RelationshipExtractor } from './relationship-extractor.js';
|
|
53
51
|
import { ColumnarParser } from './columnar-parser.js';
|
|
54
|
-
import {
|
|
55
|
-
import { buildEntityRefsFromIndex } from './entity-refs-from-index.js';
|
|
56
|
-
import { safeUtf8Decode } from '@ifc-lite/data';
|
|
52
|
+
import { scanIfcEntities } from './entity-scanner.js';
|
|
57
53
|
/**
|
|
58
54
|
* Main parser class
|
|
59
55
|
*/
|
|
60
56
|
export class IfcParser {
|
|
61
57
|
/**
|
|
62
|
-
* Parse IFC file into
|
|
58
|
+
* Parse IFC file into the legacy eager ParseResult shape.
|
|
59
|
+
*
|
|
60
|
+
* @deprecated Prefer parseColumnar() for new code. This method is kept as a
|
|
61
|
+
* compatibility adapter and reuses the shared scanner before eager extraction.
|
|
63
62
|
*/
|
|
64
63
|
async parse(buffer, options = {}) {
|
|
65
64
|
const uint8Buffer = new Uint8Array(buffer);
|
|
66
65
|
// Phase 1: Scan for entities
|
|
67
66
|
options.onProgress?.({ phase: 'scan', percent: 0 });
|
|
68
|
-
const
|
|
67
|
+
const { entityRefs } = await scanIfcEntities(buffer, {
|
|
68
|
+
...options,
|
|
69
|
+
onProgress: undefined,
|
|
70
|
+
onDiagnostic: undefined,
|
|
71
|
+
});
|
|
69
72
|
const indexBuilder = new EntityIndexBuilder();
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
for (const ref of tokenizer.scanEntities()) {
|
|
73
|
-
indexBuilder.addEntity({
|
|
74
|
-
expressId: ref.expressId,
|
|
75
|
-
type: ref.type,
|
|
76
|
-
byteOffset: ref.offset,
|
|
77
|
-
byteLength: ref.length,
|
|
78
|
-
lineNumber: ref.line,
|
|
79
|
-
});
|
|
80
|
-
entityRefs.push({
|
|
81
|
-
expressId: ref.expressId,
|
|
82
|
-
type: ref.type,
|
|
83
|
-
byteOffset: ref.offset,
|
|
84
|
-
byteLength: ref.length,
|
|
85
|
-
lineNumber: ref.line,
|
|
86
|
-
});
|
|
87
|
-
scanned++;
|
|
88
|
-
}
|
|
73
|
+
for (const ref of entityRefs)
|
|
74
|
+
indexBuilder.addEntity(ref);
|
|
89
75
|
const entityIndex = indexBuilder.build();
|
|
90
76
|
options.onProgress?.({ phase: 'scan', percent: 100 });
|
|
91
77
|
// Phase 2: Extract entities
|
|
@@ -133,271 +119,14 @@ export class IfcParser {
|
|
|
133
119
|
* in-process path passes a regular ArrayBuffer.
|
|
134
120
|
*/
|
|
135
121
|
async parseColumnar(buffer, options = {}) {
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
// Fast scan: prefer Web Worker (non-blocking), fall back to main-thread scanners
|
|
139
|
-
options.onProgress?.({ phase: 'scanning', percent: 0 });
|
|
140
|
-
const scanStartTime = performance.now();
|
|
141
|
-
let entityRefs = [];
|
|
142
|
-
let processed = 0;
|
|
143
|
-
let scanPath = 'tokenizer';
|
|
144
|
-
// Pre-scanned path: caller already has the entity index (from the
|
|
145
|
-
// streaming geometry pre-pass). Synthesize EntityRef[] from the
|
|
146
|
-
// column arrays without touching the file again.
|
|
147
|
-
if (options.preScannedEntityIndex) {
|
|
148
|
-
const { ids, starts, lengths } = options.preScannedEntityIndex;
|
|
149
|
-
entityRefs = buildEntityRefsFromIndex(uint8Buffer, ids, starts, lengths);
|
|
150
|
-
processed = entityRefs.length;
|
|
151
|
-
scanPath = 'pre-scanned';
|
|
152
|
-
}
|
|
153
|
-
// Try Web Worker scanner first (keeps main thread free for UI + geometry)
|
|
154
|
-
if (entityRefs.length === 0 && !options.disableWorkerScan && typeof Worker !== 'undefined') {
|
|
155
|
-
try {
|
|
156
|
-
entityRefs = await scanEntitiesInWorker(buffer);
|
|
157
|
-
processed = entityRefs.length;
|
|
158
|
-
scanPath = 'worker';
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
console.warn('[IfcParser] Worker scan failed, falling back to main thread:', error);
|
|
162
|
-
entityRefs.length = 0;
|
|
163
|
-
processed = 0;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// WASM scanner (blocks the parser thread but ~5-10× faster than the
|
|
167
|
-
// JS tokeniser per the @ifc-lite/wasm docs). The guard accepts any of
|
|
168
|
-
// the three scan methods — earlier versions required `scanEntitiesFast`
|
|
169
|
-
// (the legacy string-based API), which silently disabled this branch
|
|
170
|
-
// for callers that only exposed the modern bytes APIs (e.g. the parser
|
|
171
|
-
// worker, which deliberately hides `scanRelevantEntitiesFastBytes`
|
|
172
|
-
// because that scanner filters out IFCSIUNIT/IFCMATERIAL refs the
|
|
173
|
-
// lite parser still needs).
|
|
174
|
-
const wasmScanFn = options.wasmApi
|
|
175
|
-
? (typeof options.wasmApi.scanEntitiesFastBytes === 'function'
|
|
176
|
-
? () => options.wasmApi.scanEntitiesFastBytes(uint8Buffer)
|
|
177
|
-
: typeof options.wasmApi.scanRelevantEntitiesFastBytes === 'function'
|
|
178
|
-
? () => options.wasmApi.scanRelevantEntitiesFastBytes(uint8Buffer)
|
|
179
|
-
: typeof options.wasmApi.scanEntitiesFast === 'function'
|
|
180
|
-
? (() => {
|
|
181
|
-
// Last-resort scan path: decode the whole source. SAB-safe
|
|
182
|
-
// via the helper (one scratch copy on Firefox/Chrome with
|
|
183
|
-
// SAB-decode disabled, zero copy elsewhere). This branch is
|
|
184
|
-
// only hit when neither byte-level WASM scan API is wired.
|
|
185
|
-
//
|
|
186
|
-
// Guard on size: `safeUtf8Decode` materialises a JS string
|
|
187
|
-
// ~2× the source byte length (UTF-16 internal). For files
|
|
188
|
-
// > 256 MB we'd allocate ~512 MB+ just to feed a legacy
|
|
189
|
-
// scanner — refuse the path and fall through to the JS
|
|
190
|
-
// tokeniser (which streams the bytes directly). The threshold
|
|
191
|
-
// matches the "huge file" cutoff used elsewhere in the loader.
|
|
192
|
-
const HUGE_BYTES = 256 * 1024 * 1024;
|
|
193
|
-
if (uint8Buffer.byteLength > HUGE_BYTES) {
|
|
194
|
-
console.warn('[parser] scanEntitiesFast (string API) skipped: source is %d MB, exceeds %d MB safeUtf8Decode budget — falling back to JS tokeniser.', Math.round(uint8Buffer.byteLength / (1024 * 1024)), HUGE_BYTES / (1024 * 1024));
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
return () => {
|
|
198
|
-
const content = safeUtf8Decode(uint8Buffer);
|
|
199
|
-
return options.wasmApi.scanEntitiesFast(content);
|
|
200
|
-
};
|
|
201
|
-
})()
|
|
202
|
-
: null)
|
|
203
|
-
: null;
|
|
204
|
-
if (entityRefs.length === 0 && wasmScanFn) {
|
|
205
|
-
try {
|
|
206
|
-
const scanFn = wasmScanFn;
|
|
207
|
-
const wasmRefs = scanFn();
|
|
208
|
-
if (wasmRefs.length > 0 && typeof wasmRefs[0]?.expressId === 'number') {
|
|
209
|
-
entityRefs = wasmRefs;
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
entityRefs = wasmRefs.map((ref) => ({
|
|
213
|
-
expressId: ref.expressId ?? ref.express_id ?? 0,
|
|
214
|
-
type: ref.type ?? ref.entity_type ?? '',
|
|
215
|
-
byteOffset: ref.byteOffset ?? ref.byte_offset ?? 0,
|
|
216
|
-
byteLength: ref.byteLength ?? ref.byte_length ?? 0,
|
|
217
|
-
lineNumber: ref.lineNumber ?? ref.line_number ?? 0,
|
|
218
|
-
}));
|
|
219
|
-
}
|
|
220
|
-
processed = entityRefs.length;
|
|
221
|
-
scanPath = 'wasm';
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
console.warn('[IfcParser] WASM scan failed, falling back to TypeScript:', error);
|
|
225
|
-
entityRefs.length = 0;
|
|
226
|
-
processed = 0;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
// Last resort: TypeScript scanner (yields to avoid blocking)
|
|
230
|
-
if (entityRefs.length === 0) {
|
|
231
|
-
const tokenizer = new StepTokenizer(uint8Buffer);
|
|
232
|
-
const YIELD_INTERVAL = 5000;
|
|
233
|
-
const estimatedTotalEntities = Math.max(fileSizeMB * 13500, 10000);
|
|
234
|
-
for (const ref of tokenizer.scanEntitiesFast()) {
|
|
235
|
-
entityRefs.push({
|
|
236
|
-
expressId: ref.expressId,
|
|
237
|
-
type: ref.type,
|
|
238
|
-
byteOffset: ref.offset,
|
|
239
|
-
byteLength: ref.length,
|
|
240
|
-
lineNumber: ref.line,
|
|
241
|
-
});
|
|
242
|
-
processed++;
|
|
243
|
-
if (processed % YIELD_INTERVAL === 0) {
|
|
244
|
-
const scanPercent = Math.min(95, (processed / estimatedTotalEntities) * 95);
|
|
245
|
-
options.onProgress?.({ phase: 'scanning', percent: scanPercent });
|
|
246
|
-
await new Promise(resolve => setTimeout(resolve, 0));
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
const scanElapsedMs = performance.now() - scanStartTime;
|
|
251
|
-
console.log(`[IfcParser] Fast scan: ${processed} entities in ${scanElapsedMs.toFixed(0)}ms (path=${scanPath})`);
|
|
252
|
-
options.onDiagnostic?.(`scan complete: entities=${processed} elapsed=${scanElapsedMs.toFixed(0)}ms`);
|
|
253
|
-
options.onProgress?.({ phase: 'scanning', percent: 100 });
|
|
122
|
+
const { entityRefs, processed, elapsedMs, scanPath } = await scanIfcEntities(buffer, options);
|
|
123
|
+
console.log(`[IfcParser] Fast scan: ${processed} entities in ${elapsedMs.toFixed(0)}ms (path=${scanPath})`);
|
|
254
124
|
// Build columnar structures with on-demand property extraction
|
|
255
125
|
const columnarParser = new ColumnarParser();
|
|
256
126
|
const dataStore = await columnarParser.parseLite(buffer, entityRefs, options);
|
|
257
127
|
return dataStore;
|
|
258
128
|
}
|
|
259
129
|
}
|
|
260
|
-
/**
|
|
261
|
-
* On-demand entity parser for lite mode
|
|
262
|
-
* Parse a single entity's attributes from the source buffer
|
|
263
|
-
*/
|
|
264
|
-
export function parseEntityOnDemand(source, entityRef) {
|
|
265
|
-
try {
|
|
266
|
-
const entityText = safeUtf8Decode(source, entityRef.byteOffset, entityRef.byteOffset + entityRef.byteLength);
|
|
267
|
-
// Parse: #ID = TYPE(attr1, attr2, ...)
|
|
268
|
-
const match = entityText.match(/^#(\d+)\s*=\s*(\w+)\((.*)\)/);
|
|
269
|
-
if (!match)
|
|
270
|
-
return null;
|
|
271
|
-
const expressId = parseInt(match[1], 10);
|
|
272
|
-
const type = match[2];
|
|
273
|
-
const paramsText = match[3];
|
|
274
|
-
// Parse attributes
|
|
275
|
-
const attributes = parseAttributeList(paramsText);
|
|
276
|
-
return { expressId, type, attributes };
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
console.warn(`Failed to parse entity #${entityRef.expressId}:`, error);
|
|
280
|
-
return null;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Parse attribute list from STEP format
|
|
285
|
-
*/
|
|
286
|
-
function parseAttributeList(paramsText) {
|
|
287
|
-
if (!paramsText.trim())
|
|
288
|
-
return [];
|
|
289
|
-
const attributes = [];
|
|
290
|
-
let depth = 0;
|
|
291
|
-
let current = '';
|
|
292
|
-
let inString = false;
|
|
293
|
-
for (let i = 0; i < paramsText.length; i++) {
|
|
294
|
-
const char = paramsText[i];
|
|
295
|
-
if (char === "'") {
|
|
296
|
-
if (inString) {
|
|
297
|
-
// Check for escaped quote ('') - STEP uses doubled quotes
|
|
298
|
-
if (i + 1 < paramsText.length && paramsText[i + 1] === "'") {
|
|
299
|
-
current += "''";
|
|
300
|
-
i++;
|
|
301
|
-
continue;
|
|
302
|
-
}
|
|
303
|
-
inString = false;
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
inString = true;
|
|
307
|
-
}
|
|
308
|
-
current += char;
|
|
309
|
-
}
|
|
310
|
-
else if (inString) {
|
|
311
|
-
current += char;
|
|
312
|
-
}
|
|
313
|
-
else if (char === '(') {
|
|
314
|
-
depth++;
|
|
315
|
-
current += char;
|
|
316
|
-
}
|
|
317
|
-
else if (char === ')') {
|
|
318
|
-
depth--;
|
|
319
|
-
current += char;
|
|
320
|
-
}
|
|
321
|
-
else if (char === ',' && depth === 0) {
|
|
322
|
-
attributes.push(parseAttributeValue(current.trim()));
|
|
323
|
-
current = '';
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
current += char;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
if (current.trim()) {
|
|
330
|
-
attributes.push(parseAttributeValue(current.trim()));
|
|
331
|
-
}
|
|
332
|
-
return attributes;
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Parse a single attribute value
|
|
336
|
-
*/
|
|
337
|
-
function parseAttributeValue(value) {
|
|
338
|
-
value = value.trim();
|
|
339
|
-
if (!value || value === '$') {
|
|
340
|
-
return null;
|
|
341
|
-
}
|
|
342
|
-
// TypedValue: IFCTYPENAME(value) - must check before list check
|
|
343
|
-
// Pattern: identifier followed by parentheses (e.g., IFCNORMALISEDRATIOMEASURE(0.5))
|
|
344
|
-
const typedValueMatch = value.match(/^([A-Z][A-Z0-9_]*)\((.+)\)$/i);
|
|
345
|
-
if (typedValueMatch) {
|
|
346
|
-
const typeName = typedValueMatch[1];
|
|
347
|
-
const innerValue = typedValueMatch[2].trim();
|
|
348
|
-
// Return as array [typeName, parsedValue] to match Rust structure
|
|
349
|
-
return [typeName, parseAttributeValue(innerValue)];
|
|
350
|
-
}
|
|
351
|
-
// List/Array
|
|
352
|
-
if (value.startsWith('(') && value.endsWith(')')) {
|
|
353
|
-
const listContent = value.slice(1, -1).trim();
|
|
354
|
-
if (!listContent)
|
|
355
|
-
return [];
|
|
356
|
-
const items = [];
|
|
357
|
-
let depth = 0;
|
|
358
|
-
let current = '';
|
|
359
|
-
for (let i = 0; i < listContent.length; i++) {
|
|
360
|
-
const char = listContent[i];
|
|
361
|
-
if (char === '(') {
|
|
362
|
-
depth++;
|
|
363
|
-
current += char;
|
|
364
|
-
}
|
|
365
|
-
else if (char === ')') {
|
|
366
|
-
depth--;
|
|
367
|
-
current += char;
|
|
368
|
-
}
|
|
369
|
-
else if (char === ',' && depth === 0) {
|
|
370
|
-
const itemValue = current.trim();
|
|
371
|
-
if (itemValue)
|
|
372
|
-
items.push(parseAttributeValue(itemValue));
|
|
373
|
-
current = '';
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
current += char;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
if (current.trim())
|
|
380
|
-
items.push(parseAttributeValue(current.trim()));
|
|
381
|
-
return items;
|
|
382
|
-
}
|
|
383
|
-
// Reference: #123
|
|
384
|
-
if (value.startsWith('#')) {
|
|
385
|
-
const id = parseInt(value.substring(1), 10);
|
|
386
|
-
return isNaN(id) ? null : id;
|
|
387
|
-
}
|
|
388
|
-
// String: 'text'
|
|
389
|
-
if (value.startsWith("'") && value.endsWith("'")) {
|
|
390
|
-
const raw = value.slice(1, -1).replace(/''/g, "'");
|
|
391
|
-
// Decode IFC STEP encoded characters (\X2\00FC\X0\ -> ü, etc.)
|
|
392
|
-
return decodeIfcString(raw);
|
|
393
|
-
}
|
|
394
|
-
// Number
|
|
395
|
-
const num = parseFloat(value);
|
|
396
|
-
if (!isNaN(num))
|
|
397
|
-
return num;
|
|
398
|
-
// Enumeration or other identifier
|
|
399
|
-
return value;
|
|
400
|
-
}
|
|
401
130
|
// Import for auto-parser
|
|
402
131
|
import { parseIfcx, detectFormat } from '@ifc-lite/ifcx';
|
|
403
132
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,4 +54,58 @@ export interface MaterialConstituentInfo {
|
|
|
54
54
|
* Resolves the full material structure (layers, profiles, constituents, lists).
|
|
55
55
|
*/
|
|
56
56
|
export declare function extractMaterialsOnDemand(store: IfcDataStore, entityId: number): MaterialInfo | null;
|
|
57
|
+
/** A base IfcMaterial reachable from an element's material association. */
|
|
58
|
+
export interface MaterialLeaf {
|
|
59
|
+
/** Express id of the underlying IfcMaterial (or the definition itself when
|
|
60
|
+
* no nested IfcMaterial could be resolved). */
|
|
61
|
+
id: number;
|
|
62
|
+
name?: string;
|
|
63
|
+
category?: string;
|
|
64
|
+
/** Share of the element's volume attributable to this material, in [0,1].
|
|
65
|
+
* Leaves of one element sum to ~1 (layer thickness / constituent fraction;
|
|
66
|
+
* equal split when no proportion data is available). */
|
|
67
|
+
weight: number;
|
|
68
|
+
}
|
|
69
|
+
/** Aggregated usage of one base material across the model. */
|
|
70
|
+
export interface MaterialUsage {
|
|
71
|
+
/** Express id of the base IfcMaterial. */
|
|
72
|
+
id: number;
|
|
73
|
+
name: string;
|
|
74
|
+
category?: string;
|
|
75
|
+
/** IFC class of the material entity (e.g. "IfcMaterial"). */
|
|
76
|
+
ifcClass: string;
|
|
77
|
+
/** Every element using this material, with its volume weight. */
|
|
78
|
+
entries: Array<{
|
|
79
|
+
entityId: number;
|
|
80
|
+
weight: number;
|
|
81
|
+
}>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve the material *definition* directly associated with an element
|
|
85
|
+
* (IfcMaterial / IfcMaterial*Set / *Usage). Mirrors the lookup at the top of
|
|
86
|
+
* {@link extractMaterialsOnDemand}: occurrence association first, then the
|
|
87
|
+
* element's type. Returns the definition express id, or undefined.
|
|
88
|
+
*/
|
|
89
|
+
export declare function resolveMaterialDefId(store: IfcDataStore, entityId: number): number | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the base IfcMaterial(s) for a material definition, with a volume
|
|
92
|
+
* weight per material. Layer sets split by layer thickness, constituent sets by
|
|
93
|
+
* fraction, profile/list sets equally; a plain IfcMaterial yields a single
|
|
94
|
+
* leaf with weight 1. Results are memoised per (store, defId) — a type-shared
|
|
95
|
+
* layer set is resolved once for the whole model.
|
|
96
|
+
*/
|
|
97
|
+
export declare function collectMaterialLeaves(store: IfcDataStore, defId: number): MaterialLeaf[];
|
|
98
|
+
/**
|
|
99
|
+
* Build (and memoise) the model-wide index of base material → using elements,
|
|
100
|
+
* with per-element volume weights. Derived entirely from the forward
|
|
101
|
+
* `onDemandMaterialMap` (element → definition) that the parser already builds,
|
|
102
|
+
* so no extra parse work is required. Keyed by base IfcMaterial express id.
|
|
103
|
+
*/
|
|
104
|
+
export declare function buildMaterialUsageIndex(store: IfcDataStore): Map<number, MaterialUsage>;
|
|
105
|
+
/** Resolve a material entity's display name + IFC class for headers/labels.
|
|
106
|
+
* Memoised per (store, materialId) — callers resolve many materials in a loop. */
|
|
107
|
+
export declare function getMaterialDisplay(store: IfcDataStore, materialId: number): {
|
|
108
|
+
name: string;
|
|
109
|
+
type: string;
|
|
110
|
+
};
|
|
57
111
|
//# sourceMappingURL=material-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-resolver.d.ts","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,cAAc,CAAC;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iFAC6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACjB,YAAY,GAAG,IAAI,CA8BrB"}
|
|
1
|
+
{"version":3,"file":"material-resolver.d.ts","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"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"}
|