@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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owning-`IFCPROJECT` resolution for a multi-project IFC file.
|
|
3
|
+
*
|
|
4
|
+
* Split out of unit-extractor.ts: this module's containment walk is a
|
|
5
|
+
* self-contained concern (spatial-graph traversal) that {@link
|
|
6
|
+
* resolveEntityLengthUnitScale} in unit-extractor.ts composes with unit
|
|
7
|
+
* extraction, but does not itself need any of unit-extractor.ts's unit
|
|
8
|
+
* tables or IFCUNITASSIGNMENT parsing.
|
|
9
|
+
*/
|
|
10
|
+
import type { EntityRef } from './types.js';
|
|
11
|
+
import { RelationshipType } from '@ifc-lite/data';
|
|
12
|
+
/** Minimal relationship-graph surface {@link resolveOwningIfcProjectId} needs. */
|
|
13
|
+
export interface RelatedLookup {
|
|
14
|
+
getRelated(entityId: number, relType: RelationshipType, direction: 'forward' | 'inverse'): number[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the express id of the `IFCPROJECT` that owns `expressId`, for files
|
|
18
|
+
* that legitimately contain more than one `IFCPROJECT` — the shape
|
|
19
|
+
* `MergedExporter`'s documented `auto` unit-reconciliation mode produces for
|
|
20
|
+
* a federated merge of differently-unit'd models (see issue #1332). An
|
|
21
|
+
* ordinary IFC file has exactly one `IFCPROJECT` by EXPRESS invariant, so
|
|
22
|
+
* this is a no-op fast path there.
|
|
23
|
+
*
|
|
24
|
+
* `extractLengthUnitScale`/`extractProjectUnits` resolve the file's FIRST
|
|
25
|
+
* `IFCPROJECT` only unless given an explicit `projectId`; every entity
|
|
26
|
+
* belonging to a LATER project in a multi-project file was silently read
|
|
27
|
+
* against the first project's units. Callers needing per-entity correctness
|
|
28
|
+
* (both {@link resolveEntityLengthUnitScale} in unit-extractor.ts and
|
|
29
|
+
* `@ifc-lite/ids`'s area/volume resolution, which needs the project id
|
|
30
|
+
* itself rather than just a length scale) resolve this id first and pass it
|
|
31
|
+
* on to `extractLengthUnitScale`/`extractProjectUnits`'s `projectId`
|
|
32
|
+
* parameter.
|
|
33
|
+
*
|
|
34
|
+
* Walks the entity's real spatial containment up to its own project:
|
|
35
|
+
* `IfcRelContainedInSpatialStructure` (element → structure), then
|
|
36
|
+
* `IfcRelAggregates` (child → parent, repeated to the project), with an
|
|
37
|
+
* `IfcRelDefinesByType` (type → one of the objects it defines) hop for a
|
|
38
|
+
* type entity that has no containment of its own. Containment is tried
|
|
39
|
+
* first since it's the one-hop case for the common "element straight into
|
|
40
|
+
* its storey" shape.
|
|
41
|
+
*
|
|
42
|
+
* @returns The owning project's express id, or `undefined` when the file has
|
|
43
|
+
* zero or one `IFCPROJECT` (nothing to resolve) or the walk can't reach one
|
|
44
|
+
* (e.g. a resource-level entity with no containment, a cyclic/malformed
|
|
45
|
+
* graph). Callers should fall back to the file's default project on
|
|
46
|
+
* `undefined`, matching prior single-project behaviour.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveOwningIfcProjectId(entityIndex: {
|
|
49
|
+
byId: {
|
|
50
|
+
get(expressId: number): EntityRef | undefined;
|
|
51
|
+
};
|
|
52
|
+
byType: Map<string, number[]>;
|
|
53
|
+
}, relationships: RelatedLookup | undefined, expressId: number): number | undefined;
|
|
54
|
+
//# sourceMappingURL=owning-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owning-project.d.ts","sourceRoot":"","sources":["../src/owning-project.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;CACrG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE;IAAE,IAAI,EAAE;QAAE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;KAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAAE,EACvG,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAqCpB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { RelationshipType } from '@ifc-lite/data';
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the express id of the `IFCPROJECT` that owns `expressId`, for files
|
|
7
|
+
* that legitimately contain more than one `IFCPROJECT` — the shape
|
|
8
|
+
* `MergedExporter`'s documented `auto` unit-reconciliation mode produces for
|
|
9
|
+
* a federated merge of differently-unit'd models (see issue #1332). An
|
|
10
|
+
* ordinary IFC file has exactly one `IFCPROJECT` by EXPRESS invariant, so
|
|
11
|
+
* this is a no-op fast path there.
|
|
12
|
+
*
|
|
13
|
+
* `extractLengthUnitScale`/`extractProjectUnits` resolve the file's FIRST
|
|
14
|
+
* `IFCPROJECT` only unless given an explicit `projectId`; every entity
|
|
15
|
+
* belonging to a LATER project in a multi-project file was silently read
|
|
16
|
+
* against the first project's units. Callers needing per-entity correctness
|
|
17
|
+
* (both {@link resolveEntityLengthUnitScale} in unit-extractor.ts and
|
|
18
|
+
* `@ifc-lite/ids`'s area/volume resolution, which needs the project id
|
|
19
|
+
* itself rather than just a length scale) resolve this id first and pass it
|
|
20
|
+
* on to `extractLengthUnitScale`/`extractProjectUnits`'s `projectId`
|
|
21
|
+
* parameter.
|
|
22
|
+
*
|
|
23
|
+
* Walks the entity's real spatial containment up to its own project:
|
|
24
|
+
* `IfcRelContainedInSpatialStructure` (element → structure), then
|
|
25
|
+
* `IfcRelAggregates` (child → parent, repeated to the project), with an
|
|
26
|
+
* `IfcRelDefinesByType` (type → one of the objects it defines) hop for a
|
|
27
|
+
* type entity that has no containment of its own. Containment is tried
|
|
28
|
+
* first since it's the one-hop case for the common "element straight into
|
|
29
|
+
* its storey" shape.
|
|
30
|
+
*
|
|
31
|
+
* @returns The owning project's express id, or `undefined` when the file has
|
|
32
|
+
* zero or one `IFCPROJECT` (nothing to resolve) or the walk can't reach one
|
|
33
|
+
* (e.g. a resource-level entity with no containment, a cyclic/malformed
|
|
34
|
+
* graph). Callers should fall back to the file's default project on
|
|
35
|
+
* `undefined`, matching prior single-project behaviour.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveOwningIfcProjectId(entityIndex, relationships, expressId) {
|
|
38
|
+
const projectIds = entityIndex.byType.get('IFCPROJECT') || [];
|
|
39
|
+
if (projectIds.length <= 1)
|
|
40
|
+
return undefined;
|
|
41
|
+
if (!relationships)
|
|
42
|
+
return undefined;
|
|
43
|
+
const projectIdSet = new Set(projectIds);
|
|
44
|
+
const visited = new Set();
|
|
45
|
+
let current = expressId;
|
|
46
|
+
// Terminates on any input: each pass either returns or adds `current` to
|
|
47
|
+
// `visited`, and the next pass returns on a revisit — so a malformed file's
|
|
48
|
+
// containment cycle ends the walk instead of spinning.
|
|
49
|
+
while (current !== undefined) {
|
|
50
|
+
if (projectIdSet.has(current))
|
|
51
|
+
return current;
|
|
52
|
+
if (visited.has(current))
|
|
53
|
+
return undefined; // containment cycle
|
|
54
|
+
visited.add(current);
|
|
55
|
+
const containers = relationships.getRelated(current, RelationshipType.ContainsElements, 'inverse');
|
|
56
|
+
if (containers.length > 0) {
|
|
57
|
+
current = containers[0];
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const parents = relationships.getRelated(current, RelationshipType.Aggregates, 'inverse');
|
|
61
|
+
if (parents.length > 0) {
|
|
62
|
+
current = parents[0];
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
// Resource-level entity with no containment of its own (e.g. a type
|
|
66
|
+
// like IfcWallType): hop to an object it defines and keep walking.
|
|
67
|
+
const definedObjects = relationships.getRelated(current, RelationshipType.DefinesByType, 'forward');
|
|
68
|
+
if (definedObjects.length > 0) {
|
|
69
|
+
current = definedObjects[0];
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=owning-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owning-project.js","sourceRoot":"","sources":["../src/owning-project.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAa/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAuG,EACvG,aAAwC,EACxC,SAAiB;IAEjB,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,OAAO,GAAuB,SAAS,CAAC;IAE5C,yEAAyE;IACzE,4EAA4E;IAC5E,uDAAuD;IACvD,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,oBAAoB;QAChE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErB,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACnG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,SAAS;QACX,CAAC;QACD,oEAAoE;QACpE,mEAAmE;QACnE,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACpG,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/parser.worker.d.ts
CHANGED
|
@@ -22,6 +22,20 @@ export interface ParserWorkerEntityIndexMessage {
|
|
|
22
22
|
ids: Uint32Array;
|
|
23
23
|
starts: Uint32Array;
|
|
24
24
|
lengths: Uint32Array;
|
|
25
|
+
/**
|
|
26
|
+
* Records the pre-pass refused for an express id above the u32 storage
|
|
27
|
+
* bound (#3395). Absent from `ids` by construction, so the count has to be
|
|
28
|
+
* handed over with the columns or the parse reports a clean load that is
|
|
29
|
+
* quietly short. Optional: an older host sends the three columns only.
|
|
30
|
+
*/
|
|
31
|
+
oversizedIdCount?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the pre-pass stopped early at a record whose quoted string or
|
|
34
|
+
* block comment never closed (#3790). 0 or 1. Everything after that byte is
|
|
35
|
+
* missing from the columns, so this is the only evidence the parse gets.
|
|
36
|
+
* Optional: an older host sends the three columns only.
|
|
37
|
+
*/
|
|
38
|
+
malformedRecordCount?: number;
|
|
25
39
|
}
|
|
26
40
|
/** Progress update from the worker. */
|
|
27
41
|
export interface ParserWorkerProgressMessage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.worker.d.ts","sourceRoot":"","sources":["../src/parser.worker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.worker.d.ts","sourceRoot":"","sources":["../src/parser.worker.ts"],"names":[],"mappings":"AAuBA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAGnC,gFAAgF;AAChF,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,uFAAuF;AACvF,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,kBAAkB,CAAC;IACzB,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,uCAAuC;AACvC,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,kFAAkF;AAClF,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wFAAwF;AACxF,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED,gCAAgC;AAChC,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB;;;uEAGmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,yBAAyB,GACjC,2BAA2B,GAC3B,6BAA6B,GAC7B,+BAA+B,GAC/B,2BAA2B,GAC3B,wBAAwB,CAAC"}
|
package/dist/parser.worker.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import init, { IfcAPI } from '@ifc-lite/wasm';
|
|
17
17
|
import { initWasmWithRetry } from './wasm-init-retry.js';
|
|
18
18
|
import { IfcParser } from './index.js';
|
|
19
|
+
import { extractGeoreferencingOnDemand } from './on-demand-georeferencing.js';
|
|
19
20
|
import { toTransport, transportByteSize, } from './data-store-transport.js';
|
|
20
21
|
import { takeWasmPanicStash } from './wasm-panic-forward.js';
|
|
21
22
|
function readJsHeapBytes() {
|
|
@@ -114,6 +115,8 @@ self.onmessage = async (event) => {
|
|
|
114
115
|
ids: data.ids,
|
|
115
116
|
starts: data.starts,
|
|
116
117
|
lengths: data.lengths,
|
|
118
|
+
oversizedIdCount: data.oversizedIdCount,
|
|
119
|
+
malformedRecordCount: data.malformedRecordCount,
|
|
117
120
|
};
|
|
118
121
|
if (entityIndexWaiter) {
|
|
119
122
|
const resolve = entityIndexWaiter;
|
|
@@ -129,9 +132,8 @@ self.onmessage = async (event) => {
|
|
|
129
132
|
try {
|
|
130
133
|
// The SAB itself is shared by reference — both this worker and the
|
|
131
134
|
// main thread (and the geometry workers) hold views of the same bytes.
|
|
132
|
-
// We never transfer or clone it.
|
|
133
|
-
//
|
|
134
|
-
// by the wrapper before this worker is even spawned.
|
|
135
|
+
// We never transfer or clone it. The parser's UTF-8 reader also supports
|
|
136
|
+
// runtimes that reject TextDecoder over SAB-backed views.
|
|
135
137
|
//
|
|
136
138
|
// Initialise the WASM scanner. `parseColumnar` prefers the WASM scan when
|
|
137
139
|
// `wasmApi` is supplied (5–10× faster on huge files — a 14 M-entity, 986 MB
|
|
@@ -177,6 +179,7 @@ self.onmessage = async (event) => {
|
|
|
177
179
|
// index were somehow empty, the scanner falls through to the JS tokeniser.
|
|
178
180
|
const wasmApi = wasmApiPromise ? await wasmApiPromise : undefined;
|
|
179
181
|
const parser = new IfcParser();
|
|
182
|
+
let georeferencing;
|
|
180
183
|
// `source` is the SAB-backed payload — `parseColumnar` accepts
|
|
181
184
|
// `ArrayBuffer | SharedArrayBuffer` so no cast is needed.
|
|
182
185
|
const dataStore = await parser.parseColumnar(source, {
|
|
@@ -195,6 +198,13 @@ self.onmessage = async (event) => {
|
|
|
195
198
|
onSpatialReady: (partialStore) => {
|
|
196
199
|
try {
|
|
197
200
|
const { payload } = toTransport(partialStore);
|
|
201
|
+
// #3983: overlays and Cesium availability read these during React
|
|
202
|
+
// rendering. Do the full-source/hash and property-set walks here.
|
|
203
|
+
payload.sourceContentKey = partialStore.source.contentKey;
|
|
204
|
+
if (!deferPropertyAtomIndex) {
|
|
205
|
+
georeferencing = extractGeoreferencingOnDemand(partialStore);
|
|
206
|
+
payload.georeferencing = georeferencing;
|
|
207
|
+
}
|
|
198
208
|
// We intentionally do NOT transfer the partial typed-array
|
|
199
209
|
// buffers. The worker keeps using them for the rest of the parse
|
|
200
210
|
// (entityIndex.byId.get(...) etc. all read from these arrays).
|
|
@@ -212,6 +222,9 @@ self.onmessage = async (event) => {
|
|
|
212
222
|
},
|
|
213
223
|
});
|
|
214
224
|
const { payload, transfers } = toTransport(dataStore);
|
|
225
|
+
payload.sourceContentKey = dataStore.source.contentKey;
|
|
226
|
+
payload.georeferencing = georeferencing === undefined
|
|
227
|
+
? extractGeoreferencingOnDemand(dataStore) : georeferencing;
|
|
215
228
|
// CRITICAL: every field here MUST be synchronous. Do NOT await on this path —
|
|
216
229
|
// it gates the 'complete' message (the full data store) reaching the main thread.
|
|
217
230
|
// This previously `await`ed performance.measureUserAgentSpecificMemory(); in a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.worker.js","sourceRoot":"","sources":["../src/parser.worker.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;GAWG;AAEH,OAAO,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.worker.js","sourceRoot":"","sources":["../src/parser.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Symbol tables + composition helpers for {@link ../project-units.ts}: the
|
|
3
|
+
* SI prefix/unit-name tables (mirror `project_units/symbols.rs`), the
|
|
4
|
+
* `IfcConversionBasedUnit`/currency symbol lookups, derived-unit symbol
|
|
5
|
+
* composition, and the measure-value-type → unit-type table (mirror
|
|
6
|
+
* `project_units/measure.rs`). Split out of `project-units.ts` to stay
|
|
7
|
+
* under the module-size budget; no behavioral boundary is implied, this is
|
|
8
|
+
* purely `project-units.ts`'s private lookup-table half.
|
|
9
|
+
*/
|
|
10
|
+
/** How a measure value type maps onto the file's declared units. */
|
|
11
|
+
export type MeasureUnit = {
|
|
12
|
+
kind: 'typed';
|
|
13
|
+
unitType: string;
|
|
14
|
+
defaultSymbol: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'monetary';
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'dimensionless';
|
|
19
|
+
};
|
|
20
|
+
/** Symbol + SI scale for a prefixed `IfcSIUnit`. */
|
|
21
|
+
export declare function siUnitSymbolAndScale(name: string, prefix: string | null): {
|
|
22
|
+
symbol: string;
|
|
23
|
+
scale: number;
|
|
24
|
+
} | undefined;
|
|
25
|
+
/** Friendly symbol for a common `IfcConversionBasedUnit` name. */
|
|
26
|
+
export declare function conversionUnitSymbol(name: string): string;
|
|
27
|
+
/** Compose a derived-unit symbol from `(symbol, exponent)` pairs. */
|
|
28
|
+
export declare function composeDerived(elements: Array<[string, number]>): string;
|
|
29
|
+
export declare function currencySymbol(code: string): string;
|
|
30
|
+
/** Resolve a measure value type name (case-insensitive, with or without the
|
|
31
|
+
* leading `IFC`) to its unit mapping. `undefined` for non-measure value types. */
|
|
32
|
+
export declare function measureUnit(measureType: string): MeasureUnit | undefined;
|
|
33
|
+
//# sourceMappingURL=project-units-symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-units-symbols.d.ts","sourceRoot":"","sources":["../src/project-units-symbols.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,oEAAoE;AACpE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAuE9B,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAUvH;AAED,kEAAkE;AAClE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BzD;AAYD,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAaxE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUnD;AA6GD;mFACmF;AACnF,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAIxE"}
|
|
@@ -0,0 +1,265 @@
|
|
|
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
|
+
// SI prefix + unit-name symbol tables (mirror project_units/symbols.rs)
|
|
6
|
+
// ============================================================================
|
|
7
|
+
const SI_PREFIX_MULTIPLIERS = {
|
|
8
|
+
ATTO: 1e-18, FEMTO: 1e-15, PICO: 1e-12, NANO: 1e-9, MICRO: 1e-6, MILLI: 1e-3,
|
|
9
|
+
CENTI: 1e-2, DECI: 1e-1, DECA: 1e1, HECTO: 1e2, KILO: 1e3, MEGA: 1e6,
|
|
10
|
+
GIGA: 1e9, TERA: 1e12, PETA: 1e15, EXA: 1e18,
|
|
11
|
+
};
|
|
12
|
+
const SI_PREFIX_SYMBOLS = {
|
|
13
|
+
EXA: 'E', PETA: 'P', TERA: 'T', GIGA: 'G', MEGA: 'M', KILO: 'k', HECTO: 'h',
|
|
14
|
+
DECA: 'da', DECI: 'd', CENTI: 'c', MILLI: 'm', MICRO: 'µ', NANO: 'n',
|
|
15
|
+
PICO: 'p', FEMTO: 'f', ATTO: 'a',
|
|
16
|
+
};
|
|
17
|
+
/** Resolve an `IfcSIUnitName` token to its symbol descriptor. */
|
|
18
|
+
function siUnitName(name) {
|
|
19
|
+
const n = name.replace(/\./g, '').trim().toUpperCase();
|
|
20
|
+
const d = (symbol) => ({ symbol, prefixPower: 1, baseScale: 1.0 });
|
|
21
|
+
switch (n) {
|
|
22
|
+
case 'METRE': return d('m');
|
|
23
|
+
case 'SQUARE_METRE': return { symbol: 'm²', prefixPower: 2, baseScale: 1.0 };
|
|
24
|
+
case 'CUBIC_METRE': return { symbol: 'm³', prefixPower: 3, baseScale: 1.0 };
|
|
25
|
+
case 'GRAM': return { symbol: 'g', prefixPower: 1, baseScale: 1e-3 };
|
|
26
|
+
case 'SECOND': return d('s');
|
|
27
|
+
case 'AMPERE': return d('A');
|
|
28
|
+
case 'KELVIN': return d('K');
|
|
29
|
+
case 'MOLE': return d('mol');
|
|
30
|
+
case 'CANDELA': return d('cd');
|
|
31
|
+
case 'RADIAN': return d('rad');
|
|
32
|
+
case 'STERADIAN': return d('sr');
|
|
33
|
+
case 'HERTZ': return d('Hz');
|
|
34
|
+
case 'NEWTON': return d('N');
|
|
35
|
+
case 'PASCAL': return d('Pa');
|
|
36
|
+
case 'JOULE': return d('J');
|
|
37
|
+
case 'WATT': return d('W');
|
|
38
|
+
case 'COULOMB': return d('C');
|
|
39
|
+
case 'VOLT': return d('V');
|
|
40
|
+
case 'FARAD': return d('F');
|
|
41
|
+
case 'OHM': return d('Ω');
|
|
42
|
+
case 'SIEMENS': return d('S');
|
|
43
|
+
case 'WEBER': return d('Wb');
|
|
44
|
+
case 'TESLA': return d('T');
|
|
45
|
+
case 'HENRY': return d('H');
|
|
46
|
+
case 'DEGREE_CELSIUS': return d('°C');
|
|
47
|
+
case 'LUMEN': return d('lm');
|
|
48
|
+
case 'LUX': return d('lx');
|
|
49
|
+
case 'BECQUEREL': return d('Bq');
|
|
50
|
+
case 'GRAY': return d('Gy');
|
|
51
|
+
case 'SIEVERT': return d('Sv');
|
|
52
|
+
default: return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function prefixSymbol(prefix) {
|
|
56
|
+
return SI_PREFIX_SYMBOLS[prefix.replace(/\./g, '').trim().toUpperCase()] ?? '';
|
|
57
|
+
}
|
|
58
|
+
function prefixMultiplier(prefix) {
|
|
59
|
+
return SI_PREFIX_MULTIPLIERS[prefix.replace(/\./g, '').trim().toUpperCase()] ?? 1.0;
|
|
60
|
+
}
|
|
61
|
+
/** Symbol + SI scale for a prefixed `IfcSIUnit`. */
|
|
62
|
+
export function siUnitSymbolAndScale(name, prefix) {
|
|
63
|
+
const base = siUnitName(name);
|
|
64
|
+
if (!base)
|
|
65
|
+
return undefined;
|
|
66
|
+
const cleanPrefix = prefix ? prefix.replace(/\./g, '').trim() : '';
|
|
67
|
+
const pSym = cleanPrefix ? prefixSymbol(cleanPrefix) : '';
|
|
68
|
+
const pMult = cleanPrefix ? prefixMultiplier(cleanPrefix) : 1.0;
|
|
69
|
+
return {
|
|
70
|
+
symbol: `${pSym}${base.symbol}`,
|
|
71
|
+
scale: base.baseScale * Math.pow(pMult, base.prefixPower),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** Friendly symbol for a common `IfcConversionBasedUnit` name. */
|
|
75
|
+
export function conversionUnitSymbol(name) {
|
|
76
|
+
const clean = name.replace(/'/g, '').trim();
|
|
77
|
+
switch (clean.toUpperCase()) {
|
|
78
|
+
case 'DEGREE': return '°';
|
|
79
|
+
case 'GRAD':
|
|
80
|
+
case 'GON': return 'gon';
|
|
81
|
+
case 'MINUTE': return '′';
|
|
82
|
+
case 'SECOND': return '″';
|
|
83
|
+
case 'FOOT':
|
|
84
|
+
case 'FEET': return 'ft';
|
|
85
|
+
case 'INCH': return 'in';
|
|
86
|
+
case 'YARD': return 'yd';
|
|
87
|
+
case 'MILE': return 'mi';
|
|
88
|
+
case 'LITRE':
|
|
89
|
+
case 'LITER': return 'L';
|
|
90
|
+
case 'ACRE': return 'acre';
|
|
91
|
+
case 'POUND':
|
|
92
|
+
case 'POUND-MASS':
|
|
93
|
+
case 'LBM': return 'lb';
|
|
94
|
+
case 'POUND-FORCE':
|
|
95
|
+
case 'LBF': return 'lbf';
|
|
96
|
+
case 'OUNCE': return 'oz';
|
|
97
|
+
case 'TON-METRIC':
|
|
98
|
+
case 'TONNE': return 't';
|
|
99
|
+
case 'PSI': return 'psi';
|
|
100
|
+
case 'BAR': return 'bar';
|
|
101
|
+
case 'KIP': return 'kip';
|
|
102
|
+
case 'MINUTE-TIME':
|
|
103
|
+
case 'MIN': return 'min';
|
|
104
|
+
case 'HOUR': return 'h';
|
|
105
|
+
case 'DAY': return 'd';
|
|
106
|
+
case 'BTU': return 'Btu';
|
|
107
|
+
case '': return '';
|
|
108
|
+
default: return clean;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const SUPERSCRIPT_DIGITS = {
|
|
112
|
+
'0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴',
|
|
113
|
+
'5': '⁵', '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹',
|
|
114
|
+
};
|
|
115
|
+
function superscript(mag) {
|
|
116
|
+
if (mag === 1)
|
|
117
|
+
return '';
|
|
118
|
+
return String(mag).split('').map(c => SUPERSCRIPT_DIGITS[c] ?? c).join('');
|
|
119
|
+
}
|
|
120
|
+
/** Compose a derived-unit symbol from `(symbol, exponent)` pairs. */
|
|
121
|
+
export function composeDerived(elements) {
|
|
122
|
+
const num = [];
|
|
123
|
+
const den = [];
|
|
124
|
+
for (const [sym, exp] of elements) {
|
|
125
|
+
if (exp === 0 || sym.length === 0)
|
|
126
|
+
continue;
|
|
127
|
+
const piece = `${sym}${superscript(Math.abs(exp))}`;
|
|
128
|
+
if (exp > 0)
|
|
129
|
+
num.push(piece);
|
|
130
|
+
else
|
|
131
|
+
den.push(piece);
|
|
132
|
+
}
|
|
133
|
+
const midDot = '·';
|
|
134
|
+
const numerator = num.length === 0 ? '1' : num.join(midDot);
|
|
135
|
+
if (den.length === 0)
|
|
136
|
+
return num.length === 0 ? '' : numerator;
|
|
137
|
+
const denominator = den.join(midDot);
|
|
138
|
+
return den.length > 1 ? `${numerator}/(${denominator})` : `${numerator}/${denominator}`;
|
|
139
|
+
}
|
|
140
|
+
export function currencySymbol(code) {
|
|
141
|
+
const c = code.replace(/['.]/g, '').trim();
|
|
142
|
+
switch (c.toUpperCase()) {
|
|
143
|
+
case 'EUR': return '€';
|
|
144
|
+
case 'USD': return '$';
|
|
145
|
+
case 'GBP': return '£';
|
|
146
|
+
case 'JPY':
|
|
147
|
+
case 'CNY':
|
|
148
|
+
case 'RMB': return '¥';
|
|
149
|
+
case '': return '';
|
|
150
|
+
default: return c;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// ============================================================================
|
|
154
|
+
// Measure → unit-type table (mirror project_units/measure.rs)
|
|
155
|
+
// ============================================================================
|
|
156
|
+
const MEASURE_TABLE = {
|
|
157
|
+
// Length family
|
|
158
|
+
LENGTHMEASURE: { kind: 'typed', unitType: 'LENGTHUNIT', defaultSymbol: 'm' },
|
|
159
|
+
POSITIVELENGTHMEASURE: { kind: 'typed', unitType: 'LENGTHUNIT', defaultSymbol: 'm' },
|
|
160
|
+
NONNEGATIVELENGTHMEASURE: { kind: 'typed', unitType: 'LENGTHUNIT', defaultSymbol: 'm' },
|
|
161
|
+
AREAMEASURE: { kind: 'typed', unitType: 'AREAUNIT', defaultSymbol: 'm²' },
|
|
162
|
+
VOLUMEMEASURE: { kind: 'typed', unitType: 'VOLUMEUNIT', defaultSymbol: 'm³' },
|
|
163
|
+
MASSMEASURE: { kind: 'typed', unitType: 'MASSUNIT', defaultSymbol: 'kg' },
|
|
164
|
+
TIMEMEASURE: { kind: 'typed', unitType: 'TIMEUNIT', defaultSymbol: 's' },
|
|
165
|
+
PLANEANGLEMEASURE: { kind: 'typed', unitType: 'PLANEANGLEUNIT', defaultSymbol: 'rad' },
|
|
166
|
+
POSITIVEPLANEANGLEMEASURE: { kind: 'typed', unitType: 'PLANEANGLEUNIT', defaultSymbol: 'rad' },
|
|
167
|
+
SOLIDANGLEMEASURE: { kind: 'typed', unitType: 'SOLIDANGLEUNIT', defaultSymbol: 'sr' },
|
|
168
|
+
THERMODYNAMICTEMPERATUREMEASURE: { kind: 'typed', unitType: 'THERMODYNAMICTEMPERATUREUNIT', defaultSymbol: 'K' },
|
|
169
|
+
// Named SI (special-name) units
|
|
170
|
+
ELECTRICCURRENTMEASURE: { kind: 'typed', unitType: 'ELECTRICCURRENTUNIT', defaultSymbol: 'A' },
|
|
171
|
+
ELECTRICVOLTAGEMEASURE: { kind: 'typed', unitType: 'ELECTRICVOLTAGEUNIT', defaultSymbol: 'V' },
|
|
172
|
+
ELECTRICRESISTANCEMEASURE: { kind: 'typed', unitType: 'ELECTRICRESISTANCEUNIT', defaultSymbol: 'Ω' },
|
|
173
|
+
ELECTRICCAPACITANCEMEASURE: { kind: 'typed', unitType: 'ELECTRICCAPACITANCEUNIT', defaultSymbol: 'F' },
|
|
174
|
+
ELECTRICCHARGEMEASURE: { kind: 'typed', unitType: 'ELECTRICCHARGEUNIT', defaultSymbol: 'C' },
|
|
175
|
+
ELECTRICCONDUCTANCEMEASURE: { kind: 'typed', unitType: 'ELECTRICCONDUCTANCEUNIT', defaultSymbol: 'S' },
|
|
176
|
+
POWERMEASURE: { kind: 'typed', unitType: 'POWERUNIT', defaultSymbol: 'W' },
|
|
177
|
+
ENERGYMEASURE: { kind: 'typed', unitType: 'ENERGYUNIT', defaultSymbol: 'J' },
|
|
178
|
+
FORCEMEASURE: { kind: 'typed', unitType: 'FORCEUNIT', defaultSymbol: 'N' },
|
|
179
|
+
PRESSUREMEASURE: { kind: 'typed', unitType: 'PRESSUREUNIT', defaultSymbol: 'Pa' },
|
|
180
|
+
FREQUENCYMEASURE: { kind: 'typed', unitType: 'FREQUENCYUNIT', defaultSymbol: 'Hz' },
|
|
181
|
+
INDUCTANCEMEASURE: { kind: 'typed', unitType: 'INDUCTANCEUNIT', defaultSymbol: 'H' },
|
|
182
|
+
ILLUMINANCEMEASURE: { kind: 'typed', unitType: 'ILLUMINANCEUNIT', defaultSymbol: 'lx' },
|
|
183
|
+
LUMINOUSFLUXMEASURE: { kind: 'typed', unitType: 'LUMINOUSFLUXUNIT', defaultSymbol: 'lm' },
|
|
184
|
+
LUMINOUSINTENSITYMEASURE: { kind: 'typed', unitType: 'LUMINOUSINTENSITYUNIT', defaultSymbol: 'cd' },
|
|
185
|
+
MAGNETICFLUXMEASURE: { kind: 'typed', unitType: 'MAGNETICFLUXUNIT', defaultSymbol: 'Wb' },
|
|
186
|
+
MAGNETICFLUXDENSITYMEASURE: { kind: 'typed', unitType: 'MAGNETICFLUXDENSITYUNIT', defaultSymbol: 'T' },
|
|
187
|
+
AMOUNTOFSUBSTANCEMEASURE: { kind: 'typed', unitType: 'AMOUNTOFSUBSTANCEUNIT', defaultSymbol: 'mol' },
|
|
188
|
+
ABSORBEDDOSEMEASURE: { kind: 'typed', unitType: 'ABSORBEDDOSEUNIT', defaultSymbol: 'Gy' },
|
|
189
|
+
DOSEEQUIVALENTMEASURE: { kind: 'typed', unitType: 'DOSEEQUIVALENTUNIT', defaultSymbol: 'Sv' },
|
|
190
|
+
RADIOACTIVITYMEASURE: { kind: 'typed', unitType: 'RADIOACTIVITYUNIT', defaultSymbol: 'Bq' },
|
|
191
|
+
// Derived units
|
|
192
|
+
VOLUMETRICFLOWRATEMEASURE: { kind: 'typed', unitType: 'VOLUMETRICFLOWRATEUNIT', defaultSymbol: 'm³/s' },
|
|
193
|
+
MASSFLOWRATEMEASURE: { kind: 'typed', unitType: 'MASSFLOWRATEUNIT', defaultSymbol: 'kg/s' },
|
|
194
|
+
MASSDENSITYMEASURE: { kind: 'typed', unitType: 'MASSDENSITYUNIT', defaultSymbol: 'kg/m³' },
|
|
195
|
+
MASSPERLENGTHMEASURE: { kind: 'typed', unitType: 'MASSPERLENGTHUNIT', defaultSymbol: 'kg/m' },
|
|
196
|
+
LINEARVELOCITYMEASURE: { kind: 'typed', unitType: 'LINEARVELOCITYUNIT', defaultSymbol: 'm/s' },
|
|
197
|
+
ACCELERATIONMEASURE: { kind: 'typed', unitType: 'ACCELERATIONUNIT', defaultSymbol: 'm/s²' },
|
|
198
|
+
ANGULARVELOCITYMEASURE: { kind: 'typed', unitType: 'ANGULARVELOCITYUNIT', defaultSymbol: 'rad/s' },
|
|
199
|
+
ROTATIONALFREQUENCYMEASURE: { kind: 'typed', unitType: 'ROTATIONALFREQUENCYUNIT', defaultSymbol: '1/s' },
|
|
200
|
+
TORQUEMEASURE: { kind: 'typed', unitType: 'TORQUEUNIT', defaultSymbol: 'N·m' },
|
|
201
|
+
LINEARFORCEMEASURE: { kind: 'typed', unitType: 'LINEARFORCEUNIT', defaultSymbol: 'N/m' },
|
|
202
|
+
PLANARFORCEMEASURE: { kind: 'typed', unitType: 'PLANARFORCEUNIT', defaultSymbol: 'N/m²' },
|
|
203
|
+
LINEARSTIFFNESSMEASURE: { kind: 'typed', unitType: 'LINEARSTIFFNESSUNIT', defaultSymbol: 'N/m' },
|
|
204
|
+
ROTATIONALSTIFFNESSMEASURE: { kind: 'typed', unitType: 'ROTATIONALSTIFFNESSUNIT', defaultSymbol: 'N·m/rad' },
|
|
205
|
+
MODULUSOFELASTICITYMEASURE: { kind: 'typed', unitType: 'MODULUSOFELASTICITYUNIT', defaultSymbol: 'Pa' },
|
|
206
|
+
SHEARMODULUSMEASURE: { kind: 'typed', unitType: 'SHEARMODULUSUNIT', defaultSymbol: 'Pa' },
|
|
207
|
+
THERMALTRANSMITTANCEMEASURE: { kind: 'typed', unitType: 'THERMALTRANSMITTANCEUNIT', defaultSymbol: 'W/(m²·K)' },
|
|
208
|
+
THERMALCONDUCTIVITYMEASURE: { kind: 'typed', unitType: 'THERMALCONDUCTANCEUNIT', defaultSymbol: 'W/(m·K)' },
|
|
209
|
+
THERMALRESISTANCEMEASURE: { kind: 'typed', unitType: 'THERMALRESISTANCEUNIT', defaultSymbol: 'm²·K/W' },
|
|
210
|
+
THERMALADMITTANCEMEASURE: { kind: 'typed', unitType: 'THERMALADMITTANCEUNIT', defaultSymbol: 'W/(m²·K)' },
|
|
211
|
+
THERMALEXPANSIONCOEFFICIENTMEASURE: { kind: 'typed', unitType: 'THERMALEXPANSIONCOEFFICIENTUNIT', defaultSymbol: '1/K' },
|
|
212
|
+
SPECIFICHEATCAPACITYMEASURE: { kind: 'typed', unitType: 'SPECIFICHEATCAPACITYUNIT', defaultSymbol: 'J/(kg·K)' },
|
|
213
|
+
HEATFLUXDENSITYMEASURE: { kind: 'typed', unitType: 'HEATFLUXDENSITYUNIT', defaultSymbol: 'W/m²' },
|
|
214
|
+
HEATINGVALUEMEASURE: { kind: 'typed', unitType: 'HEATINGVALUEUNIT', defaultSymbol: 'J/kg' },
|
|
215
|
+
DYNAMICVISCOSITYMEASURE: { kind: 'typed', unitType: 'DYNAMICVISCOSITYUNIT', defaultSymbol: 'Pa·s' },
|
|
216
|
+
KINEMATICVISCOSITYMEASURE: { kind: 'typed', unitType: 'KINEMATICVISCOSITYUNIT', defaultSymbol: 'm²/s' },
|
|
217
|
+
MOMENTOFINERTIAMEASURE: { kind: 'typed', unitType: 'MOMENTOFINERTIAUNIT', defaultSymbol: 'm⁴' },
|
|
218
|
+
SECTIONMODULUSMEASURE: { kind: 'typed', unitType: 'SECTIONMODULUSUNIT', defaultSymbol: 'm³' },
|
|
219
|
+
SECTIONALAREAINTEGRALMEASURE: { kind: 'typed', unitType: 'SECTIONAREAINTEGRALUNIT', defaultSymbol: 'm⁵' },
|
|
220
|
+
WARPINGCONSTANTMEASURE: { kind: 'typed', unitType: 'WARPINGCONSTANTUNIT', defaultSymbol: 'm⁶' },
|
|
221
|
+
WARPINGMOMENTMEASURE: { kind: 'typed', unitType: 'WARPINGMOMENTUNIT', defaultSymbol: 'N·m²' },
|
|
222
|
+
LINEARMOMENTMEASURE: { kind: 'typed', unitType: 'LINEARMOMENTUNIT', defaultSymbol: 'N·m/m' },
|
|
223
|
+
AREADENSITYMEASURE: { kind: 'typed', unitType: 'AREADENSITYUNIT', defaultSymbol: 'kg/m²' },
|
|
224
|
+
CURVATUREMEASURE: { kind: 'typed', unitType: 'CURVATUREUNIT', defaultSymbol: '1/m' },
|
|
225
|
+
MOLECULARWEIGHTMEASURE: { kind: 'typed', unitType: 'MOLECULARWEIGHTUNIT', defaultSymbol: 'kg/mol' },
|
|
226
|
+
IONCONCENTRATIONMEASURE: { kind: 'typed', unitType: 'IONCONCENTRATIONUNIT', defaultSymbol: 'kg/m³' },
|
|
227
|
+
MOISTUREDIFFUSIVITYMEASURE: { kind: 'typed', unitType: 'MOISTUREDIFFUSIVITYUNIT', defaultSymbol: 'm²/s' },
|
|
228
|
+
VAPORPERMEABILITYMEASURE: { kind: 'typed', unitType: 'VAPORPERMEABILITYUNIT', defaultSymbol: 'kg/(s·m·Pa)' },
|
|
229
|
+
ISOTHERMALMOISTURECAPACITYMEASURE: { kind: 'typed', unitType: 'ISOTHERMALMOISTURECAPACITYUNIT', defaultSymbol: 'm³/kg' },
|
|
230
|
+
TEMPERATUREGRADIENTMEASURE: { kind: 'typed', unitType: 'TEMPERATUREGRADIENTUNIT', defaultSymbol: 'K/m' },
|
|
231
|
+
TEMPERATURERATEOFCHANGEMEASURE: { kind: 'typed', unitType: 'TEMPERATURERATEOFCHANGEUNIT', defaultSymbol: 'K/s' },
|
|
232
|
+
SOUNDPOWERMEASURE: { kind: 'typed', unitType: 'SOUNDPOWERUNIT', defaultSymbol: 'W' },
|
|
233
|
+
SOUNDPOWERLEVELMEASURE: { kind: 'typed', unitType: 'SOUNDPOWERLEVELUNIT', defaultSymbol: 'dB' },
|
|
234
|
+
SOUNDPRESSUREMEASURE: { kind: 'typed', unitType: 'SOUNDPRESSUREUNIT', defaultSymbol: 'Pa' },
|
|
235
|
+
SOUNDPRESSURELEVELMEASURE: { kind: 'typed', unitType: 'SOUNDPRESSURELEVELUNIT', defaultSymbol: 'dB' },
|
|
236
|
+
MODULUSOFSUBGRADEREACTIONMEASURE: { kind: 'typed', unitType: 'MODULUSOFSUBGRADEREACTIONUNIT', defaultSymbol: 'N/m³' },
|
|
237
|
+
MODULUSOFLINEARSUBGRADEREACTIONMEASURE: { kind: 'typed', unitType: 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', defaultSymbol: 'N/m²' },
|
|
238
|
+
MODULUSOFROTATIONALSUBGRADEREACTIONMEASURE: { kind: 'typed', unitType: 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', defaultSymbol: 'N/rad' },
|
|
239
|
+
ROTATIONALMASSMEASURE: { kind: 'typed', unitType: 'ROTATIONALMASSUNIT', defaultSymbol: 'kg·m²' },
|
|
240
|
+
INTEGERCOUNTRATEMEASURE: { kind: 'typed', unitType: 'INTEGERCOUNTRATEUNIT', defaultSymbol: '1/s' },
|
|
241
|
+
LUMINOUSINTENSITYDISTRIBUTIONMEASURE: { kind: 'typed', unitType: 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', defaultSymbol: 'cd/lm' },
|
|
242
|
+
// Monetary
|
|
243
|
+
MONETARYMEASURE: { kind: 'monetary' },
|
|
244
|
+
// Dimensionless / unit-less
|
|
245
|
+
RATIOMEASURE: { kind: 'dimensionless' },
|
|
246
|
+
NORMALISEDRATIOMEASURE: { kind: 'dimensionless' },
|
|
247
|
+
POSITIVERATIOMEASURE: { kind: 'dimensionless' },
|
|
248
|
+
COUNTMEASURE: { kind: 'dimensionless' },
|
|
249
|
+
NUMERICMEASURE: { kind: 'dimensionless' },
|
|
250
|
+
DESCRIPTIVEMEASURE: { kind: 'dimensionless' },
|
|
251
|
+
CONTEXTDEPENDENTMEASURE: { kind: 'dimensionless' },
|
|
252
|
+
PHMEASURE: { kind: 'dimensionless' },
|
|
253
|
+
CURVEMEASURE: { kind: 'dimensionless' },
|
|
254
|
+
COMPOUNDPLANEANGLEMEASURE: { kind: 'dimensionless' },
|
|
255
|
+
DERIVEDMEASURE: { kind: 'dimensionless' },
|
|
256
|
+
MEASURE: { kind: 'dimensionless' },
|
|
257
|
+
};
|
|
258
|
+
/** Resolve a measure value type name (case-insensitive, with or without the
|
|
259
|
+
* leading `IFC`) to its unit mapping. `undefined` for non-measure value types. */
|
|
260
|
+
export function measureUnit(measureType) {
|
|
261
|
+
const up = measureType.trim().toUpperCase();
|
|
262
|
+
const key = up.startsWith('IFC') ? up.slice(3) : up;
|
|
263
|
+
return MEASURE_TABLE[key];
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=project-units-symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-units-symbols.js","sourceRoot":"","sources":["../src/project-units-symbols.ts"],"names":[],"mappings":"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"}
|