@ifc-lite/export 1.20.0 → 1.21.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.
@@ -0,0 +1,33 @@
1
+ import type { IfcSchemaVersion } from './schema-converter.js';
2
+ export interface RetypeArgsResult {
3
+ tokens: string[];
4
+ /** True when the layout was resolved from schema; false ⇒ keyword-only swap. */
5
+ resolved: boolean;
6
+ }
7
+ /**
8
+ * Re-lay-out an entity's STEP argument tokens for a new class.
9
+ *
10
+ * `argTokens` are already-serialized STEP fragments (as produced by
11
+ * {@link splitTopLevelArgs}). Returns a fresh token array in the target
12
+ * class's attribute order. When source or target layout can't be resolved
13
+ * from the schema (vendor extension, malformed), `resolved` is false and the
14
+ * caller should fall back to a keyword-only swap.
15
+ */
16
+ export declare function retypeArgTokens(argTokens: string[], sourceType: string, newType: string, predefinedType: string | null | undefined, schema: IfcSchemaVersion): RetypeArgsResult;
17
+ /**
18
+ * Rewrite a raw STEP entity line to a new IFC class.
19
+ *
20
+ * `entityText` is a single STEP record (`#123=IFCFOO(...);`, possibly with a
21
+ * trailing newline). Returns the rewritten line, or the original unchanged if
22
+ * it can't be parsed.
23
+ *
24
+ * `schema` is the schema the raw text is in (the source schema). When the
25
+ * exporter is ALSO converting to a different output schema, the retype runs
26
+ * first in the source schema and the converter runs after. A narrow edge
27
+ * follows from that ordering: if the target class gains a `PredefinedType`
28
+ * slot only in the OUTPUT schema (e.g. IFC2X3 `IfcColumn` → IFC4 `IfcColumn`),
29
+ * an explicit override has no slot to land in and is dropped. Retyping within
30
+ * a single schema (the common case) is unaffected.
31
+ */
32
+ export declare function retypeStepLine(entityText: string, sourceType: string, newType: string, predefinedType: string | null | undefined, schema: IfcSchemaVersion): string;
33
+ //# sourceMappingURL=retype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retype.d.ts","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAoD9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CA+ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,MAAM,CAsBR"}
package/dist/retype.js ADDED
@@ -0,0 +1,155 @@
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
+ * Entity retype (reassign class) materialization for STEP export.
6
+ *
7
+ * Mirrors IfcOpenShell's `ifcopenshell.util.schema.reassign_class`: an entity
8
+ * keeps its expressId (so geometry / placement / representation and every
9
+ * `IfcRel*` reference — all keyed by `#id` — carry over unchanged) while its
10
+ * class keyword and attribute layout are swapped to the target class.
11
+ *
12
+ * Attributes are re-laid-out BY NAME against the target class's declared
13
+ * attribute list:
14
+ * - attributes the target class doesn't declare are dropped
15
+ * (e.g. IFC2X3 `IfcBuildingElementProxy.CompositionType` when retyping to
16
+ * `IfcColumn`, which has no 9th attribute);
17
+ * - attributes the target declares but the source lacks become `$`;
18
+ * - the `PredefinedType` enum is validated against the target class's
19
+ * domain — an out-of-domain carried value is dropped, and an explicit
20
+ * out-of-domain override falls back to `USERDEFINED` + `ObjectType`.
21
+ *
22
+ * For the common building-element subtypes (Proxy ↔ Column / Beam / Member /
23
+ * Plate / Wall) the IFC4 attribute layout is identical, so the re-layout is an
24
+ * identity and only the keyword (and optionally PredefinedType) changes — the
25
+ * raw argument tokens are preserved byte-for-byte.
26
+ */
27
+ import { ENTITIES_IFC2X3, ENTITIES_IFC4, ENTITIES_IFC4X3 } from '@ifc-lite/data';
28
+ import { escapeStepString, splitTopLevelArgs } from './step-serialization.js';
29
+ function buildSchemaMap(list) {
30
+ const map = new Map();
31
+ for (const entity of list) {
32
+ map.set(entity.name.toUpperCase(), {
33
+ attributes: entity.attributes,
34
+ predefinedTypes: entity.predefinedTypes,
35
+ });
36
+ }
37
+ return map;
38
+ }
39
+ const SCHEMA_MAPS = {
40
+ IFC2X3: buildSchemaMap(ENTITIES_IFC2X3),
41
+ IFC4: buildSchemaMap(ENTITIES_IFC4),
42
+ IFC4X3: buildSchemaMap(ENTITIES_IFC4X3),
43
+ // IFC5 isn't STEP; never reached for retype, but keep the lookup total.
44
+ IFC5: buildSchemaMap(ENTITIES_IFC4X3),
45
+ };
46
+ /**
47
+ * Look up a class's attribute layout + PredefinedType domain for a schema.
48
+ * Falls back to the IFC4 registry for vendor extensions absent from the
49
+ * requested schema's bundle, then to `null` for genuinely unknown classes.
50
+ */
51
+ function lookupEntityInfo(schema, name) {
52
+ const upper = name.toUpperCase();
53
+ return SCHEMA_MAPS[schema]?.get(upper) ?? SCHEMA_MAPS.IFC4.get(upper) ?? null;
54
+ }
55
+ /** Strip the dot-wrapping from a STEP enum token: `.ELEMENT.` → `ELEMENT`. */
56
+ function enumValue(token) {
57
+ const t = token.trim();
58
+ if (t.length >= 2 && t.startsWith('.') && t.endsWith('.')) {
59
+ return t.slice(1, -1);
60
+ }
61
+ return null;
62
+ }
63
+ /** Normalize a caller-supplied predefined type to a bare enum symbol. */
64
+ function normalizePredefined(value) {
65
+ return (enumValue(value) ?? value).trim().toUpperCase();
66
+ }
67
+ /**
68
+ * Re-lay-out an entity's STEP argument tokens for a new class.
69
+ *
70
+ * `argTokens` are already-serialized STEP fragments (as produced by
71
+ * {@link splitTopLevelArgs}). Returns a fresh token array in the target
72
+ * class's attribute order. When source or target layout can't be resolved
73
+ * from the schema (vendor extension, malformed), `resolved` is false and the
74
+ * caller should fall back to a keyword-only swap.
75
+ */
76
+ export function retypeArgTokens(argTokens, sourceType, newType, predefinedType, schema) {
77
+ const sourceInfo = lookupEntityInfo(schema, sourceType);
78
+ const targetInfo = lookupEntityInfo(schema, newType);
79
+ // Without both layouts we can't map by name. Fall back to keyword-only swap,
80
+ // preserving the original argument list verbatim.
81
+ if (!sourceInfo || !targetInfo) {
82
+ return { tokens: argTokens.slice(), resolved: false };
83
+ }
84
+ // Map source attribute NAME → its serialized token.
85
+ const byName = new Map();
86
+ const span = Math.min(sourceInfo.attributes.length, argTokens.length);
87
+ for (let i = 0; i < span; i++) {
88
+ byName.set(sourceInfo.attributes[i], argTokens[i]);
89
+ }
90
+ const tokens = targetInfo.attributes.map((name) => byName.get(name) ?? '$');
91
+ const predefinedIdx = targetInfo.attributes.indexOf('PredefinedType');
92
+ if (predefinedIdx >= 0) {
93
+ if (predefinedType != null && predefinedType !== '') {
94
+ const sym = normalizePredefined(predefinedType);
95
+ if (targetInfo.predefinedTypes.includes(sym)) {
96
+ tokens[predefinedIdx] = `.${sym}.`;
97
+ }
98
+ else {
99
+ // Unknown enum value → USERDEFINED + carry the literal on ObjectType /
100
+ // ElementType, mirroring IfcOpenShell's reassign_class fallback.
101
+ tokens[predefinedIdx] = '.USERDEFINED.';
102
+ const labelIdx = targetInfo.attributes.indexOf('ObjectType') >= 0
103
+ ? targetInfo.attributes.indexOf('ObjectType')
104
+ : targetInfo.attributes.indexOf('ElementType');
105
+ if (labelIdx >= 0) {
106
+ tokens[labelIdx] = `'${escapeStepString(predefinedType)}'`;
107
+ }
108
+ }
109
+ }
110
+ else {
111
+ // No override: sanitize a carried-over enum that isn't valid for the
112
+ // target class. PredefinedType is optional, so dropping to `$` is valid.
113
+ const carried = enumValue(tokens[predefinedIdx]);
114
+ if (carried !== null && !targetInfo.predefinedTypes.includes(carried)) {
115
+ tokens[predefinedIdx] = '$';
116
+ }
117
+ }
118
+ }
119
+ return { tokens, resolved: true };
120
+ }
121
+ /**
122
+ * Rewrite a raw STEP entity line to a new IFC class.
123
+ *
124
+ * `entityText` is a single STEP record (`#123=IFCFOO(...);`, possibly with a
125
+ * trailing newline). Returns the rewritten line, or the original unchanged if
126
+ * it can't be parsed.
127
+ *
128
+ * `schema` is the schema the raw text is in (the source schema). When the
129
+ * exporter is ALSO converting to a different output schema, the retype runs
130
+ * first in the source schema and the converter runs after. A narrow edge
131
+ * follows from that ordering: if the target class gains a `PredefinedType`
132
+ * slot only in the OUTPUT schema (e.g. IFC2X3 `IfcColumn` → IFC4 `IfcColumn`),
133
+ * an explicit override has no slot to land in and is dropped. Retyping within
134
+ * a single schema (the common case) is unaffected.
135
+ */
136
+ export function retypeStepLine(entityText, sourceType, newType, predefinedType, schema) {
137
+ const eq = entityText.indexOf('=');
138
+ const openParen = entityText.indexOf('(');
139
+ const closeParen = entityText.lastIndexOf(');');
140
+ const newUpper = newType.toUpperCase();
141
+ if (eq < 0 || openParen < eq || closeParen < openParen) {
142
+ return entityText;
143
+ }
144
+ const idPrefix = entityText.slice(0, eq + 1); // "#123="
145
+ const argTokens = splitTopLevelArgs(entityText.slice(openParen + 1, closeParen));
146
+ const { tokens, resolved } = retypeArgTokens(argTokens, sourceType, newType, predefinedType, schema);
147
+ if (!resolved) {
148
+ // Keyword-only swap: keep the original argument list verbatim.
149
+ return `${idPrefix}${newUpper}${entityText.slice(openParen)}`;
150
+ }
151
+ // `entityText.slice(closeParen)` keeps the closing `);` plus any trailing
152
+ // bytes (newline) intact.
153
+ return `${idPrefix}${newUpper}(${tokens.join(',')}${entityText.slice(closeParen)}`;
154
+ }
155
+ //# sourceMappingURL=retype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retype.js","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-exporter.d.ts","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-exporter.d.ts","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { safeUtf8Decode } from '@ifc-lite/data';
6
6
  import { generateIfcGuid } from '@ifc-lite/encoding';
7
7
  import { collectReferencedEntityIds, getVisibleEntityIds, collectStyleEntities } from './reference-collector.js';
8
8
  import { convertStepLine, needsConversion } from './schema-converter.js';
9
+ import { retypeStepLine, retypeArgTokens } from './retype.js';
9
10
  import { getCompleteEntityIndex, getMaxExpressId } from './entity-iteration.js';
10
11
  import { escapeStepString, toStepReal, quantityTypeToIfcType, serializePropertyValue, serializeAttributeValue, serializeStepArgs, serializeStepValue, splitTopLevelArgs, splitTopLevelStepArguments, assembleStepBytes, } from './step-serialization.js';
11
12
  /**
@@ -439,9 +440,32 @@ export class StepExporter {
439
440
  // SharedArrayBuffer-backed view; the parser deliberately keeps
440
441
  // `source` zero-copy SAB-backed for worker sharing).
441
442
  const entityText = safeUtf8Decode(source, entityRef.byteOffset, entityRef.byteOffset + entityRef.byteLength);
442
- let nextEntityText = modifiedAttributes.has(expressId)
443
- ? this.applyAttributeMutations(entityText, entityType, modifiedAttributes.get(expressId))
444
- : entityText;
443
+ let nextEntityText = entityText;
444
+ // Entity retype (reassign class) runs FIRST so attribute mutations
445
+ // below resolve against the TARGET class's attribute names. The
446
+ // expressId is unchanged, so geometry / placement / representation and
447
+ // every IfcRel* reference (keyed by #id) carry over untouched.
448
+ //
449
+ // This materializes inside the source-iteration loop, which `deltaOnly`
450
+ // skips — so, like in-place attribute/positional edits to existing
451
+ // entities, an existing-entity retype is only emitted by a full export
452
+ // (the common `applyMutations` path). Retyped OVERLAY-created entities
453
+ // are emitted under `deltaOnly` via the new-entities pass below.
454
+ const typeMutation = overlayActive && typeof this.mutationView.getEntityTypeMutation === 'function'
455
+ ? this.mutationView.getEntityTypeMutation(expressId)
456
+ : null;
457
+ let workingType = entityType;
458
+ if (typeMutation) {
459
+ nextEntityText = retypeStepLine(nextEntityText, entityRef.type, typeMutation.newType, typeMutation.predefinedType ?? null, sourceSchema);
460
+ workingType = typeMutation.newType.toUpperCase();
461
+ if (!modifiedEntities.has(expressId)) {
462
+ modifiedEntities.add(expressId);
463
+ modifiedEntityCount++;
464
+ }
465
+ }
466
+ if (modifiedAttributes.has(expressId)) {
467
+ nextEntityText = this.applyAttributeMutations(nextEntityText, workingType, modifiedAttributes.get(expressId));
468
+ }
445
469
  const positional = overlayActive && typeof this.mutationView.getPositionalMutationsForEntity === 'function'
446
470
  ? this.mutationView.getPositionalMutationsForEntity(expressId)
447
471
  : null;
@@ -508,18 +532,39 @@ export class StepExporter {
508
532
  if (this.mutationView
509
533
  && (options.applyMutations !== false)
510
534
  && typeof this.mutationView.getNewEntities === 'function') {
535
+ const getTypeMut = typeof this.mutationView.getEntityTypeMutation === 'function'
536
+ ? this.mutationView.getEntityTypeMutation.bind(this.mutationView)
537
+ : null;
511
538
  for (const entity of this.mutationView.getNewEntities()) {
512
- // STEP requires UPPERCASE entity type tokens. `NewEntity.type` is
513
- // stored in canonical PascalCase per the public API contract; the
514
- // upper-case happens here at the file-format boundary.
515
- const upperType = entity.type.toUpperCase();
539
+ // A retyped overlay entity keeps its AUTHORED type on `entity.type`
540
+ // (the overlay typeMutation is the source of truth for the effective
541
+ // class). Resolve the effective class, then re-lay-out the authored
542
+ // attributes from the authored layout up to it.
543
+ const typeMut = getTypeMut ? getTypeMut(entity.expressId) : null;
544
+ const effectiveType = typeMut?.newType ?? entity.type;
545
+ // STEP requires UPPERCASE entity type tokens; the upper-case happens
546
+ // here at the file-format boundary.
547
+ const upperType = effectiveType.toUpperCase();
516
548
  if (options.includeGeometry === false && this.isGeometryEntity(upperType)) {
517
549
  continue;
518
550
  }
519
551
  if (allowedEntityIds !== null && !allowedEntityIds.has(entity.expressId)) {
520
552
  continue;
521
553
  }
522
- const line = `#${entity.expressId}=${upperType}(${serializeStepArgs(entity.attributes)});`;
554
+ // Re-lay-out by name against the effective class (identity for
555
+ // compatible layouts). Runs whenever a retype intent exists — even a
556
+ // same-class retype, which carries a PredefinedType override
557
+ // (e.g. setEntityType(id, 'IfcColumn', 'PILASTER')).
558
+ let argsText;
559
+ if (typeMut) {
560
+ const srcTokens = entity.attributes.map(serializeStepValue);
561
+ const { tokens } = retypeArgTokens(srcTokens, entity.type, effectiveType, typeMut.predefinedType ?? null, sourceSchema);
562
+ argsText = tokens.join(',');
563
+ }
564
+ else {
565
+ argsText = serializeStepArgs(entity.attributes);
566
+ }
567
+ const line = `#${entity.expressId}=${upperType}(${argsText});`;
523
568
  if (converting) {
524
569
  const converted = convertStepLine(line, sourceSchema, schema);
525
570
  if (converted !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/export",
3
- "version": "1.20.0",
3
+ "version": "1.21.0",
4
4
  "description": "Export formats for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,11 +16,11 @@
16
16
  "parquet-wasm": "^0.7.1",
17
17
  "apache-arrow": "^21.1.0",
18
18
  "jszip": "^3.10.0",
19
- "@ifc-lite/geometry": "^2.7.4",
20
- "@ifc-lite/data": "^2.1.0",
19
+ "@ifc-lite/geometry": "^2.8.0",
20
+ "@ifc-lite/data": "^2.2.0",
21
21
  "@ifc-lite/encoding": "^1.14.7",
22
- "@ifc-lite/parser": "^3.3.0",
23
- "@ifc-lite/mutations": "^1.15.5"
22
+ "@ifc-lite/parser": "^3.3.1",
23
+ "@ifc-lite/mutations": "^1.16.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "typescript": "^6.0.3",