@ifc-lite/parser 4.3.2 → 5.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/dist/attribute-helpers.d.ts +38 -4
- package/dist/attribute-helpers.d.ts.map +1 -1
- package/dist/attribute-helpers.js +71 -4
- package/dist/attribute-helpers.js.map +1 -1
- package/dist/classification-resolver.d.ts +28 -2
- package/dist/classification-resolver.d.ts.map +1 -1
- package/dist/classification-resolver.js +24 -6
- package/dist/classification-resolver.js.map +1 -1
- package/dist/columnar-parser-attributes.d.ts.map +1 -1
- package/dist/columnar-parser-attributes.js +35 -5
- package/dist/columnar-parser-attributes.js.map +1 -1
- package/dist/columnar-parser-indexes.d.ts.map +1 -1
- package/dist/columnar-parser-indexes.js +14 -2
- package/dist/columnar-parser-indexes.js.map +1 -1
- package/dist/columnar-parser-relationships.d.ts.map +1 -1
- package/dist/columnar-parser-relationships.js +6 -1
- package/dist/columnar-parser-relationships.js.map +1 -1
- package/dist/columnar-parser.d.ts +4 -2
- package/dist/columnar-parser.d.ts.map +1 -1
- package/dist/columnar-parser.js +18 -56
- package/dist/columnar-parser.js.map +1 -1
- package/dist/compact-entity-index-transport.d.ts +23 -0
- package/dist/compact-entity-index-transport.d.ts.map +1 -0
- package/dist/compact-entity-index-transport.js +28 -0
- package/dist/compact-entity-index-transport.js.map +1 -0
- package/dist/compact-entity-index.d.ts +1 -10
- package/dist/compact-entity-index.d.ts.map +1 -1
- package/dist/compact-entity-index.js +29 -26
- package/dist/compact-entity-index.js.map +1 -1
- package/dist/data-store-transport.d.ts +9 -26
- package/dist/data-store-transport.d.ts.map +1 -1
- package/dist/data-store-transport.js +16 -35
- package/dist/data-store-transport.js.map +1 -1
- package/dist/entity-extractor.d.ts.map +1 -1
- package/dist/entity-extractor.js +101 -6
- package/dist/entity-extractor.js.map +1 -1
- package/dist/entity-refs-from-index.d.ts.map +1 -1
- package/dist/entity-refs-from-index.js +24 -15
- package/dist/entity-refs-from-index.js.map +1 -1
- package/dist/entity-scanner.d.ts +63 -0
- package/dist/entity-scanner.d.ts.map +1 -1
- package/dist/entity-scanner.js +79 -2
- package/dist/entity-scanner.js.map +1 -1
- package/dist/express-id.d.ts +47 -0
- package/dist/express-id.d.ts.map +1 -0
- package/dist/express-id.js +57 -0
- package/dist/express-id.js.map +1 -0
- package/dist/generated/entities.d.ts +1 -1
- package/dist/generated/entities.d.ts.map +1 -1
- package/dist/generated/schema-registry.js +146 -146
- package/dist/generated/schema-registry.js.map +1 -1
- package/dist/georef-epset.d.ts +25 -0
- package/dist/georef-epset.d.ts.map +1 -0
- package/dist/georef-epset.js +214 -0
- package/dist/georef-epset.js.map +1 -0
- package/dist/georef-extractor.d.ts.map +1 -1
- package/dist/georef-extractor.js +38 -175
- package/dist/georef-extractor.js.map +1 -1
- package/dist/georef-map-conversion.d.ts +29 -0
- package/dist/georef-map-conversion.d.ts.map +1 -0
- package/dist/georef-map-conversion.js +75 -0
- package/dist/georef-map-conversion.js.map +1 -0
- package/dist/ifc-schema.d.ts +4 -2
- package/dist/ifc-schema.d.ts.map +1 -1
- package/dist/ifc-schema.js +15 -5
- package/dist/ifc-schema.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/material-extractor.d.ts +2 -17
- package/dist/material-extractor.d.ts.map +1 -1
- package/dist/material-extractor.js +12 -37
- package/dist/material-extractor.js.map +1 -1
- package/dist/material-layer-reader.d.ts +45 -0
- package/dist/material-layer-reader.d.ts.map +1 -0
- package/dist/material-layer-reader.js +63 -0
- package/dist/material-layer-reader.js.map +1 -0
- package/dist/material-resolver.d.ts.map +1 -1
- package/dist/material-resolver.js +14 -14
- package/dist/material-resolver.js.map +1 -1
- package/dist/measure-unit-scale.d.ts +41 -0
- package/dist/measure-unit-scale.d.ts.map +1 -0
- package/dist/measure-unit-scale.js +53 -0
- package/dist/measure-unit-scale.js.map +1 -0
- package/dist/on-demand-extractors.d.ts +4 -20
- package/dist/on-demand-extractors.d.ts.map +1 -1
- package/dist/on-demand-extractors.js +54 -264
- package/dist/on-demand-extractors.js.map +1 -1
- package/dist/on-demand-georeferencing.d.ts +3 -3
- package/dist/on-demand-georeferencing.js +27 -4
- package/dist/on-demand-georeferencing.js.map +1 -1
- package/dist/owning-project.d.ts +54 -0
- package/dist/owning-project.d.ts.map +1 -0
- package/dist/owning-project.js +76 -0
- package/dist/owning-project.js.map +1 -0
- package/dist/parser.worker.d.ts +14 -0
- package/dist/parser.worker.d.ts.map +1 -1
- package/dist/parser.worker.js +16 -3
- package/dist/parser.worker.js.map +1 -1
- package/dist/project-units-symbols.d.ts +33 -0
- package/dist/project-units-symbols.d.ts.map +1 -0
- package/dist/project-units-symbols.js +265 -0
- package/dist/project-units-symbols.js.map +1 -0
- package/dist/project-units.d.ts +11 -19
- package/dist/project-units.d.ts.map +1 -1
- package/dist/project-units.js +9 -267
- package/dist/project-units.js.map +1 -1
- package/dist/property-set-merge.d.ts +65 -8
- package/dist/property-set-merge.d.ts.map +1 -1
- package/dist/property-set-merge.js +130 -29
- package/dist/property-set-merge.js.map +1 -1
- package/dist/property-value-parser.d.ts +55 -0
- package/dist/property-value-parser.d.ts.map +1 -0
- package/dist/property-value-parser.js +277 -0
- package/dist/property-value-parser.js.map +1 -0
- package/dist/quantity-collect.d.ts +42 -3
- package/dist/quantity-collect.d.ts.map +1 -1
- package/dist/quantity-collect.js +114 -7
- package/dist/quantity-collect.js.map +1 -1
- package/dist/query-backend-maps.d.ts +5 -8
- package/dist/query-backend-maps.d.ts.map +1 -1
- package/dist/query-backend-maps.js +155 -15
- package/dist/query-backend-maps.js.map +1 -1
- package/dist/relationship-extractor.d.ts.map +1 -1
- package/dist/relationship-extractor.js +18 -0
- package/dist/relationship-extractor.js.map +1 -1
- package/dist/scan-entities-balanced.d.ts +38 -0
- package/dist/scan-entities-balanced.d.ts.map +1 -0
- package/dist/scan-entities-balanced.js +258 -0
- package/dist/scan-entities-balanced.js.map +1 -0
- package/dist/scan-worker-inline.d.ts +17 -11
- package/dist/scan-worker-inline.d.ts.map +1 -1
- package/dist/scan-worker-inline.js +9 -235
- package/dist/scan-worker-inline.js.map +1 -1
- package/dist/scan-worker-source.d.ts +9 -0
- package/dist/scan-worker-source.d.ts.map +1 -0
- package/dist/scan-worker-source.js +383 -0
- package/dist/scan-worker-source.js.map +1 -0
- package/dist/spatial-hierarchy-builder.js +3 -3
- package/dist/spatial-hierarchy-builder.js.map +1 -1
- package/dist/step-lexing.d.ts +2 -0
- package/dist/step-lexing.d.ts.map +1 -1
- package/dist/step-lexing.js +116 -18
- package/dist/step-lexing.js.map +1 -1
- package/dist/step-trivia.d.ts +60 -0
- package/dist/step-trivia.d.ts.map +1 -0
- package/dist/step-trivia.js +63 -0
- package/dist/step-trivia.js.map +1 -0
- package/dist/tokenizer.d.ts +20 -21
- package/dist/tokenizer.d.ts.map +1 -1
- package/dist/tokenizer.js +164 -203
- package/dist/tokenizer.js.map +1 -1
- package/dist/unit-extractor.d.ts +43 -1
- package/dist/unit-extractor.d.ts.map +1 -1
- package/dist/unit-extractor.js +63 -4
- package/dist/unit-extractor.js.map +1 -1
- package/dist/worker-parser.d.ts +11 -1
- package/dist/worker-parser.d.ts.map +1 -1
- package/dist/worker-parser.js +25 -5
- package/dist/worker-parser.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,9 +1,43 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared helpers for extracting typed values from IFC entity attributes.
|
|
3
|
-
* Used across material, georef, and classification extractors.
|
|
4
|
-
*/
|
|
5
1
|
export declare function getString(value: unknown): string | undefined;
|
|
6
2
|
export declare function getNumber(value: unknown): number | undefined;
|
|
3
|
+
/**
|
|
4
|
+
* True when `raw` is a token the extractor preserved verbatim *because* the
|
|
5
|
+
* number it names overflows the IEEE-754 double range — `1.0E400`.
|
|
6
|
+
*
|
|
7
|
+
* `parseAttributeValue` returns the raw token for anything it cannot represent
|
|
8
|
+
* as a finite number, so a string in a numeric attribute slot is ambiguous: it
|
|
9
|
+
* may be an enumeration, a mis-typed label, or a real the double range cannot
|
|
10
|
+
* hold. Only the last is an *unrepresentable number*, and only that case is
|
|
11
|
+
* this predicate's business. Callers whose value type is `number` refuse
|
|
12
|
+
* rather than substitute a plausible-looking `0`; they go through
|
|
13
|
+
* {@link isUnrepresentableNumericValue}, which adds the non-finite `number`
|
|
14
|
+
* case this one cannot see.
|
|
15
|
+
*
|
|
16
|
+
* `parseFloat`, matching `parseAttributeValue`: it is what decided the token
|
|
17
|
+
* was non-finite in the first place, and `Number('1.0E400abc')` disagrees with
|
|
18
|
+
* `parseFloat('1.0E400abc')`. `NaN` is deliberately NOT included — a `NaN`
|
|
19
|
+
* token was already a raw string before non-finite guarding, so it is an
|
|
20
|
+
* ordinary unparseable label, not a number that overflowed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isOverflowingNumericLiteral(raw: unknown): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* True when `raw` states a number that cannot be represented — either the
|
|
25
|
+
* overflowing token above, or an actual non-finite `number`.
|
|
26
|
+
*
|
|
27
|
+
* The second half is not hypothetical. `getNumber` now answers `undefined` for
|
|
28
|
+
* `Infinity`, so every caller that ends in `?? 0` turns a non-finite number
|
|
29
|
+
* into a plausible zero, and {@link isOverflowingNumericLiteral} alone cannot
|
|
30
|
+
* stop it: that predicate only sees strings. The STEP extractor no longer
|
|
31
|
+
* produces non-finite numbers itself, but this helper's callers are also fed
|
|
32
|
+
* by hand-built entity maps, by `IfcPropertySingleValue` nominal values, and
|
|
33
|
+
* by other packages' fixtures — so "the parser cannot make one" is not the
|
|
34
|
+
* same as "one cannot arrive".
|
|
35
|
+
*
|
|
36
|
+
* Refusal is reserved for a value that is PRESENT and unrepresentable. `null`
|
|
37
|
+
* / `undefined` — a `$` attribute — is ordinary absence, keeps its meaning,
|
|
38
|
+
* and keeps whatever default the caller already had.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isUnrepresentableNumericValue(raw: unknown): boolean;
|
|
7
41
|
export declare function getBoolean(value: unknown): boolean | undefined;
|
|
8
42
|
export declare function getReference(value: unknown): number | undefined;
|
|
9
43
|
export declare function getReferences(value: unknown): number[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-helpers.d.ts","sourceRoot":"","sources":["../src/attribute-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attribute-helpers.d.ts","sourceRoot":"","sources":["../src/attribute-helpers.ts"],"names":[],"mappings":"AAWA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI5D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAqB5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGnE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAM9D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAc/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAKlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAKlE"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Shared helpers for extracting typed values from IFC entity attributes.
|
|
6
6
|
* Used across material, georef, and classification extractors.
|
|
7
7
|
*/
|
|
8
|
+
import { isIndexableExpressId } from './express-id.js';
|
|
8
9
|
export function getString(value) {
|
|
9
10
|
if (value === null || value === undefined)
|
|
10
11
|
return undefined;
|
|
@@ -15,14 +16,74 @@ export function getString(value) {
|
|
|
15
16
|
export function getNumber(value) {
|
|
16
17
|
if (value === null || value === undefined)
|
|
17
18
|
return undefined;
|
|
19
|
+
// Both branches are guarded, not just the string one. A caller can hand this
|
|
20
|
+
// helper a number directly — `getNumber(entity.attributes[7])` where the
|
|
21
|
+
// extractor already produced one, or a literal from a caller's own
|
|
22
|
+
// arithmetic — and `Infinity`/`NaN` are `typeof 'number'`. Guarding only the
|
|
23
|
+
// parse below would make the contract "finite, unless you passed a number",
|
|
24
|
+
// which is not a contract.
|
|
18
25
|
if (typeof value === 'number')
|
|
19
|
-
return value;
|
|
26
|
+
return Number.isFinite(value) ? value : undefined;
|
|
20
27
|
if (typeof value === 'string') {
|
|
21
28
|
const num = parseFloat(value);
|
|
22
|
-
|
|
29
|
+
// Number.isFinite, not !isNaN: `parseFloat('1.0E400')` is `Infinity` and
|
|
30
|
+
// `isNaN(Infinity)` is `false`. This helper's callers (georeferencing
|
|
31
|
+
// eastings/northings/scale, material layer thickness, classification
|
|
32
|
+
// numerics) all feed exported geometry and property values, where an
|
|
33
|
+
// infinity becomes `null` on the way out of `JSON.stringify`. The
|
|
34
|
+
// signature is `number | undefined`, so the only honest answer for a
|
|
35
|
+
// value that is not a finite number is "absent".
|
|
36
|
+
return Number.isFinite(num) ? num : undefined;
|
|
23
37
|
}
|
|
24
38
|
return undefined;
|
|
25
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* True when `raw` is a token the extractor preserved verbatim *because* the
|
|
42
|
+
* number it names overflows the IEEE-754 double range — `1.0E400`.
|
|
43
|
+
*
|
|
44
|
+
* `parseAttributeValue` returns the raw token for anything it cannot represent
|
|
45
|
+
* as a finite number, so a string in a numeric attribute slot is ambiguous: it
|
|
46
|
+
* may be an enumeration, a mis-typed label, or a real the double range cannot
|
|
47
|
+
* hold. Only the last is an *unrepresentable number*, and only that case is
|
|
48
|
+
* this predicate's business. Callers whose value type is `number` refuse
|
|
49
|
+
* rather than substitute a plausible-looking `0`; they go through
|
|
50
|
+
* {@link isUnrepresentableNumericValue}, which adds the non-finite `number`
|
|
51
|
+
* case this one cannot see.
|
|
52
|
+
*
|
|
53
|
+
* `parseFloat`, matching `parseAttributeValue`: it is what decided the token
|
|
54
|
+
* was non-finite in the first place, and `Number('1.0E400abc')` disagrees with
|
|
55
|
+
* `parseFloat('1.0E400abc')`. `NaN` is deliberately NOT included — a `NaN`
|
|
56
|
+
* token was already a raw string before non-finite guarding, so it is an
|
|
57
|
+
* ordinary unparseable label, not a number that overflowed.
|
|
58
|
+
*/
|
|
59
|
+
export function isOverflowingNumericLiteral(raw) {
|
|
60
|
+
if (typeof raw !== 'string')
|
|
61
|
+
return false;
|
|
62
|
+
const num = parseFloat(raw);
|
|
63
|
+
return num === Infinity || num === -Infinity;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* True when `raw` states a number that cannot be represented — either the
|
|
67
|
+
* overflowing token above, or an actual non-finite `number`.
|
|
68
|
+
*
|
|
69
|
+
* The second half is not hypothetical. `getNumber` now answers `undefined` for
|
|
70
|
+
* `Infinity`, so every caller that ends in `?? 0` turns a non-finite number
|
|
71
|
+
* into a plausible zero, and {@link isOverflowingNumericLiteral} alone cannot
|
|
72
|
+
* stop it: that predicate only sees strings. The STEP extractor no longer
|
|
73
|
+
* produces non-finite numbers itself, but this helper's callers are also fed
|
|
74
|
+
* by hand-built entity maps, by `IfcPropertySingleValue` nominal values, and
|
|
75
|
+
* by other packages' fixtures — so "the parser cannot make one" is not the
|
|
76
|
+
* same as "one cannot arrive".
|
|
77
|
+
*
|
|
78
|
+
* Refusal is reserved for a value that is PRESENT and unrepresentable. `null`
|
|
79
|
+
* / `undefined` — a `$` attribute — is ordinary absence, keeps its meaning,
|
|
80
|
+
* and keeps whatever default the caller already had.
|
|
81
|
+
*/
|
|
82
|
+
export function isUnrepresentableNumericValue(raw) {
|
|
83
|
+
if (typeof raw === 'number')
|
|
84
|
+
return !Number.isFinite(raw);
|
|
85
|
+
return isOverflowingNumericLiteral(raw);
|
|
86
|
+
}
|
|
26
87
|
export function getBoolean(value) {
|
|
27
88
|
if (value === null || value === undefined)
|
|
28
89
|
return undefined;
|
|
@@ -37,11 +98,17 @@ export function getBoolean(value) {
|
|
|
37
98
|
export function getReference(value) {
|
|
38
99
|
if (value === null || value === undefined)
|
|
39
100
|
return undefined;
|
|
101
|
+
// Guarded on the number branch too: an express id is an integer key into the
|
|
102
|
+
// entity map, and `isIndexableExpressId` is the one place that says which
|
|
103
|
+
// integers this toolkit can actually key on (express-id.ts, #3395).
|
|
104
|
+
// `Infinity` names no entity, two ids past 2^53 accumulate to the same
|
|
105
|
+
// double and would resolve to the same wrong entity, an id above 2^32 is
|
|
106
|
+
// never in the index, and `NaN` matches nothing, including itself.
|
|
40
107
|
if (typeof value === 'number')
|
|
41
|
-
return value;
|
|
108
|
+
return isIndexableExpressId(value) ? value : undefined;
|
|
42
109
|
if (typeof value === 'string' && value.startsWith('#')) {
|
|
43
110
|
const num = parseInt(value.substring(1));
|
|
44
|
-
if (
|
|
111
|
+
if (isIndexableExpressId(num))
|
|
45
112
|
return num;
|
|
46
113
|
}
|
|
47
114
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-helpers.js","sourceRoot":"","sources":["../src/attribute-helpers.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"attribute-helpers.js","sourceRoot":"","sources":["../src/attribute-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,16 @@ export interface ClassificationInfo {
|
|
|
6
6
|
location?: string;
|
|
7
7
|
description?: string;
|
|
8
8
|
path?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* True when the relationship graph proves this entity/type carries a
|
|
11
|
+
* classification association, but the classification's own attributes
|
|
12
|
+
* (system, identification, name, path) could not be read because this
|
|
13
|
+
* store has no source bytes — a server-parsed store (issue #3948).
|
|
14
|
+
* Distinguishes "classified but unresolved" from "genuinely unclassified"
|
|
15
|
+
* (an empty result array), which are otherwise byte-identical to every
|
|
16
|
+
* caller. All other fields are left `undefined` on an unresolved entry.
|
|
17
|
+
*/
|
|
18
|
+
unresolved?: boolean;
|
|
9
19
|
}
|
|
10
20
|
/**
|
|
11
21
|
* Extract classifications for a single entity ON-DEMAND.
|
|
@@ -15,9 +25,25 @@ export interface ClassificationInfo {
|
|
|
15
25
|
* Returns an array of classification references with system info.
|
|
16
26
|
*/
|
|
17
27
|
export declare function extractClassificationsOnDemand(store: IfcDataStore, entityId: number): ClassificationInfo[];
|
|
28
|
+
/** Result of {@link extractClassificationSystemsOnDemand}. */
|
|
29
|
+
export interface ClassificationSystemNames {
|
|
30
|
+
/** Distinct system names, sorted. Empty when the model genuinely has no
|
|
31
|
+
* `IfcClassification` entities — check `unresolved` before reading an
|
|
32
|
+
* empty array as "no systems". */
|
|
33
|
+
names: string[];
|
|
34
|
+
/**
|
|
35
|
+
* True when the model DOES have `IfcClassification` entities (per the
|
|
36
|
+
* byType index) but their `Name` could not be read because this store
|
|
37
|
+
* has no source bytes — a server-parsed store (issue #3948), the same
|
|
38
|
+
* condition `extractClassificationsOnDemand` signals per-entity via
|
|
39
|
+
* `ClassificationInfo.unresolved`. When true, `names` is always `[]`
|
|
40
|
+
* and must not be read as "the model has no classification systems".
|
|
41
|
+
*/
|
|
42
|
+
unresolved: boolean;
|
|
43
|
+
}
|
|
18
44
|
/**
|
|
19
45
|
* List the distinct classification system names present in a model —
|
|
20
|
-
* CHEAP and EXACT.
|
|
46
|
+
* CHEAP and EXACT when source bytes are available.
|
|
21
47
|
*
|
|
22
48
|
* Unlike extractClassificationsOnDemand (which resolves classifications for
|
|
23
49
|
* ONE entity by walking its reference chain, and is only reachable through
|
|
@@ -30,5 +56,5 @@ export declare function extractClassificationsOnDemand(store: IfcDataStore, enti
|
|
|
30
56
|
* A model can carry SEVERAL systems at once (e.g. Uniclass, OmniClass, and
|
|
31
57
|
* a national system) — this returns all of them, sorted alphabetically.
|
|
32
58
|
*/
|
|
33
|
-
export declare function extractClassificationSystemsOnDemand(store: IfcDataStore):
|
|
59
|
+
export declare function extractClassificationSystemsOnDemand(store: IfcDataStore): ClassificationSystemNames;
|
|
34
60
|
//# sourceMappingURL=classification-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classification-resolver.d.ts","sourceRoot":"","sources":["../src/classification-resolver.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"classification-resolver.d.ts","sourceRoot":"","sources":["../src/classification-resolver.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GACjB,kBAAkB,EAAE,CAsFtB;AAED,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACtC;;uCAEmC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,YAAY,GAAG,yBAAyB,CA2BnG"}
|
|
@@ -45,8 +45,19 @@ export function extractClassificationsOnDemand(store, entityId) {
|
|
|
45
45
|
}
|
|
46
46
|
if (!classRefIds || classRefIds.length === 0)
|
|
47
47
|
return [];
|
|
48
|
-
if (!store.source?.length)
|
|
49
|
-
|
|
48
|
+
if (!store.source?.length) {
|
|
49
|
+
// Server-parsed / source-empty store: the relationship graph above
|
|
50
|
+
// already proves this entity (or its type) IS classified — the ids
|
|
51
|
+
// resolved into `classRefIds` are real `IfcRelAssociatesClassification`
|
|
52
|
+
// targets. But turning an id into system/identification/name/path
|
|
53
|
+
// needs raw STEP bytes (`EntityExtractor`), which this store doesn't
|
|
54
|
+
// have. Previously this silently returned `[]` here, making a
|
|
55
|
+
// classified entity byte-identical to a genuinely unclassified one
|
|
56
|
+
// (issue #3948). Surface one unresolved marker per resolved id
|
|
57
|
+
// instead, so callers — the IDS bridge in particular — can tell
|
|
58
|
+
// "classified, but this data source can't say more" from "none".
|
|
59
|
+
return classRefIds.map(() => ({ unresolved: true }));
|
|
60
|
+
}
|
|
50
61
|
const extractor = new EntityExtractor(store.source);
|
|
51
62
|
const results = [];
|
|
52
63
|
for (const classRefId of classRefIds) {
|
|
@@ -89,7 +100,7 @@ export function extractClassificationsOnDemand(store, entityId) {
|
|
|
89
100
|
}
|
|
90
101
|
/**
|
|
91
102
|
* List the distinct classification system names present in a model —
|
|
92
|
-
* CHEAP and EXACT.
|
|
103
|
+
* CHEAP and EXACT when source bytes are available.
|
|
93
104
|
*
|
|
94
105
|
* Unlike extractClassificationsOnDemand (which resolves classifications for
|
|
95
106
|
* ONE entity by walking its reference chain, and is only reachable through
|
|
@@ -104,8 +115,15 @@ export function extractClassificationsOnDemand(store, entityId) {
|
|
|
104
115
|
*/
|
|
105
116
|
export function extractClassificationSystemsOnDemand(store) {
|
|
106
117
|
const ids = store.entityIndex.byType.get('IFCCLASSIFICATION');
|
|
107
|
-
if (!ids || ids.length === 0
|
|
108
|
-
return [];
|
|
118
|
+
if (!ids || ids.length === 0)
|
|
119
|
+
return { names: [], unresolved: false };
|
|
120
|
+
if (!store.source?.length) {
|
|
121
|
+
// The model has classification systems (confirmed by the byType
|
|
122
|
+
// index), but reading their Name needs raw STEP bytes this
|
|
123
|
+
// server-parsed store doesn't carry. `[]` alone would be
|
|
124
|
+
// indistinguishable from "no systems" (issue #3948).
|
|
125
|
+
return { names: [], unresolved: true };
|
|
126
|
+
}
|
|
109
127
|
const extractor = new EntityExtractor(store.source);
|
|
110
128
|
const names = new Set();
|
|
111
129
|
for (const id of ids) {
|
|
@@ -120,7 +138,7 @@ export function extractClassificationSystemsOnDemand(store) {
|
|
|
120
138
|
if (typeof name === 'string' && name.length > 0)
|
|
121
139
|
names.add(name);
|
|
122
140
|
}
|
|
123
|
-
return Array.from(names).sort();
|
|
141
|
+
return { names: Array.from(names).sort(), unresolved: false };
|
|
124
142
|
}
|
|
125
143
|
/**
|
|
126
144
|
* Walk up the IfcClassificationReference chain to find the root IfcClassification system.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classification-resolver.js","sourceRoot":"","sources":["../src/classification-resolver.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"classification-resolver.js","sourceRoot":"","sources":["../src/classification-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-attributes.d.ts","sourceRoot":"","sources":["../src/columnar-parser-attributes.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"columnar-parser-attributes.d.ts","sourceRoot":"","sources":["../src/columnar-parser-attributes.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,UAAU,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAuDzB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBhG;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCxF;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAuB5F;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC7C,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,EAAE,EACjB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuF1D"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { decodeIfcString } from '@ifc-lite/encoding';
|
|
5
|
+
import { isIndexableExpressId } from './express-id.js';
|
|
5
6
|
/**
|
|
6
7
|
* Find the byte range of a quoted string at a specific attribute position in STEP entity bytes.
|
|
7
8
|
* Returns [start, end) byte offsets (excluding quotes), or null if not found.
|
|
@@ -47,8 +48,12 @@ export function findQuotedAttrRange(buffer, entityStart, entityLen, attrIndex) {
|
|
|
47
48
|
}
|
|
48
49
|
// Skip whitespace — including \n/\r: STEP records may wrap attributes
|
|
49
50
|
// across source lines, so a quoted attr can start on a new line
|
|
50
|
-
// (schependomlaan storey/covering-type names).
|
|
51
|
-
|
|
51
|
+
// (schependomlaan storey/covering-type names). Form feed (0x0C) and
|
|
52
|
+
// vertical tab (0x0B) are included too, kept in sync with isSpaceByte
|
|
53
|
+
// in step-lexing.ts (#3733): without them, a GlobalId/Name preceded by
|
|
54
|
+
// either byte silently fails to match here and this function returns
|
|
55
|
+
// null, the same drop shape the entity scanners had.
|
|
56
|
+
while (pos < end && (buffer[pos] === 0x20 || buffer[pos] === 0x09 || buffer[pos] === 0x0A || buffer[pos] === 0x0D || buffer[pos] === 0x0C || buffer[pos] === 0x0B))
|
|
52
57
|
pos++;
|
|
53
58
|
// Check for quoted string
|
|
54
59
|
if (pos >= end || buffer[pos] !== 0x27 /* ' */)
|
|
@@ -99,7 +104,10 @@ export function skipCommas(buffer, start, end, count) {
|
|
|
99
104
|
}
|
|
100
105
|
/** Read a #ID entity reference as a number. Returns -1 if not an entity ref. */
|
|
101
106
|
export function readRefId(buffer, pos, end) {
|
|
102
|
-
|
|
107
|
+
// Kept in sync with isSpaceByte in step-lexing.ts (#3733): form feed
|
|
108
|
+
// (0x0C) and vertical tab (0x0B) are legal separators too, or a ref
|
|
109
|
+
// preceded by either silently reads as "no reference here" (-1).
|
|
110
|
+
while (pos < end && (buffer[pos] === 0x20 || buffer[pos] === 0x09 || buffer[pos] === 0x0A || buffer[pos] === 0x0D || buffer[pos] === 0x0C || buffer[pos] === 0x0B))
|
|
103
111
|
pos++;
|
|
104
112
|
if (pos < end && buffer[pos] === 0x23) {
|
|
105
113
|
pos++;
|
|
@@ -108,19 +116,41 @@ export function readRefId(buffer, pos, end) {
|
|
|
108
116
|
num = num * 10 + (buffer[pos] - 0x30);
|
|
109
117
|
pos++;
|
|
110
118
|
}
|
|
119
|
+
// `num * 10 + digit` overflows to Infinity only past ~309 digits, but
|
|
120
|
+
// it stops meaning anything long before that: doubles lose integer
|
|
121
|
+
// precision past 2^53 (~16 digits), so `#100000000000000001` and
|
|
122
|
+
// `#100000000000000002` accumulate to the SAME value, and the 32-bit
|
|
123
|
+
// express-id columns below truncate anything above 2^32 so that
|
|
124
|
+
// `#4294967297` lands on `#1`. `isIndexableExpressId` is the single
|
|
125
|
+
// home for that bound (express-id.ts, #3395).
|
|
126
|
+
// Guarding at each accumulator (here, and both `StepTokenizer` scans,
|
|
127
|
+
// and the inline scan worker) rather than only when the entity is
|
|
128
|
+
// extracted: this is the byte-level path that builds the
|
|
129
|
+
// property/relationship indexes, so an unguarded overflow here keyed a
|
|
130
|
+
// pset under a record the entity index had already refused —
|
|
131
|
+
// `extractPropertiesOnDemand(store, Infinity)` returned a real pset for
|
|
132
|
+
// an entity whose own GlobalId and Name were unreadable.
|
|
133
|
+
//
|
|
134
|
+
// `-1` is this function's existing "no reference here" sentinel and
|
|
135
|
+
// every caller already tests it (`if (relating < 0) return null`,
|
|
136
|
+
// `if (id >= 0) ids.push(id)`). `pos` is still returned advanced past
|
|
137
|
+
// the digits so scanning continues from the right place.
|
|
138
|
+
if (!isIndexableExpressId(num))
|
|
139
|
+
return [-1, pos];
|
|
111
140
|
return [num, pos];
|
|
112
141
|
}
|
|
113
142
|
return [-1, pos];
|
|
114
143
|
}
|
|
115
144
|
/** Read a list of entity refs (#id1,#id2,...) or a single #id. Returns [ids, newPos]. */
|
|
116
145
|
export function readRefList(buffer, pos, end) {
|
|
117
|
-
|
|
146
|
+
// Kept in sync with isSpaceByte in step-lexing.ts (#3733).
|
|
147
|
+
while (pos < end && (buffer[pos] === 0x20 || buffer[pos] === 0x09 || buffer[pos] === 0x0A || buffer[pos] === 0x0D || buffer[pos] === 0x0C || buffer[pos] === 0x0B))
|
|
118
148
|
pos++;
|
|
119
149
|
const ids = [];
|
|
120
150
|
if (pos < end && buffer[pos] === 0x28) {
|
|
121
151
|
pos++;
|
|
122
152
|
while (pos < end && buffer[pos] !== 0x29) {
|
|
123
|
-
while (pos < end && (buffer[pos] === 0x20 || buffer[pos] === 0x09 || buffer[pos] === 0x0A || buffer[pos] === 0x0D || buffer[pos] === 0x2C))
|
|
153
|
+
while (pos < end && (buffer[pos] === 0x20 || buffer[pos] === 0x09 || buffer[pos] === 0x0A || buffer[pos] === 0x0D || buffer[pos] === 0x0C || buffer[pos] === 0x0B || buffer[pos] === 0x2C))
|
|
124
154
|
pos++;
|
|
125
155
|
if (pos < end && buffer[pos] === 0x23) {
|
|
126
156
|
const [id, np] = readRefId(buffer, pos, end);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-attributes.js","sourceRoot":"","sources":["../src/columnar-parser-attributes.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"columnar-parser-attributes.js","sourceRoot":"","sources":["../src/columnar-parser-attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-indexes.d.ts","sourceRoot":"","sources":["../src/columnar-parser-indexes.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACH,gBAAgB,EAChB,YAAY,EACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAC9D,CAAC;AAaF,eAAO,MAAM,cAAc,aAWzB,CAAC;AAIH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"columnar-parser-indexes.d.ts","sourceRoot":"","sources":["../src/columnar-parser-indexes.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACH,gBAAgB,EAChB,YAAY,EACf,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAC9D,CAAC;AAaF,eAAO,MAAM,cAAc,aAWzB,CAAC;AAIH,eAAO,MAAM,kBAAkB,aAgB7B,CAAC;AAIH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAyBzD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAS1D,CAAC;AAGF,eAAO,MAAM,aAAa,aAOxB,CAAC;AAGH,eAAO,MAAM,mBAAmB,aAqB9B,CAAC;AAGH,eAAO,MAAM,kBAAkB,aAE7B,CAAC;AAGH,eAAO,MAAM,qBAAqB,aAGhC,CAAC;AAGH,eAAO,MAAM,kBAAkB,aAAsH,CAAC;AAGtJ,eAAO,MAAM,qBAAqB,aAQhC,CAAC;AAEH,eAAO,MAAM,wBAAwB,aAGnC,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9D"}
|
|
@@ -36,7 +36,12 @@ export const RELATIONSHIP_TYPES = new Set([
|
|
|
36
36
|
'IFCRELCONNECTSPATHELEMENTS', 'IFCRELCONNECTSELEMENTS',
|
|
37
37
|
'IFCRELCONNECTSPORTTOELEMENT', 'IFCRELCONNECTSPORTS',
|
|
38
38
|
'IFCRELSPACEBOUNDARY',
|
|
39
|
-
|
|
39
|
+
// IfcRelAssignsToGroupByFactor is a subtype of IfcRelAssignsToGroup
|
|
40
|
+
// (adds a proportional Factor attribute, e.g. zone occupancy share) and
|
|
41
|
+
// is written to STEP with its own distinct entity keyword — it does not
|
|
42
|
+
// match the 'IFCRELASSIGNSTOGROUP' string, so it needs its own entry or
|
|
43
|
+
// every membership assigned through it is silently invisible.
|
|
44
|
+
'IFCRELASSIGNSTOGROUP', 'IFCRELASSIGNSTOGROUPBYFACTOR', 'IFCRELASSIGNSTOPRODUCT',
|
|
40
45
|
'IFCRELREFERENCEDINSPATIALSTRUCTURE',
|
|
41
46
|
]);
|
|
42
47
|
// Map IFC relationship type strings to RelationshipType enum
|
|
@@ -61,6 +66,9 @@ export const REL_TYPE_MAP = {
|
|
|
61
66
|
'IFCRELCONNECTSPORTS': RelationshipType.ConnectsPorts,
|
|
62
67
|
'IFCRELSPACEBOUNDARY': RelationshipType.SpaceBoundary,
|
|
63
68
|
'IFCRELASSIGNSTOGROUP': RelationshipType.AssignsToGroup,
|
|
69
|
+
// Subtype of IfcRelAssignsToGroup (adds a Factor); same RelatingGroup /
|
|
70
|
+
// RelatedObjects membership semantics, so it shares the same edge type.
|
|
71
|
+
'IFCRELASSIGNSTOGROUPBYFACTOR': RelationshipType.AssignsToGroup,
|
|
64
72
|
'IFCRELASSIGNSTOPRODUCT': RelationshipType.AssignsToProduct,
|
|
65
73
|
'IFCRELREFERENCEDINSPATIALSTRUCTURE': RelationshipType.ReferencedInSpatialStructure,
|
|
66
74
|
};
|
|
@@ -99,7 +107,11 @@ export const HIERARCHY_REL_TYPES = new Set([
|
|
|
99
107
|
// themselves were parsed.
|
|
100
108
|
'IFCRELCONNECTSPORTTOELEMENT', 'IFCRELCONNECTSPORTS',
|
|
101
109
|
'IFCRELSPACEBOUNDARY',
|
|
102
|
-
|
|
110
|
+
// IfcRelAssignsToGroupByFactor is a distinct STEP keyword (subtype of
|
|
111
|
+
// IfcRelAssignsToGroup); omitting it here means it never reaches
|
|
112
|
+
// relationshipRefs / extractRelFast, so every group/zone/system
|
|
113
|
+
// membership assigned through it is silently dropped.
|
|
114
|
+
'IFCRELASSIGNSTOGROUP', 'IFCRELASSIGNSTOGROUPBYFACTOR', 'IFCRELASSIGNSTOPRODUCT',
|
|
103
115
|
'IFCRELREFERENCEDINSPATIALSTRUCTURE',
|
|
104
116
|
]);
|
|
105
117
|
// Relationship types for on-demand property loading
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-indexes.js","sourceRoot":"","sources":["../src/columnar-parser-indexes.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D,OAAO,EACH,gBAAgB,EAChB,YAAY,GACf,MAAM,gBAAgB,CAAC;AAmBxB,2CAA2C;AAC3C,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,0EAA0E;AAC1E,mEAAmE;AACnE,yEAAyE;AACzE,kEAAkE;AAClE,qEAAqE;AACrE,oEAAoE;AACpE,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,qEAAqE;IACrE,mEAAmE;IACnE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;IACnE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB;IAC/D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW;IACjE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB;IACpE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB;IAC3D,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB;IACtE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa;CAC/D,CAAC,CAAC;AAEH,6FAA6F;AAC7F,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACtC,mCAAmC,EAAE,kBAAkB;IACvD,2BAA2B,EAAE,qBAAqB;IAClD,0BAA0B,EAAE,gCAAgC;IAC5D,0BAA0B;IAC1B,oBAAoB,EAAE,oBAAoB;IAC1C,4BAA4B,EAAE,wBAAwB;IACtD,6BAA6B,EAAE,qBAAqB;IACpD,qBAAqB;IACrB,sBAAsB,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"columnar-parser-indexes.js","sourceRoot":"","sources":["../src/columnar-parser-indexes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-relationships.d.ts","sourceRoot":"","sources":["../src/columnar-parser-relationships.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"columnar-parser-relationships.d.ts","sourceRoot":"","sources":["../src/columnar-parser-relationships.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CA6E7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAClC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACnB;IAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAkB7D"}
|
|
@@ -37,7 +37,12 @@ export function extractRelFast(buffer, byteOffset, byteLength, typeUpper) {
|
|
|
37
37
|
return null;
|
|
38
38
|
return { relatingObject: relating, relatedObjects: related };
|
|
39
39
|
}
|
|
40
|
-
else if (typeUpper === 'IFCRELASSIGNSTOGROUP'
|
|
40
|
+
else if (typeUpper === 'IFCRELASSIGNSTOGROUP'
|
|
41
|
+
// Subtype of IfcRelAssignsToGroup: same attr[4]=RelatedObjects,
|
|
42
|
+
// attr[5]=RelatedObjectsType, attr[6]=RelatingGroup layout, plus a
|
|
43
|
+
// trailing Factor we don't need to read.
|
|
44
|
+
|| typeUpper === 'IFCRELASSIGNSTOGROUPBYFACTOR'
|
|
45
|
+
|| typeUpper === 'IFCRELASSIGNSTOPRODUCT') {
|
|
41
46
|
const [related, rp] = readRefList(buffer, pos, end);
|
|
42
47
|
// `readRefList` returns `rp` pointing AT the closing `)` of
|
|
43
48
|
// the list. `skipCommas` tracks paren depth, so leaving `rp`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnar-parser-relationships.js","sourceRoot":"","sources":["../src/columnar-parser-relationships.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAErF;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,MAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,SAAiB;IAEjB,MAAM,GAAG,GAAG,UAAU,GAAG,UAAU,CAAC;IACpC,IAAI,GAAG,GAAG,UAAU,CAAC;IAErB,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;QAAE,GAAG,EAAE,CAAC;IAChD,IAAI,GAAG,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC;IAEN,6FAA6F;IAC7F,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,mCAAmC;WAC9C,SAAS,KAAK,oCAAoC;WAClD,SAAS,KAAK,2BAA2B;WACzC,SAAS,KAAK,qBAAqB,EAAE,CAAC;QACzC,iDAAiD;QACjD,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpD,GAAG,GAAG,EAAE,CAAC;QACT,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,GAAG,EAAE,CAAC;QAChD,GAAG,EAAE,CAAC;QACN,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,QAAQ,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;SAAM,
|
|
1
|
+
{"version":3,"file":"columnar-parser-relationships.js","sourceRoot":"","sources":["../src/columnar-parser-relationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,7 @@ export declare class ColumnarParser {
|
|
|
113
113
|
*/
|
|
114
114
|
extractQuantitiesOnDemand(store: IfcDataStore, entityId: number): Array<{
|
|
115
115
|
name: string;
|
|
116
|
+
globalId?: string;
|
|
116
117
|
quantities: Array<{
|
|
117
118
|
name: string;
|
|
118
119
|
type: number;
|
|
@@ -141,6 +142,7 @@ export declare function extractPropertiesOnDemand(store: IfcDataStore, entityId:
|
|
|
141
142
|
*/
|
|
142
143
|
export declare function extractQuantitiesOnDemand(store: IfcDataStore, entityId: number): Array<{
|
|
143
144
|
name: string;
|
|
145
|
+
globalId?: string;
|
|
144
146
|
quantities: Array<{
|
|
145
147
|
name: string;
|
|
146
148
|
type: number;
|
|
@@ -209,6 +211,6 @@ export declare function extractRootAttributesFromEntity(entity: IfcEntity): {
|
|
|
209
211
|
*/
|
|
210
212
|
export declare function pickLongName(entity: IfcEntity): string;
|
|
211
213
|
export { extractClassificationsOnDemand, extractClassificationSystemsOnDemand, extractMaterialsOnDemand, extractAllMaterialsOnDemand, extractMaterialPropertiesOnDemand, extractMaterialPropertiesForMaterialId, resolveMaterialDefId, resolveAllMaterialDefIds, collectMaterialLeaves, buildMaterialUsageIndex, getMaterialDisplay, extractTypePropertiesOnDemand, extractTypeEntityOwnProperties, extractTypeQuantitiesOnDemand, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractGroupMembersOnDemand, extractGeoreferencingOnDemand, parsePropertyValue, extractPsetsFromIds, extractQsetsFromIds, } from './on-demand-extractors.js';
|
|
212
|
-
export { mergeInheritedPropertySets } from './property-set-merge.js';
|
|
213
|
-
export type { ClassificationInfo, MaterialInfo, MaterialLayerInfo, MaterialProfileInfo, MaterialConstituentInfo, MaterialPsetGroup, MaterialLeaf, MaterialUsage, TypePropertyInfo, TypeQuantityInfo, DocumentInfo, EntityRelationships, GroupMember, GeorefInfo, } from './on-demand-extractors.js';
|
|
214
|
+
export { mergeInheritedPropertySets, mergeInheritedQuantitySets } from './property-set-merge.js';
|
|
215
|
+
export type { ClassificationInfo, ClassificationSystemNames, MaterialInfo, MaterialLayerInfo, MaterialProfileInfo, MaterialConstituentInfo, MaterialPsetGroup, MaterialLeaf, MaterialUsage, TypePropertyInfo, TypeQuantityInfo, DocumentInfo, EntityRelationships, GroupMember, GeorefInfo, } from './on-demand-extractors.js';
|
|
214
216
|
//# sourceMappingURL=columnar-parser.d.ts.map
|
|
@@ -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;AAS5C,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EAEpB,wBAAwB,EAE3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAoB,aAAa,EAAE,aAAa,EAA4B,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAkB3J,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"columnar-parser.d.ts","sourceRoot":"","sources":["../src/columnar-parser.ts"],"names":[],"mappings":"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"}
|