@ifc-lite/export 4.11.0 → 4.12.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/anonymize-placement.d.ts +0 -34
- package/dist/anonymize-placement.d.ts.map +1 -1
- package/dist/anonymize-placement.js +58 -27
- package/dist/anonymize-placement.js.map +1 -1
- package/dist/declared-property-type.d.ts.map +1 -1
- package/dist/declared-property-type.js +3 -2
- package/dist/declared-property-type.js.map +1 -1
- package/dist/effective-index.d.ts.map +1 -1
- package/dist/effective-index.js +12 -5
- package/dist/effective-index.js.map +1 -1
- package/dist/ifc5-exporter.d.ts.map +1 -1
- package/dist/ifc5-exporter.js +5 -4
- package/dist/ifc5-exporter.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lod-geometry-types.d.ts +5 -0
- package/dist/lod-geometry-types.d.ts.map +1 -1
- package/dist/lod0-generator.d.ts.map +1 -1
- package/dist/lod0-generator.js +52 -18
- package/dist/lod0-generator.js.map +1 -1
- package/dist/lod1-generator.d.ts.map +1 -1
- package/dist/lod1-generator.js +4 -1
- package/dist/lod1-generator.js.map +1 -1
- package/dist/merged-empty-containers-refs.d.ts.map +1 -1
- package/dist/merged-empty-containers-refs.js +5 -3
- package/dist/merged-empty-containers-refs.js.map +1 -1
- package/dist/merged-exporter.d.ts.map +1 -1
- package/dist/merged-exporter.js +31 -31
- package/dist/merged-exporter.js.map +1 -1
- package/dist/merged-remap.d.ts +0 -8
- package/dist/merged-remap.d.ts.map +1 -1
- package/dist/merged-remap.js +7 -17
- package/dist/merged-remap.js.map +1 -1
- package/dist/obj.d.ts +8 -8
- package/dist/obj.js +8 -8
- package/dist/parquet-exporter.d.ts.map +1 -1
- package/dist/parquet-exporter.js +14 -2
- package/dist/parquet-exporter.js.map +1 -1
- package/dist/property-value-serialization.d.ts.map +1 -1
- package/dist/property-value-serialization.js +7 -3
- package/dist/property-value-serialization.js.map +1 -1
- package/dist/reference-collector.d.ts.map +1 -1
- package/dist/reference-collector.js +17 -16
- package/dist/reference-collector.js.map +1 -1
- package/dist/retype.d.ts.map +1 -1
- package/dist/retype.js +12 -11
- package/dist/retype.js.map +1 -1
- package/dist/schema-conversion-loss-report.d.ts +2 -1
- package/dist/schema-conversion-loss-report.d.ts.map +1 -1
- package/dist/schema-conversion-loss-report.js +20 -11
- package/dist/schema-conversion-loss-report.js.map +1 -1
- package/dist/schema-converter-mep.d.ts +2 -0
- package/dist/schema-converter-mep.d.ts.map +1 -0
- package/dist/schema-converter-mep.js +9 -0
- package/dist/schema-converter-mep.js.map +1 -0
- package/dist/schema-converter-mep.json +96 -0
- package/dist/schema-converter-product-proxy.d.ts +25 -0
- package/dist/schema-converter-product-proxy.d.ts.map +1 -0
- package/dist/schema-converter-product-proxy.js +33 -0
- package/dist/schema-converter-product-proxy.js.map +1 -0
- package/dist/schema-converter-renames.d.ts +32 -0
- package/dist/schema-converter-renames.d.ts.map +1 -0
- package/dist/schema-converter-renames.js +60 -0
- package/dist/schema-converter-renames.js.map +1 -0
- package/dist/schema-converter.d.ts +8 -16
- package/dist/schema-converter.d.ts.map +1 -1
- package/dist/schema-converter.js +44 -71
- package/dist/schema-converter.js.map +1 -1
- package/dist/schema-style-flatten.d.ts +82 -0
- package/dist/schema-style-flatten.d.ts.map +1 -0
- package/dist/schema-style-flatten.js +245 -0
- package/dist/schema-style-flatten.js.map +1 -0
- package/dist/step-argument-parser.d.ts +7 -2
- package/dist/step-argument-parser.d.ts.map +1 -1
- package/dist/step-argument-parser.js +69 -62
- package/dist/step-argument-parser.js.map +1 -1
- package/dist/step-attribute-mutations.d.ts.map +1 -1
- package/dist/step-attribute-mutations.js +21 -22
- package/dist/step-attribute-mutations.js.map +1 -1
- package/dist/step-export-contexts.d.ts +1 -1
- package/dist/step-export-contexts.d.ts.map +1 -1
- package/dist/step-export-contexts.js +4 -1
- package/dist/step-export-contexts.js.map +1 -1
- package/dist/step-export-types.d.ts +2 -0
- package/dist/step-export-types.d.ts.map +1 -1
- package/dist/step-export-types.js.map +1 -1
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +13 -13
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-outer-args.d.ts +10 -0
- package/dist/step-outer-args.d.ts.map +1 -1
- package/dist/step-outer-args.js +29 -12
- package/dist/step-outer-args.js.map +1 -1
- package/dist/step-overlay-entities.d.ts +2 -0
- package/dist/step-overlay-entities.d.ts.map +1 -1
- package/dist/step-overlay-entities.js +43 -11
- package/dist/step-overlay-entities.js.map +1 -1
- package/dist/step-pass-builder.d.ts.map +1 -1
- package/dist/step-pass-builder.js +2 -0
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-index.d.ts.map +1 -1
- package/dist/step-property-set-index.js +8 -3
- package/dist/step-property-set-index.js.map +1 -1
- package/dist/step-property-set-readers.d.ts +6 -0
- package/dist/step-property-set-readers.d.ts.map +1 -1
- package/dist/step-property-set-readers.js +53 -14
- package/dist/step-property-set-readers.js.map +1 -1
- package/dist/step-property-sets.d.ts +14 -0
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +25 -8
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-record-frame.d.ts +69 -0
- package/dist/step-record-frame.d.ts.map +1 -0
- package/dist/step-record-frame.js +136 -0
- package/dist/step-record-frame.js.map +1 -0
- package/dist/step-ref-scan.d.ts +8 -0
- package/dist/step-ref-scan.d.ts.map +1 -1
- package/dist/step-ref-scan.js +29 -8
- package/dist/step-ref-scan.js.map +1 -1
- package/dist/step-serialization.d.ts +16 -4
- package/dist/step-serialization.d.ts.map +1 -1
- package/dist/step-serialization.js +39 -13
- package/dist/step-serialization.js.map +1 -1
- package/dist/step-slot-grammar.d.ts +21 -18
- package/dist/step-slot-grammar.d.ts.map +1 -1
- package/dist/step-slot-grammar.js +210 -177
- package/dist/step-slot-grammar.js.map +1 -1
- package/dist/step-source-iteration.d.ts +1 -1
- package/dist/step-source-iteration.d.ts.map +1 -1
- package/dist/step-source-iteration.js +27 -3
- package/dist/step-source-iteration.js.map +1 -1
- package/dist/unit-normalize.d.ts.map +1 -1
- package/dist/unit-normalize.js +13 -20
- package/dist/unit-normalize.js.map +1 -1
- package/dist/zero-content.d.ts +21 -3
- package/dist/zero-content.d.ts.map +1 -1
- package/dist/zero-content.js +35 -3
- package/dist/zero-content.js.map +1 -1
- package/package.json +8 -8
|
@@ -23,17 +23,6 @@ export type IfcSchemaVersion = 'IFC2X3' | 'IFC4' | 'IFC4X3' | 'IFC5';
|
|
|
23
23
|
*/
|
|
24
24
|
export declare function convertEntityType(entityType: string, fromSchema: IfcSchemaVersion, toSchema: IfcSchemaVersion): string;
|
|
25
25
|
export declare function attrNameTable(schema: IfcSchemaVersion): Map<string, readonly string[]> | null;
|
|
26
|
-
/**
|
|
27
|
-
* True when `shorter` is a STRICT prefix of `longer` by attribute name — i.e.
|
|
28
|
-
* the longer form only *appended* attributes to the shorter one. Both the
|
|
29
|
-
* trailing-`$` padding (upgrade) and the tail trim (downgrade) are only safe
|
|
30
|
-
* then; many entities insert/reorder attributes mid-list (e.g.
|
|
31
|
-
* IfcMaterialProperties, IfcApproval, IfcTask), where padding or trimming would
|
|
32
|
-
* shift values into the wrong slots.
|
|
33
|
-
*
|
|
34
|
-
* Callers pass the shorter schema's list first, whichever direction they run in.
|
|
35
|
-
*/
|
|
36
|
-
export declare function isStrictAttrPrefix(shorter: readonly string[], longer: readonly string[]): boolean;
|
|
37
26
|
/**
|
|
38
27
|
* Convert a raw STEP entity line from one schema version to another.
|
|
39
28
|
*
|
|
@@ -64,12 +53,15 @@ export declare function isStrictAttrPrefix(shorter: readonly string[], longer: r
|
|
|
64
53
|
*/
|
|
65
54
|
export declare function convertStepLine(line: string, fromSchema: IfcSchemaVersion, toSchema: IfcSchemaVersion, random?: RandomSource, slots?: Ifc2x3SlotFill, withheldRefIds?: ReadonlySet<number>, ifc4Slots?: Ifc4SlotCheck, enums?: EnumReconciliation): string | null;
|
|
66
55
|
/**
|
|
67
|
-
* Check if an entity type should be skipped for the target schema
|
|
68
|
-
*
|
|
69
|
-
*
|
|
56
|
+
* Check if an entity type should be skipped for the target schema: these
|
|
57
|
+
* IFC4X3 types have no STEP representation in IFC2X3 or IFC4, so they are
|
|
58
|
+
* replaced by a synthesised IFCPROXY. IFC4X3 and IFC5 keep them.
|
|
70
59
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
60
|
+
* The five positioning types used to be RENAMED to IFCPROXY in
|
|
61
|
+
* `IFC4X3_TO_IFC4`, which kept their own attribute list under the new name:
|
|
62
|
+
* `IFCALIGNMENT(…,.ROAD.)` became an 8-attribute IFCPROXY with an alignment
|
|
63
|
+
* enum in `ProxyType`, where IfcProxy takes 9 (#7683, EXPORT-MERGE-8; Rust
|
|
64
|
+
* twin `should_skip_entity`).
|
|
73
65
|
*/
|
|
74
66
|
export declare function shouldSkipEntity(entityType: string, toSchema: IfcSchemaVersion): boolean;
|
|
75
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKxE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"schema-converter.d.ts","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKxE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAMtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AA0HrE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CASR;AAgED,wBAAgB,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,GAAG,IAAI,CAU7F;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,CAAC,EAAE,YAAY,EACrB,KAAK,CAAC,EAAE,cAAc,EACtB,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EACpC,SAAS,CAAC,EAAE,aAAa,EACzB,KAAK,CAAC,EAAE,kBAAkB,GACzB,MAAM,GAAG,IAAI,CAQf;AAmID;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAExF;AAcD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,MAAM,CAqBR"}
|
package/dist/schema-converter.js
CHANGED
|
@@ -17,6 +17,9 @@ import { BY_NAME_ATTR_REMAP_TYPES, remapRenamedAttributesByName } from './schema
|
|
|
17
17
|
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
18
18
|
import { Ifc2x3SlotFill } from './schema-converter-ifc2x3-slots.js';
|
|
19
19
|
import { referencesAnyExpressId } from './step-ref-scan.js';
|
|
20
|
+
import { productProxy } from './schema-converter-product-proxy.js';
|
|
21
|
+
import { MEP_IFC2X3_TYPES } from './schema-converter-mep.js';
|
|
22
|
+
import { isStrictAttrPrefix } from './schema-converter-renames.js';
|
|
20
23
|
export { computeWithheldRefIds } from './schema-untranslatable.js';
|
|
21
24
|
/**
|
|
22
25
|
* Entity type name mappings between schema versions.
|
|
@@ -38,7 +41,6 @@ const IFC2X3_TO_IFC4 = new Map([
|
|
|
38
41
|
]);
|
|
39
42
|
// ─── IFC4 → IFC2X3 type renames (reverse) ──────────────────────────────────
|
|
40
43
|
const IFC4_TO_IFC2X3 = new Map([
|
|
41
|
-
['IFCELECTRICDISTRIBUTIONBOARD', 'IFCELECTRICDISTRIBUTIONPOINT'],
|
|
42
44
|
['IFCBURNERTYPE', 'IFCGASTERMINALTYPE'],
|
|
43
45
|
// Types added in IFC4 that have no IFC2X3 equivalent → proxy
|
|
44
46
|
['IFCCHIMNEY', 'IFCBUILDINGELEMENTPROXY'],
|
|
@@ -128,11 +130,6 @@ const IFC4X3_TO_IFC4 = new Map([
|
|
|
128
130
|
['IFCTRACKELEMENT', 'IFCBUILDINGELEMENTPROXY'],
|
|
129
131
|
['IFCKERB', 'IFCBUILDINGELEMENTPROXY'],
|
|
130
132
|
['IFCCOURSE', 'IFCBUILDINGELEMENTPROXY'],
|
|
131
|
-
['IFCLINEARPOSITIONINGELEMENT', 'IFCPROXY'],
|
|
132
|
-
['IFCPOSITIONINGELEMENT', 'IFCPROXY'],
|
|
133
|
-
['IFCREFERENT', 'IFCPROXY'],
|
|
134
|
-
['IFCALIGNMENT', 'IFCPROXY'],
|
|
135
|
-
['IFCLINEARELEMENT', 'IFCPROXY'],
|
|
136
133
|
['IFCCONVEYORSEGMENT', 'IFCFLOWSEGMENT'],
|
|
137
134
|
['IFCLIQUIDTERMINAL', 'IFCFLOWTERMINAL'],
|
|
138
135
|
['IFCMOBILETELECOMMUNICATIONSAPPLIANCE', 'IFCCOMMUNICATIONSAPPLIANCE'],
|
|
@@ -151,7 +148,9 @@ export function convertEntityType(entityType, fromSchema, toSchema) {
|
|
|
151
148
|
if (fromSchema === toSchema)
|
|
152
149
|
return entityType;
|
|
153
150
|
const upper = entityType.toUpperCase();
|
|
154
|
-
|
|
151
|
+
const mepTarget = toSchema === 'IFC2X3' ? MEP_IFC2X3_TYPES.get(upper) : undefined;
|
|
152
|
+
if (mepTarget)
|
|
153
|
+
return mepTarget;
|
|
155
154
|
const map = getConversionMap(fromSchema, toSchema);
|
|
156
155
|
return map?.get(upper) ?? upper;
|
|
157
156
|
}
|
|
@@ -160,7 +159,6 @@ export function convertEntityType(entityType, fromSchema, toSchema) {
|
|
|
160
159
|
* For multi-step conversions (e.g., IFC2X3 → IFC4X3), chains maps.
|
|
161
160
|
*/
|
|
162
161
|
function getConversionMap(from, to) {
|
|
163
|
-
// Direct conversions
|
|
164
162
|
if (from === 'IFC2X3' && to === 'IFC4')
|
|
165
163
|
return IFC2X3_TO_IFC4;
|
|
166
164
|
if (from === 'IFC4' && to === 'IFC2X3')
|
|
@@ -224,25 +222,6 @@ export function attrNameTable(schema) {
|
|
|
224
222
|
ATTR_NAME_TABLES.set(schema, table);
|
|
225
223
|
return table;
|
|
226
224
|
}
|
|
227
|
-
/**
|
|
228
|
-
* True when `shorter` is a STRICT prefix of `longer` by attribute name — i.e.
|
|
229
|
-
* the longer form only *appended* attributes to the shorter one. Both the
|
|
230
|
-
* trailing-`$` padding (upgrade) and the tail trim (downgrade) are only safe
|
|
231
|
-
* then; many entities insert/reorder attributes mid-list (e.g.
|
|
232
|
-
* IfcMaterialProperties, IfcApproval, IfcTask), where padding or trimming would
|
|
233
|
-
* shift values into the wrong slots.
|
|
234
|
-
*
|
|
235
|
-
* Callers pass the shorter schema's list first, whichever direction they run in.
|
|
236
|
-
*/
|
|
237
|
-
export function isStrictAttrPrefix(shorter, longer) {
|
|
238
|
-
if (shorter.length >= longer.length)
|
|
239
|
-
return false;
|
|
240
|
-
for (let i = 0; i < shorter.length; i++) {
|
|
241
|
-
if (shorter[i] !== longer[i])
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
return true;
|
|
245
|
-
}
|
|
246
225
|
/** Count top-level (comma-separated) STEP attributes, respecting nested
|
|
247
226
|
* parentheses and single-quoted strings. Empty list → 0. */
|
|
248
227
|
function requireTopLevelAttributes(attrsRaw) {
|
|
@@ -296,21 +275,19 @@ export function convertStepLine(line, fromSchema, toSchema, random, slots, withh
|
|
|
296
275
|
/** {@link convertStepLine} before the IFC2X3 required-slot fills, between two
|
|
297
276
|
* different schemas. */
|
|
298
277
|
function convertRecord(line, fromSchema, toSchema, random, withheldRefIds) {
|
|
299
|
-
// Parse: #ID=TYPE(attrs); — tolerate whitespace around `=` and
|
|
300
|
-
//
|
|
301
|
-
//
|
|
302
|
-
|
|
303
|
-
const match = line.match(/^\s*(#\d+=)\s*(\w+)\((.*)?\);?\s*$/);
|
|
278
|
+
// Parse: #ID=TYPE(attrs); — tolerate whitespace around `=` and `(` (Tekla's
|
|
279
|
+
// `#34498= IFCOPENINGELEMENT(`, Viadotto_Acerno's `#159655 = IFC...(`, #7742).
|
|
280
|
+
// Otherwise the line passed through unconverted under the target header.
|
|
281
|
+
const match = line.match(/^\s*(#\d+)\s*=\s*(\w+)\s*\((.*)?\);?\s*$/);
|
|
304
282
|
if (!match)
|
|
305
283
|
return line; // not a STEP entity line, pass through
|
|
306
|
-
const prefix = match[1]
|
|
284
|
+
const prefix = `${match[1]}=`; // "#123="
|
|
307
285
|
const entityType = match[2].toUpperCase();
|
|
308
286
|
const attrsRaw = match[3] ?? '';
|
|
309
287
|
// Validate before choosing any conversion branch. A malformed slot list
|
|
310
288
|
// must not still receive a type rename, proxy replacement, trim, or padding:
|
|
311
289
|
// that would partially convert a record whose positions are untrustworthy.
|
|
312
|
-
requireTopLevelAttributes(attrsRaw);
|
|
313
|
-
// Convert entity type
|
|
290
|
+
const args = requireTopLevelAttributes(attrsRaw);
|
|
314
291
|
const newType = convertEntityType(entityType, fromSchema, toSchema);
|
|
315
292
|
// A record whose attribute list references an id this export is OMITTING
|
|
316
293
|
// (`withheldRefIds`, #4206) cannot carry that reference forward, no matter
|
|
@@ -321,8 +298,8 @@ function convertRecord(line, fromSchema, toSchema, random, withheldRefIds) {
|
|
|
321
298
|
if (withheldRefIds && withheldRefIds.size > 0 && referencesAnyExpressId(attrsRaw, withheldRefIds)) {
|
|
322
299
|
return resolveUnrepresentedEntity(prefix, entityType, attrsRaw, toSchema, random, withheldRefIds !== undefined);
|
|
323
300
|
}
|
|
324
|
-
//
|
|
325
|
-
//
|
|
301
|
+
// No representation in the target schema: an IFCPROXY keeping their
|
|
302
|
+
// IfcProduct attributes (`productProxy`) preserves ids and references.
|
|
326
303
|
if (shouldSkipEntity(newType, toSchema)) {
|
|
327
304
|
// Derive the placeholder's GlobalId from the source line rather than
|
|
328
305
|
// minting a random one (#2733). Every downgraded entity used to get a
|
|
@@ -349,7 +326,7 @@ function convertRecord(line, fromSchema, toSchema, random, withheldRefIds) {
|
|
|
349
326
|
const guid = random
|
|
350
327
|
? generateIfcGuid(random)
|
|
351
328
|
: deterministicGlobalId(`ifcproxy:${prefix}${entityType}(${attrsRaw})`);
|
|
352
|
-
return
|
|
329
|
+
return productProxy(prefix, guid, entityType, args);
|
|
353
330
|
}
|
|
354
331
|
// Reconcile the attribute list against the target schema. WHICH WAY it moves
|
|
355
332
|
// is decided by the strict attribute-NAME prefix relation alone, never by the
|
|
@@ -382,21 +359,24 @@ function convertRecord(line, fromSchema, toSchema, random, withheldRefIds) {
|
|
|
382
359
|
// a type entirely unknown to `targetTable` (not merely a strict-prefix
|
|
383
360
|
// attribute mismatch, handled below) has no representation in `toSchema` at
|
|
384
361
|
// all — see `resolveUnrepresentedEntity` for why it can't just pass through.
|
|
385
|
-
|
|
362
|
+
// On IFC2X3 even with no source entry, as Rust's `has_representation`: a
|
|
363
|
+
// non-entity head (`#1=IFCLABEL('x');`) fails closed (#7683, D3).
|
|
364
|
+
if (targetTable && !tgtAttrs && (toSchema === 'IFC2X3' || (toSchema === 'IFC4' && fromSchema === 'IFC4X3' && srcAttrs))) {
|
|
386
365
|
return resolveUnrepresentedEntity(prefix, entityType, attrsRaw, toSchema, random, withheldRefIds !== undefined);
|
|
387
366
|
}
|
|
388
367
|
if (srcAttrs && tgtAttrs) {
|
|
389
|
-
if (isStrictAttrPrefix(tgtAttrs, srcAttrs)) {
|
|
390
|
-
finalAttrs = trimAttributes(attrsRaw, tgtAttrs.length);
|
|
368
|
+
if (isStrictAttrPrefix(tgtAttrs, srcAttrs, entityType)) {
|
|
369
|
+
finalAttrs = trimAttributes(attrsRaw, args, tgtAttrs.length);
|
|
391
370
|
}
|
|
392
|
-
else if (isStrictAttrPrefix(srcAttrs, tgtAttrs)) {
|
|
393
|
-
const currentCount =
|
|
371
|
+
else if (isStrictAttrPrefix(srcAttrs, tgtAttrs, entityType)) {
|
|
372
|
+
const currentCount = args.length;
|
|
394
373
|
if (currentCount > 0 && currentCount < tgtAttrs.length) {
|
|
395
374
|
finalAttrs = `${finalAttrs}${',$'.repeat(tgtAttrs.length - currentCount)}`;
|
|
396
375
|
}
|
|
397
376
|
}
|
|
398
|
-
else if (entityType !== newType && BY_NAME_ATTR_REMAP_TYPES.has(entityType)
|
|
399
|
-
|
|
377
|
+
else if (entityType !== newType && (BY_NAME_ATTR_REMAP_TYPES.has(entityType)
|
|
378
|
+
|| (toSchema === 'IFC2X3' && MEP_IFC2X3_TYPES.has(entityType)))) {
|
|
379
|
+
// MEP controls need ControlElementId, never the source PredefinedType (#8019).
|
|
400
380
|
const remapped = remapRenamedAttributesByName(attrsRaw, srcAttrs, tgtAttrs);
|
|
401
381
|
if (remapped === null)
|
|
402
382
|
throw new Error('Schema conversion refused an invalid STEP argument list.');
|
|
@@ -405,43 +385,36 @@ function convertRecord(line, fromSchema, toSchema, random, withheldRefIds) {
|
|
|
405
385
|
}
|
|
406
386
|
return `${prefix}${newType}(${finalAttrs});`;
|
|
407
387
|
}
|
|
388
|
+
/** IFC4X3 alignment and positioning types replaced by a synthesised IFCPROXY below IFC4X3. */
|
|
389
|
+
const SKIP_TYPES = new Set([
|
|
390
|
+
'IFCALIGNMENTCANT', 'IFCALIGNMENTHORIZONTAL', 'IFCALIGNMENTVERTICAL', 'IFCALIGNMENTSEGMENT',
|
|
391
|
+
'IFCALIGNMENT', 'IFCREFERENT', 'IFCLINEARELEMENT', 'IFCPOSITIONINGELEMENT', 'IFCLINEARPOSITIONINGELEMENT',
|
|
392
|
+
]);
|
|
408
393
|
/**
|
|
409
|
-
* Check if an entity type should be skipped for the target schema
|
|
410
|
-
*
|
|
411
|
-
*
|
|
394
|
+
* Check if an entity type should be skipped for the target schema: these
|
|
395
|
+
* IFC4X3 types have no STEP representation in IFC2X3 or IFC4, so they are
|
|
396
|
+
* replaced by a synthesised IFCPROXY. IFC4X3 and IFC5 keep them.
|
|
412
397
|
*
|
|
413
|
-
*
|
|
414
|
-
*
|
|
398
|
+
* The five positioning types used to be RENAMED to IFCPROXY in
|
|
399
|
+
* `IFC4X3_TO_IFC4`, which kept their own attribute list under the new name:
|
|
400
|
+
* `IFCALIGNMENT(…,.ROAD.)` became an 8-attribute IFCPROXY with an alignment
|
|
401
|
+
* enum in `ProxyType`, where IfcProxy takes 9 (#7683, EXPORT-MERGE-8; Rust
|
|
402
|
+
* twin `should_skip_entity`).
|
|
415
403
|
*/
|
|
416
404
|
export function shouldSkipEntity(entityType, toSchema) {
|
|
417
|
-
|
|
418
|
-
if (toSchema === 'IFC4X3' || toSchema === 'IFC5') {
|
|
419
|
-
return false;
|
|
420
|
-
}
|
|
421
|
-
// For older schemas, these alignment types have no meaningful representation
|
|
422
|
-
const skipTypes = new Set([
|
|
423
|
-
'IFCALIGNMENTCANT',
|
|
424
|
-
'IFCALIGNMENTHORIZONTAL',
|
|
425
|
-
'IFCALIGNMENTVERTICAL',
|
|
426
|
-
'IFCALIGNMENTSEGMENT',
|
|
427
|
-
]);
|
|
428
|
-
return skipTypes.has(entityType);
|
|
405
|
+
return toSchema !== 'IFC4X3' && toSchema !== 'IFC5' && SKIP_TYPES.has(entityType);
|
|
429
406
|
}
|
|
430
407
|
/**
|
|
431
408
|
* Trim a STEP attribute list to a maximum number of attributes.
|
|
432
409
|
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
410
|
+
* Keeps the first `maxCount` of `args`, the record's already-validated split
|
|
411
|
+
* (one split per record, #7683).
|
|
435
412
|
*/
|
|
436
|
-
function trimAttributes(attrsRaw, maxCount) {
|
|
413
|
+
function trimAttributes(attrsRaw, args, maxCount) {
|
|
437
414
|
if (!attrsRaw.trim())
|
|
438
415
|
return attrsRaw;
|
|
439
|
-
//
|
|
440
|
-
|
|
441
|
-
// schema keeps none.
|
|
442
|
-
if (maxCount <= 0)
|
|
443
|
-
return '';
|
|
444
|
-
return requireTopLevelAttributes(attrsRaw).slice(0, maxCount).join(',');
|
|
416
|
+
// An entity with no attributes in the target schema keeps none.
|
|
417
|
+
return args.slice(0, Math.max(0, maxCount)).join(',');
|
|
445
418
|
}
|
|
446
419
|
/**
|
|
447
420
|
* Check if a conversion between two schema versions requires entity type changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema-converter.js","sourceRoot":"","sources":["../src/schema-converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `IfcPresentationStyleAssignment` flattening for an IFC2X3 or IFC4 source
|
|
3
|
+
* converted to IFC4X3 (#7742, D57).
|
|
4
|
+
*
|
|
5
|
+
* IFC4X3 dropped the assignment: `IfcStyledItem.Styles` takes
|
|
6
|
+
* `IfcPresentationStyle` members directly. Refusing it (non-rooted, absent from
|
|
7
|
+
* the IFC4X3 registry) would fail most real IFC2X3 files, so the conversion
|
|
8
|
+
* flattens instead: every `Styles` entry of an `IfcStyledItem` (or subtype)
|
|
9
|
+
* naming an assignment is replaced by that assignment's own members, in order,
|
|
10
|
+
* each kept once, and the assignment records are not written.
|
|
11
|
+
*
|
|
12
|
+
* Complete by the schemas' own rules: in IFC2X3 and IFC4 the only legal
|
|
13
|
+
* referrer of an assignment is `IfcStyledItem.Styles`. It is a pre-pass because
|
|
14
|
+
* an assignment may follow the styled item that names it. Twin of
|
|
15
|
+
* `rust/export/src/schema_style_flatten.rs`, pinned for both by
|
|
16
|
+
* `rust/export/tests/fixtures/schema_style_flatten_vectors.json`.
|
|
17
|
+
*/
|
|
18
|
+
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
19
|
+
import { convertStepLine, type IfcSchemaVersion } from './schema-converter.js';
|
|
20
|
+
export declare class StyleFlatten {
|
|
21
|
+
private readonly members;
|
|
22
|
+
/**
|
|
23
|
+
* Styled items whose `Styles` names records only, by those ids: the ones
|
|
24
|
+
* that can flatten to nothing. Read from the store once an assignment holds
|
|
25
|
+
* nothing IFC4X3 can name (`collected`); noted lines always.
|
|
26
|
+
*/
|
|
27
|
+
private readonly styled;
|
|
28
|
+
private collected;
|
|
29
|
+
/**
|
|
30
|
+
* Styled items whose flattened `Styles` is empty (`SET [1:?]` in IFC4X3, so
|
|
31
|
+
* `()` is not a file): not written, and every reference to one is removed (a
|
|
32
|
+
* list member) or written `$` (a single slot).
|
|
33
|
+
*/
|
|
34
|
+
private emptied;
|
|
35
|
+
/** True for the one conversion that flattens: IFC2X3 or IFC4 source, IFC4X3 target. */
|
|
36
|
+
static applies(from: IfcSchemaVersion, to: IfcSchemaVersion): boolean;
|
|
37
|
+
/** An empty table for a conversion that flattens; undefined for one that does not. */
|
|
38
|
+
static create(from: IfcSchemaVersion, to: IfcSchemaVersion): StyleFlatten | undefined;
|
|
39
|
+
/** Register an assignment record by its text (source, created, copied or edited; the last record with an id wins). */
|
|
40
|
+
note(expressId: number, text: string): void;
|
|
41
|
+
/** {@link note}, for any record line: an assignment or a styled item is registered. Call {@link settle} after. */
|
|
42
|
+
noteLine(line: string): void;
|
|
43
|
+
/** From record lines (assignments and styled items are read, the rest ignored). */
|
|
44
|
+
static fromRecords(records: Iterable<string>): StyleFlatten;
|
|
45
|
+
/** Read every assignment of a parsed store; undefined when the conversion does not flatten. */
|
|
46
|
+
static fromStore(store: Pick<IfcDataStore, 'entityIndex' | 'source'>, from: IfcSchemaVersion, to: IfcSchemaVersion): StyleFlatten | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Edited source assignments: each id's record text after the session's
|
|
49
|
+
* edits (`edited(id)`, null when unchanged), so a styled item flattens to
|
|
50
|
+
* the members the user set, not the source ones.
|
|
51
|
+
*/
|
|
52
|
+
noteEdited(store: Pick<IfcDataStore, 'entityIndex' | 'source'>, edited: (id: number, text: string) => string | null): void;
|
|
53
|
+
/** Decide which styled items flatten to nothing, reading the store's styled items once an assignment holds nothing. */
|
|
54
|
+
settle(store?: Pick<IfcDataStore, 'entityIndex' | 'source'>): void;
|
|
55
|
+
/** A record that is not written: an assignment, or a styled item whose `Styles` flattens to nothing. */
|
|
56
|
+
drops(expressId: number): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The flattened `Styles` members, or null when this is not a styled item
|
|
59
|
+
* naming an assignment. `args` is the validated split.
|
|
60
|
+
*/
|
|
61
|
+
private flattened;
|
|
62
|
+
/** `arg` without its references to an emptied styled item; null when `arg` is one. */
|
|
63
|
+
private strip;
|
|
64
|
+
/**
|
|
65
|
+
* The attribute list with its `Styles` entries flattened and its references
|
|
66
|
+
* to an emptied styled item removed; `'drop'` when the record is a styled
|
|
67
|
+
* item left with no style; null when nothing changes. `args` is the validated split.
|
|
68
|
+
*/
|
|
69
|
+
flatten(entityType: string, args: readonly string[]): string | 'drop' | null;
|
|
70
|
+
/**
|
|
71
|
+
* One record through the flatten: null for an assignment or an emptied
|
|
72
|
+
* styled item (not written), the rewritten line for a record naming either,
|
|
73
|
+
* else `line`.
|
|
74
|
+
*/
|
|
75
|
+
apply(line: string): string | null;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* `convertStepLine`, with `styles` applied first (see {@link StyleFlatten.apply}).
|
|
79
|
+
* Without `styles` it is `convertStepLine` itself.
|
|
80
|
+
*/
|
|
81
|
+
export declare function convertStepLineFlattening(styles: StyleFlatten | undefined, ...args: Parameters<typeof convertStepLine>): string | null;
|
|
82
|
+
//# sourceMappingURL=schema-style-flatten.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-style-flatten.d.ts","sourceRoot":"","sources":["../src/schema-style-flatten.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA8B/E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,SAAS,CAAS;IAC1B;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAAqB;IAEpC,uFAAuF;IACvF,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,GAAG,OAAO;IAIrE,sFAAsF;IACtF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,GAAG,YAAY,GAAG,SAAS;IAIrF,sHAAsH;IACtH,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAU3C,kHAAkH;IAClH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa5B,mFAAmF;IACnF,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY;IAQ3D,+FAA+F;IAC/F,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,QAAQ,CAAC,EACnD,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,gBAAgB,GACnB,YAAY,GAAG,SAAS;IAa3B;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI;IAY1H,uHAAuH;IACvH,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,QAAQ,CAAC,GAAG,IAAI;IAkBlE,wGAAwG;IACxG,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC;;;OAGG;IACH,OAAO,CAAC,SAAS;IAkBjB,sFAAsF;IACtF,OAAO,CAAC,KAAK;IAYb;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAsB5E;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAUnC;AAID;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAC1C,MAAM,GAAG,IAAI,CAIf"}
|