@ifc-lite/data 3.4.1 → 3.5.1
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/entity-table.d.ts +6 -0
- package/dist/entity-table.d.ts.map +1 -1
- package/dist/entity-table.js +5 -0
- package/dist/entity-table.js.map +1 -1
- package/dist/exact-type-name.d.ts +59 -0
- package/dist/exact-type-name.d.ts.map +1 -0
- package/dist/exact-type-name.js +50 -0
- package/dist/exact-type-name.js.map +1 -0
- package/dist/ifc-entity-names.d.ts +22 -14
- package/dist/ifc-entity-names.d.ts.map +1 -1
- package/dist/ifc-entity-names.js +22 -899
- package/dist/ifc-entity-names.js.map +1 -1
- package/dist/ifc-schema/generated/entity-names.d.ts +16 -0
- package/dist/ifc-schema/generated/entity-names.d.ts.map +1 -0
- package/dist/ifc-schema/generated/entity-names.js +1182 -0
- package/dist/ifc-schema/generated/entity-names.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/spatial-types.d.ts +1 -1
- package/dist/spatial-types.d.ts.map +1 -1
- package/dist/spatial-types.js +2 -0
- package/dist/spatial-types.js.map +1 -1
- package/dist/step-serializers.js +14 -14
- package/dist/step-serializers.js.map +1 -1
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +25 -146
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/entity-table.d.ts
CHANGED
|
@@ -32,6 +32,12 @@ export interface EntityTable {
|
|
|
32
32
|
getDescription(expressId: number): string;
|
|
33
33
|
getObjectType(expressId: number): string;
|
|
34
34
|
getTypeName(expressId: number): string;
|
|
35
|
+
/** The class the file actually declares — what an EXPORT needs, where
|
|
36
|
+
* {@link getTypeName} answers what GROUPING needs. `exact-type-name.ts`
|
|
37
|
+
* documents the difference and holds the one fallback for table shapes
|
|
38
|
+
* that cannot answer (hence optional, as with {@link rawTypeName}); read
|
|
39
|
+
* it through `exactTypeName()`, never directly. */
|
|
40
|
+
getExactTypeName?(expressId: number): string;
|
|
35
41
|
/** Element Tag (IfcElement/IfcTypeProduct layouts), '' when absent. Optional:
|
|
36
42
|
* populated by server-parsed stores (issue #1765); the WASM path resolves
|
|
37
43
|
* Tag on demand from source instead. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-table.d.ts","sourceRoot":"","sources":["../src/entity-table.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAA2D,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-table.d.ts","sourceRoot":"","sources":["../src/entity-table.ts"],"names":[],"mappings":"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"}
|
package/dist/entity-table.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { IfcTypeEnum, EntityFlags, IfcTypeEnumFromString, IfcTypeEnumToString } from './types.js';
|
|
5
5
|
import { IFC_ENTITY_NAMES } from './ifc-entity-names.js';
|
|
6
|
+
import { exactNameOfRow } from './exact-type-name.js';
|
|
6
7
|
/** Convert UPPERCASE IFC type name to PascalCase using the generated schema name map */
|
|
7
8
|
function normalizeIfcUpperCase(upper) {
|
|
8
9
|
return IFC_ENTITY_NAMES[upper] ?? upper;
|
|
@@ -192,6 +193,10 @@ export function entityTableFromColumns(columns, strings) {
|
|
|
192
193
|
return enumName;
|
|
193
194
|
return strings.get(rawTypeName[idx]) || 'Unknown';
|
|
194
195
|
},
|
|
196
|
+
// A retype is a deliberate restatement of the class, so it outranks the
|
|
197
|
+
// parsed one here exactly as it does in `getTypeName` above — and
|
|
198
|
+
// `setTypeOverride` already stored it PascalCase-canonicalised.
|
|
199
|
+
getExactTypeName: (id) => typeOverrides.get(id) ?? exactNameOfRow(strings, rawTypeName, typeEnum, indexOfId(id)),
|
|
195
200
|
hasGeometry: (id) => {
|
|
196
201
|
const idx = indexOfId(id);
|
|
197
202
|
return idx >= 0 ? (flags[idx] & EntityFlags.HAS_GEOMETRY) !== 0 : false;
|
package/dist/entity-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-table.js","sourceRoot":"","sources":["../src/entity-table.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAQ/D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-table.js","sourceRoot":"","sources":["../src/entity-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The class an entity's STEP line actually declares — the answer an EXPORT
|
|
3
|
+
* needs, as distinct from the one GROUPING needs.
|
|
4
|
+
*
|
|
5
|
+
* `IfcTypeEnum` coalesces several class names onto one value on purpose:
|
|
6
|
+
* `IfcDoorStandardCase` shares `IfcDoor`, `IfcSlabStandardCase` shares
|
|
7
|
+
* `IfcSlab`, and `IfcDistributionFlowElement` and
|
|
8
|
+
* `IfcDistributionControlElement` both share `IfcDistributionElement`, so the
|
|
9
|
+
* viewer's scope chips render one chip per family rather than one per spelling
|
|
10
|
+
* (`apps/viewer/src/lib/lists/scope-types.test.ts` pins that, and the enum's
|
|
11
|
+
* numeric values are a wire contract `@ifc-lite/cache` pins separately).
|
|
12
|
+
* `IfcWallStandardCase` is not more exact than the rest — it merely happens to
|
|
13
|
+
* hold its own enum value.
|
|
14
|
+
*
|
|
15
|
+
* `EntityTable.getTypeName` resolves through that enum and only falls back to
|
|
16
|
+
* the parsed name when the enum says `Unknown`, so a known-but-coalesced class
|
|
17
|
+
* never reaches the fallback. For a chip label that is right. For an export it
|
|
18
|
+
* is a silent, unrecoverable substitution: the Parquet `Type` column named an
|
|
19
|
+
* `IFCDOORSTANDARDCASE` line `IfcDoor`, disagreeing with `StepExporter`, which
|
|
20
|
+
* re-emits every class verbatim.
|
|
21
|
+
*/
|
|
22
|
+
import type { EntityTable } from './entity-table.js';
|
|
23
|
+
import type { StringTable } from './string-table.js';
|
|
24
|
+
/** A table surface that may or may not implement the exact accessor. */
|
|
25
|
+
export type ExactTypeNameSource = Pick<EntityTable, 'getTypeName'> & Partial<Pick<EntityTable, 'getExactTypeName'>>;
|
|
26
|
+
/**
|
|
27
|
+
* The exact name for one ROW of a built table. Shared by every table builder
|
|
28
|
+
* that keeps its own columns — `entityTableFromColumns` here and the
|
|
29
|
+
* server-hydrated literal in `apps/viewer/src/utils/serverEntityTable.ts` — so
|
|
30
|
+
* the two cannot drift apart on what "exact" means, and so the reasoning
|
|
31
|
+
* above lives beside the code that needs it rather than inside a 400-line
|
|
32
|
+
* module.
|
|
33
|
+
*/
|
|
34
|
+
export declare function exactNameOfRow(strings: StringTable, rawTypeName: Uint32Array, typeEnum: Uint16Array, rowIndex: number): string;
|
|
35
|
+
/**
|
|
36
|
+
* The declared class for an entity, with the ONE shared degradation.
|
|
37
|
+
*
|
|
38
|
+
* Every table this repo builds implements `getExactTypeName`: the parser
|
|
39
|
+
* transport and `@ifc-lite/cache`'s reader both construct theirs through
|
|
40
|
+
* `entityTableFromColumns`, and `apps/viewer/src/utils/serverEntityTable.ts`
|
|
41
|
+
* implements it on its own literal. The member is nonetheless OPTIONAL, for
|
|
42
|
+
* two reasons that outlive that list:
|
|
43
|
+
*
|
|
44
|
+
* - `EntityTable` is a published `@ifc-lite/data` type. Requiring a new
|
|
45
|
+
* method breaks every implementer outside this repo at once, and buys
|
|
46
|
+
* nothing the fallback below does not already give them.
|
|
47
|
+
* - Requiring it would not actually enforce it here either. The partial
|
|
48
|
+
* `EntityTable` doubles across the repo's tests reach the type through
|
|
49
|
+
* `as unknown as EntityTable`, which satisfies the compiler while supplying
|
|
50
|
+
* no such method at runtime; an optional call is what keeps those honest
|
|
51
|
+
* instead of throwing.
|
|
52
|
+
*
|
|
53
|
+
* So the degradation lives here, once. Every caller would otherwise pick its
|
|
54
|
+
* own fallback, and two callers picking different ones is how one model
|
|
55
|
+
* exports inconsistently. `getTypeName` is the honest fallback: a table that
|
|
56
|
+
* never tracked the parsed name knows nothing more exact than its enum.
|
|
57
|
+
*/
|
|
58
|
+
export declare function exactTypeName(entities: ExactTypeNameSource, expressId: number): string;
|
|
59
|
+
//# sourceMappingURL=exact-type-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-type-name.d.ts","sourceRoot":"","sources":["../src/exact-type-name.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,wEAAwE;AACxE,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,GAChE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 { IfcTypeEnumToString } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* The exact name for one ROW of a built table. Shared by every table builder
|
|
7
|
+
* that keeps its own columns — `entityTableFromColumns` here and the
|
|
8
|
+
* server-hydrated literal in `apps/viewer/src/utils/serverEntityTable.ts` — so
|
|
9
|
+
* the two cannot drift apart on what "exact" means, and so the reasoning
|
|
10
|
+
* above lives beside the code that needs it rather than inside a 400-line
|
|
11
|
+
* module.
|
|
12
|
+
*/
|
|
13
|
+
export function exactNameOfRow(strings, rawTypeName, typeEnum, rowIndex) {
|
|
14
|
+
if (rowIndex < 0)
|
|
15
|
+
return 'Unknown';
|
|
16
|
+
// `rawTypeName` is zero-filled when the source columns carried none, and
|
|
17
|
+
// string index 0 is '' — so an empty answer means "this table shape never
|
|
18
|
+
// tracked the parsed name", not "the name was empty". Fall through to the
|
|
19
|
+
// enum, which is then all this table knows; `IfcTypeEnumToString` yields
|
|
20
|
+
// the literal 'Unknown' when even that is absent, so the caller never
|
|
21
|
+
// receives ''.
|
|
22
|
+
return strings.get(rawTypeName[rowIndex]) || IfcTypeEnumToString(typeEnum[rowIndex]);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The declared class for an entity, with the ONE shared degradation.
|
|
26
|
+
*
|
|
27
|
+
* Every table this repo builds implements `getExactTypeName`: the parser
|
|
28
|
+
* transport and `@ifc-lite/cache`'s reader both construct theirs through
|
|
29
|
+
* `entityTableFromColumns`, and `apps/viewer/src/utils/serverEntityTable.ts`
|
|
30
|
+
* implements it on its own literal. The member is nonetheless OPTIONAL, for
|
|
31
|
+
* two reasons that outlive that list:
|
|
32
|
+
*
|
|
33
|
+
* - `EntityTable` is a published `@ifc-lite/data` type. Requiring a new
|
|
34
|
+
* method breaks every implementer outside this repo at once, and buys
|
|
35
|
+
* nothing the fallback below does not already give them.
|
|
36
|
+
* - Requiring it would not actually enforce it here either. The partial
|
|
37
|
+
* `EntityTable` doubles across the repo's tests reach the type through
|
|
38
|
+
* `as unknown as EntityTable`, which satisfies the compiler while supplying
|
|
39
|
+
* no such method at runtime; an optional call is what keeps those honest
|
|
40
|
+
* instead of throwing.
|
|
41
|
+
*
|
|
42
|
+
* So the degradation lives here, once. Every caller would otherwise pick its
|
|
43
|
+
* own fallback, and two callers picking different ones is how one model
|
|
44
|
+
* exports inconsistently. `getTypeName` is the honest fallback: a table that
|
|
45
|
+
* never tracked the parsed name knows nothing more exact than its enum.
|
|
46
|
+
*/
|
|
47
|
+
export function exactTypeName(entities, expressId) {
|
|
48
|
+
return entities.getExactTypeName?.(expressId) ?? entities.getTypeName(expressId);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=exact-type-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exact-type-name.js","sourceRoot":"","sources":["../src/exact-type-name.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA0B/D,OAAO,EAAe,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAM9D;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAoB,EACpB,WAAwB,EACxB,QAAqB,EACrB,QAAgB;IAEhB,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,sEAAsE;IACtE,eAAe;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAgB,CAAC,CAAC;AACtG,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,aAAa,CAAC,QAA6B,EAAE,SAAiB;IAC5E,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* UPPERCASE
|
|
3
|
-
* Originally generated from the @ifc-lite/codegen schema registry (IFC4X3).
|
|
2
|
+
* UPPERCASE STEP keyword -> PascalCase entity name.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
4
|
+
* GENERATED, not transcribed. This used to be a hand-maintained literal of 880
|
|
5
|
+
* entries whose header named a regenerator (`scripts/generate-entity-names.ts`)
|
|
6
|
+
* that has never existed in this repository; 282 keys the schema knows about
|
|
7
|
+
* were missing from it, including `IfcWallElementedCase`, `IfcBuildingElement`,
|
|
8
|
+
* `IfcDoorStyle` and every `*StandardCase` but `IfcWallStandardCase`, so every
|
|
9
|
+
* caller doing `IFC_ENTITY_NAMES[upper] ?? upper` displayed the raw UPPERCASE
|
|
10
|
+
* keyword for them. `scripts/emit-entity-names.ts` now writes the map from the
|
|
11
|
+
* `entities-*.ts` tables that `generate:ifc-schema` produces from the
|
|
12
|
+
* buildingSMART dumps, in the same command, so a schema bump carries the names
|
|
13
|
+
* along and there is no second list to fall behind.
|
|
13
14
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* It is emitted as a literal rather than built at load from the `ENTITIES_*`
|
|
16
|
+
* arrays because a runtime loop over those is not tree-shakable: it would keep
|
|
17
|
+
* all three — ~630 KB minified, ~57 KB gzipped — in every bundle that touches a
|
|
18
|
+
* name lookup, and `@ifc-lite/data` is published for browser consumers.
|
|
19
|
+
*
|
|
20
|
+
* `ifc-entity-names.test.ts` pins the result against `IfcTypeEnum`, and
|
|
21
|
+
* `ifc-entity-names.schema-parity.test.ts` pins it against `entities-*.ts` in
|
|
22
|
+
* both directions and by name — so a stale generated file, the failure mode a
|
|
23
|
+
* committed artefact introduces, fails there rather than degrading display
|
|
24
|
+
* names silently.
|
|
17
25
|
*/
|
|
18
|
-
export
|
|
26
|
+
export { IFC_ENTITY_NAMES } from './ifc-schema/generated/entity-names.js';
|
|
19
27
|
//# sourceMappingURL=ifc-entity-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-entity-names.d.ts","sourceRoot":"","sources":["../src/ifc-entity-names.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"ifc-entity-names.d.ts","sourceRoot":"","sources":["../src/ifc-entity-names.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC"}
|