@ifc-lite/parser 2.1.7 → 2.1.9
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/dist/classification-extractor.d.ts +1 -1
- package/dist/classification-extractor.d.ts.map +1 -1
- package/dist/classification-resolver.d.ts +18 -0
- package/dist/classification-resolver.d.ts.map +1 -0
- package/dist/classification-resolver.js +126 -0
- package/dist/classification-resolver.js.map +1 -0
- package/dist/columnar-parser-attributes.d.ts +39 -0
- package/dist/columnar-parser-attributes.d.ts.map +1 -0
- package/dist/columnar-parser-attributes.js +225 -0
- package/dist/columnar-parser-attributes.js.map +1 -0
- package/dist/columnar-parser-indexes.d.ts +42 -0
- package/dist/columnar-parser-indexes.d.ts.map +1 -0
- package/dist/columnar-parser-indexes.js +102 -0
- package/dist/columnar-parser-indexes.js.map +1 -0
- package/dist/columnar-parser-relationships.d.ts +17 -0
- package/dist/columnar-parser-relationships.d.ts.map +1 -0
- package/dist/columnar-parser-relationships.js +95 -0
- package/dist/columnar-parser-relationships.js.map +1 -0
- package/dist/columnar-parser.d.ts +6 -21
- package/dist/columnar-parser.d.ts.map +1 -1
- package/dist/columnar-parser.js +154 -445
- package/dist/columnar-parser.js.map +1 -1
- package/dist/compact-entity-index.d.ts +1 -0
- package/dist/compact-entity-index.d.ts.map +1 -1
- package/dist/compact-entity-index.js +52 -0
- package/dist/compact-entity-index.js.map +1 -1
- package/dist/georef-extractor.d.ts +7 -1
- package/dist/georef-extractor.d.ts.map +1 -1
- package/dist/georef-extractor.js +29 -5
- package/dist/georef-extractor.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -17
- package/dist/index.js.map +1 -1
- package/dist/material-extractor.d.ts +1 -1
- package/dist/material-extractor.d.ts.map +1 -1
- package/dist/material-resolver.d.ts +37 -0
- package/dist/material-resolver.d.ts.map +1 -0
- package/dist/material-resolver.js +230 -0
- package/dist/material-resolver.js.map +1 -0
- package/dist/on-demand-extractors.d.ts +4 -51
- package/dist/on-demand-extractors.d.ts.map +1 -1
- package/dist/on-demand-extractors.js +17 -341
- package/dist/on-demand-extractors.js.map +1 -1
- package/dist/style-extractor.js.map +1 -1
- package/dist/worker-parser.d.ts.map +1 -1
- package/dist/worker-parser.js +2 -4
- package/dist/worker-parser.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* Relationship extraction for columnar parsing.
|
|
6
|
+
*
|
|
7
|
+
* Byte-level relationship scanners that extract numeric entity IDs
|
|
8
|
+
* from STEP relationship entities without TextDecoder overhead.
|
|
9
|
+
*/
|
|
10
|
+
import { skipCommas, readRefId, readRefList } from './columnar-parser-attributes.js';
|
|
11
|
+
/**
|
|
12
|
+
* Extract relatingObject and relatedObjects from a relationship entity using byte-level scanning.
|
|
13
|
+
* No TextDecoder needed - only extracts numeric entity IDs.
|
|
14
|
+
*/
|
|
15
|
+
export function extractRelFast(buffer, byteOffset, byteLength, typeUpper) {
|
|
16
|
+
const end = byteOffset + byteLength;
|
|
17
|
+
let pos = byteOffset;
|
|
18
|
+
while (pos < end && buffer[pos] !== 0x28)
|
|
19
|
+
pos++;
|
|
20
|
+
if (pos >= end)
|
|
21
|
+
return null;
|
|
22
|
+
pos++;
|
|
23
|
+
// Skip to attr[4] (all IfcRelationship subtypes have 4 shared IfcRoot+IfcRelationship attrs)
|
|
24
|
+
pos = skipCommas(buffer, pos, end, 4);
|
|
25
|
+
if (typeUpper === 'IFCRELCONTAINEDINSPATIALSTRUCTURE'
|
|
26
|
+
|| typeUpper === 'IFCRELREFERENCEDINSPATIALSTRUCTURE'
|
|
27
|
+
|| typeUpper === 'IFCRELDEFINESBYPROPERTIES'
|
|
28
|
+
|| typeUpper === 'IFCRELDEFINESBYTYPE') {
|
|
29
|
+
// attr[4]=RelatedObjects, attr[5]=RelatingObject
|
|
30
|
+
const [related, rp] = readRefList(buffer, pos, end);
|
|
31
|
+
pos = rp;
|
|
32
|
+
while (pos < end && buffer[pos] !== 0x2C)
|
|
33
|
+
pos++;
|
|
34
|
+
pos++;
|
|
35
|
+
const [relating, _] = readRefId(buffer, pos, end);
|
|
36
|
+
if (relating < 0 || related.length === 0)
|
|
37
|
+
return null;
|
|
38
|
+
return { relatingObject: relating, relatedObjects: related };
|
|
39
|
+
}
|
|
40
|
+
else if (typeUpper === 'IFCRELASSIGNSTOGROUP' || typeUpper === 'IFCRELASSIGNSTOPRODUCT') {
|
|
41
|
+
const [related, rp] = readRefList(buffer, pos, end);
|
|
42
|
+
pos = skipCommas(buffer, rp, end, 2);
|
|
43
|
+
const [relating, _] = readRefId(buffer, pos, end);
|
|
44
|
+
if (relating < 0 || related.length === 0)
|
|
45
|
+
return null;
|
|
46
|
+
return { relatingObject: relating, relatedObjects: related };
|
|
47
|
+
}
|
|
48
|
+
else if (typeUpper === 'IFCRELCONNECTSELEMENTS' || typeUpper === 'IFCRELCONNECTSPATHELEMENTS') {
|
|
49
|
+
pos = skipCommas(buffer, pos, end, 1);
|
|
50
|
+
const [relating, rp2] = readRefId(buffer, pos, end);
|
|
51
|
+
pos = skipCommas(buffer, rp2, end, 1);
|
|
52
|
+
const [related, _] = readRefId(buffer, pos, end);
|
|
53
|
+
if (relating < 0 || related < 0)
|
|
54
|
+
return null;
|
|
55
|
+
return { relatingObject: relating, relatedObjects: [related] };
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
// Default: attr[4]=RelatingObject, attr[5]=RelatedObject(s)
|
|
59
|
+
const [relating, rp] = readRefId(buffer, pos, end);
|
|
60
|
+
if (relating < 0)
|
|
61
|
+
return null;
|
|
62
|
+
pos = rp;
|
|
63
|
+
while (pos < end && buffer[pos] !== 0x2C)
|
|
64
|
+
pos++;
|
|
65
|
+
pos++;
|
|
66
|
+
const [related, _] = readRefList(buffer, pos, end);
|
|
67
|
+
if (related.length === 0)
|
|
68
|
+
return null;
|
|
69
|
+
return { relatingObject: relating, relatedObjects: related };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract property rel data: attr[4]=relatedObjects, attr[5]=relatingDef.
|
|
74
|
+
* Numbers only, no TextDecoder.
|
|
75
|
+
*/
|
|
76
|
+
export function extractPropertyRelFast(buffer, byteOffset, byteLength) {
|
|
77
|
+
const end = byteOffset + byteLength;
|
|
78
|
+
let pos = byteOffset;
|
|
79
|
+
while (pos < end && buffer[pos] !== 0x28)
|
|
80
|
+
pos++;
|
|
81
|
+
if (pos >= end)
|
|
82
|
+
return null;
|
|
83
|
+
pos++;
|
|
84
|
+
pos = skipCommas(buffer, pos, end, 4);
|
|
85
|
+
const [relatedObjects, rp] = readRefList(buffer, pos, end);
|
|
86
|
+
pos = rp;
|
|
87
|
+
while (pos < end && buffer[pos] !== 0x2C)
|
|
88
|
+
pos++;
|
|
89
|
+
pos++;
|
|
90
|
+
const [relatingDef, _] = readRefId(buffer, pos, end);
|
|
91
|
+
if (relatingDef < 0 || relatedObjects.length === 0)
|
|
92
|
+
return null;
|
|
93
|
+
return { relatedObjects, relatingDef };
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=columnar-parser-relationships.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnar-parser-relationships.js","sourceRoot":"","sources":["../src/columnar-parser-relationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,27 +7,8 @@
|
|
|
7
7
|
import type { EntityRef } from './types.js';
|
|
8
8
|
import { StringTable, EntityTableBuilder, PropertyTableBuilder, RelationshipGraphBuilder } from '@ifc-lite/data';
|
|
9
9
|
import type { SpatialHierarchy, QuantityTable, PropertyValue } from '@ifc-lite/data';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
min: [number, number, number];
|
|
13
|
-
max: [number, number, number];
|
|
14
|
-
}): number[];
|
|
15
|
-
raycast(origin: [number, number, number], direction: [number, number, number]): number[];
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Entity-by-ID lookup interface. Supports both Map<number, EntityRef> (legacy)
|
|
19
|
-
* and CompactEntityIndex (memory-optimized typed arrays with LRU cache).
|
|
20
|
-
*/
|
|
21
|
-
export type EntityByIdIndex = {
|
|
22
|
-
get(expressId: number): EntityRef | undefined;
|
|
23
|
-
has(expressId: number): boolean;
|
|
24
|
-
readonly size: number;
|
|
25
|
-
keys(): IterableIterator<number>;
|
|
26
|
-
values(): IterableIterator<EntityRef>;
|
|
27
|
-
entries(): IterableIterator<[number, EntityRef]>;
|
|
28
|
-
forEach(callback: (value: EntityRef, key: number) => void): void;
|
|
29
|
-
[Symbol.iterator](): IterableIterator<[number, EntityRef]>;
|
|
30
|
-
};
|
|
10
|
+
import type { SpatialIndex, EntityByIdIndex } from './columnar-parser-indexes.js';
|
|
11
|
+
export type { SpatialIndex, EntityByIdIndex } from './columnar-parser-indexes.js';
|
|
31
12
|
export interface IfcDataStore {
|
|
32
13
|
fileSize: number;
|
|
33
14
|
schemaVersion: 'IFC2X3' | 'IFC4' | 'IFC4X3' | 'IFC5';
|
|
@@ -38,6 +19,7 @@ export interface IfcDataStore {
|
|
|
38
19
|
byId: EntityByIdIndex;
|
|
39
20
|
byType: Map<string, number[]>;
|
|
40
21
|
};
|
|
22
|
+
deferredEntityIndex?: EntityByIdIndex;
|
|
41
23
|
strings: StringTable;
|
|
42
24
|
entities: ReturnType<EntityTableBuilder['build']>;
|
|
43
25
|
properties: ReturnType<PropertyTableBuilder['build']>;
|
|
@@ -87,6 +69,9 @@ export declare class ColumnarParser {
|
|
|
87
69
|
phase: string;
|
|
88
70
|
percent: number;
|
|
89
71
|
}) => void;
|
|
72
|
+
onDiagnostic?: (message: string) => void;
|
|
73
|
+
yieldIntervalMs?: number;
|
|
74
|
+
deferPropertyAtomIndex?: boolean;
|
|
90
75
|
onSpatialReady?: (partialStore: IfcDataStore) => void;
|
|
91
76
|
}): Promise<IfcDataStore>;
|
|
92
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser.d.ts","sourceRoot":"","sources":["../src/columnar-parser.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"columnar-parser.d.ts","sourceRoot":"","sources":["../src/columnar-parser.ts"],"names":[],"mappings":"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"}
|