@ifc-lite/export 4.7.4 → 4.9.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/entity-subgraph.d.ts +56 -0
- package/dist/entity-subgraph.d.ts.map +1 -0
- package/dist/entity-subgraph.js +138 -0
- package/dist/entity-subgraph.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lod0-generator.d.ts.map +1 -1
- package/dist/lod0-generator.js +4 -1
- package/dist/lod0-generator.js.map +1 -1
- package/dist/merged-empty-containers.d.ts +12 -8
- package/dist/merged-empty-containers.d.ts.map +1 -1
- package/dist/merged-empty-containers.js +8 -4
- package/dist/merged-empty-containers.js.map +1 -1
- package/dist/merged-exporter.d.ts +1 -1
- package/dist/merged-exporter.d.ts.map +1 -1
- package/dist/merged-exporter.js +25 -28
- package/dist/merged-exporter.js.map +1 -1
- package/dist/merged-guid.d.ts +4 -0
- package/dist/merged-guid.d.ts.map +1 -1
- package/dist/merged-guid.js +14 -0
- package/dist/merged-guid.js.map +1 -1
- package/dist/merged-inverse-claims.d.ts +154 -0
- package/dist/merged-inverse-claims.d.ts.map +1 -0
- package/dist/merged-inverse-claims.js +306 -0
- package/dist/merged-inverse-claims.js.map +1 -0
- package/dist/merged-planner-guids.d.ts +32 -0
- package/dist/merged-planner-guids.d.ts.map +1 -0
- package/dist/merged-planner-guids.js +79 -0
- package/dist/merged-planner-guids.js.map +1 -0
- package/dist/merged-subcontext.d.ts.map +1 -1
- package/dist/merged-subcontext.js +1 -0
- package/dist/merged-subcontext.js.map +1 -1
- package/dist/parquet-exporter.d.ts.map +1 -1
- package/dist/parquet-exporter.js +2 -0
- package/dist/parquet-exporter.js.map +1 -1
- package/dist/property-value-serialization.d.ts.map +1 -1
- package/dist/property-value-serialization.js +2 -1
- package/dist/property-value-serialization.js.map +1 -1
- package/dist/reference-collector.js +3 -0
- package/dist/reference-collector.js.map +1 -1
- package/dist/related-entities.d.ts.map +1 -1
- package/dist/related-entities.js +6 -0
- package/dist/related-entities.js.map +1 -1
- package/dist/remesh-context-roots.d.ts +36 -0
- package/dist/remesh-context-roots.d.ts.map +1 -0
- package/dist/remesh-context-roots.js +126 -0
- package/dist/remesh-context-roots.js.map +1 -0
- package/dist/step-collection.js +1 -1
- package/dist/step-collection.js.map +1 -1
- package/dist/step-coordinate-options.d.ts +27 -0
- package/dist/step-coordinate-options.d.ts.map +1 -0
- package/dist/step-coordinate-options.js +5 -0
- package/dist/step-coordinate-options.js.map +1 -0
- package/dist/step-export-progress.d.ts +4 -0
- package/dist/step-export-progress.d.ts.map +1 -0
- package/dist/step-export-progress.js +9 -0
- package/dist/step-export-progress.js.map +1 -0
- package/dist/step-export-types.d.ts +5 -7
- 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 +1 -0
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +31 -18
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-map-transform.d.ts +7 -0
- package/dist/step-map-transform.d.ts.map +1 -0
- package/dist/step-map-transform.js +89 -0
- package/dist/step-map-transform.js.map +1 -0
- package/dist/step-map-unit-normalization.d.ts +7 -0
- package/dist/step-map-unit-normalization.d.ts.map +1 -0
- package/dist/step-map-unit-normalization.js +190 -0
- package/dist/step-map-unit-normalization.js.map +1 -0
- package/dist/step-omission-predicates.d.ts +8 -0
- package/dist/step-omission-predicates.d.ts.map +1 -1
- package/dist/step-omission-predicates.js +11 -1
- package/dist/step-omission-predicates.js.map +1 -1
- package/dist/step-overlay-entities.d.ts.map +1 -1
- package/dist/step-overlay-entities.js +23 -1
- 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 +1 -0
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-collection.d.ts +2 -0
- package/dist/step-property-set-collection.d.ts.map +1 -1
- package/dist/step-property-set-collection.js +42 -21
- package/dist/step-property-set-collection.js.map +1 -1
- package/dist/step-property-set-generators.d.ts +1 -1
- package/dist/step-property-set-generators.d.ts.map +1 -1
- package/dist/step-property-set-generators.js +19 -2
- package/dist/step-property-set-generators.js.map +1 -1
- package/dist/step-property-set-index.js +5 -2
- package/dist/step-property-set-index.js.map +1 -1
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +5 -2
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-pset-copy-on-write.d.ts +75 -0
- package/dist/step-pset-copy-on-write.d.ts.map +1 -0
- package/dist/step-pset-copy-on-write.js +146 -0
- package/dist/step-pset-copy-on-write.js.map +1 -0
- package/dist/step-source-iteration.d.ts.map +1 -1
- package/dist/step-source-iteration.js +7 -0
- package/dist/step-source-iteration.js.map +1 -1
- package/package.json +9 -8
- package/dist/merged-decomposition-parents.d.ts +0 -99
- package/dist/merged-decomposition-parents.d.ts.map +0 -1
- package/dist/merged-decomposition-parents.js +0 -142
- package/dist/merged-decomposition-parents.js.map +0 -1
package/dist/step-exporter.js
CHANGED
|
@@ -11,6 +11,9 @@ import { writeOverlayCreatedEntities } from './step-overlay-entities.js';
|
|
|
11
11
|
import { generatePropertyAndQuantitySetEntities } from './step-property-sets.js';
|
|
12
12
|
import { resolveFallbackOwnerHistoryRef, } from './step-property-set-readers.js';
|
|
13
13
|
import { collectModifications } from './step-collection.js';
|
|
14
|
+
import { normalizeMapUnitsToMetres } from './step-map-unit-normalization.js';
|
|
15
|
+
import { normalizeMapGeometry } from './step-map-transform.js';
|
|
16
|
+
import { reportStepExportProgress } from './step-export-progress.js';
|
|
14
17
|
import { assembleExportResult } from './step-header.js';
|
|
15
18
|
import { applySourceLineMutations } from './step-attribute-mutations.js';
|
|
16
19
|
import { buildExportPass } from './step-pass-builder.js';
|
|
@@ -57,6 +60,13 @@ export class StepExporter {
|
|
|
57
60
|
* Export to STEP format
|
|
58
61
|
*/
|
|
59
62
|
export(options) {
|
|
63
|
+
if (options.normalizeMapGeometry) {
|
|
64
|
+
throw new Error('Map geometry normalization requires exportAsync().');
|
|
65
|
+
}
|
|
66
|
+
const prepared = this.preparePass(options);
|
|
67
|
+
return 'result' in prepared ? prepared.result : assembleExportResult(prepared.pass);
|
|
68
|
+
}
|
|
69
|
+
preparePass(options) {
|
|
60
70
|
// Both owner-history caches are per-EXPORT, not per-exporter: they now
|
|
61
71
|
// depend on `willBeEmitted`, which depends on this call's options. Reusing
|
|
62
72
|
// one exporter for a `visibleOnly` export and then a full one would
|
|
@@ -130,6 +140,12 @@ export class StepExporter {
|
|
|
130
140
|
// edits — everything `pass` needs before the omission predicates below,
|
|
131
141
|
// and before the output passes that consume them, can run (#2475, the
|
|
132
142
|
// collection block).
|
|
143
|
+
if (options.normalizeMapUnitsToMetres && (options.deltaOnly || converting || (schema !== 'IFC4' && schema !== 'IFC4X3'))) {
|
|
144
|
+
throw new Error('Map-unit normalization requires a full export to the source IFC4 or IFC4X3 schema.');
|
|
145
|
+
}
|
|
146
|
+
if (options.normalizeMapGeometry && (options.deltaOnly || converting || excludeGeometry || (schema !== 'IFC4' && schema !== 'IFC4X3'))) {
|
|
147
|
+
throw new Error('Map geometry normalization requires a full geometry export to the source IFC4 or IFC4X3 schema.');
|
|
148
|
+
}
|
|
133
149
|
collectModifications(pass, options, applyMutations, this.collectionContext());
|
|
134
150
|
// Which ids this export may still NAME, now that the collection phase has
|
|
135
151
|
// decided which ids it is WRITING (#2475). Must stay here, between those
|
|
@@ -138,7 +154,7 @@ export class StepExporter {
|
|
|
138
154
|
const omission = evaluateOmissionPredicates(pass, options, applyMutations, excludeGeometry, this.mutationView);
|
|
139
155
|
// A deltaOnly export with nothing to say is already finished.
|
|
140
156
|
if (omission.kind === 'short-circuit')
|
|
141
|
-
return omission.result;
|
|
157
|
+
return { result: omission.result };
|
|
142
158
|
const { isOmittedFromOutput, mayNameOmittedRefs } = omission;
|
|
143
159
|
// The owner history an IFC2X3 downgrade reuses for `$` OwnerHistory slots
|
|
144
160
|
// (#4686): the same surviving one the generated property sets fall back to.
|
|
@@ -164,30 +180,27 @@ export class StepExporter {
|
|
|
164
180
|
// Add overlay-created entities (store.addEntity / mutationView.createEntity),
|
|
165
181
|
// applying the same filters as the source-iteration pass (#2475 step 2e).
|
|
166
182
|
writeOverlayCreatedEntities(pass, options, excludeGeometry, applyMutations, mayNameOmittedRefs, isOmittedFromOutput, buildOverlayEntitiesContext(this.mutationView));
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
|
|
183
|
+
// Complete map-unit adaptation before optional Rust planning and assembly.
|
|
184
|
+
if (options.normalizeMapUnitsToMetres)
|
|
185
|
+
normalizeMapUnitsToMetres(pass, () => this.nextExpressId++);
|
|
186
|
+
return { pass };
|
|
170
187
|
}
|
|
171
188
|
/**
|
|
172
189
|
* Async export that yields to the event loop periodically, keeping the
|
|
173
190
|
* UI responsive during large exports. Calls onProgress with live stats.
|
|
174
191
|
*/
|
|
175
192
|
async exportAsync(options) {
|
|
176
|
-
const onProgress = options.onProgress;
|
|
177
|
-
// Report preparing phase
|
|
178
193
|
const totalEntities = getCompleteEntityIndex(this.dataStore).size;
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
const result =
|
|
188
|
-
|
|
189
|
-
onProgress({ phase: 'assembling', percent: 0.95, entitiesProcessed: totalEntities, entitiesTotal: totalEntities });
|
|
190
|
-
await new Promise(r => setTimeout(r, 0));
|
|
194
|
+
await reportStepExportProgress(options.onProgress, 'preparing', 0, totalEntities);
|
|
195
|
+
// Sync and async share the mutation-resolved pass. Optional Rust domain
|
|
196
|
+
// planning happens before the shared ledger/header assembly.
|
|
197
|
+
await reportStepExportProgress(options.onProgress, 'entities', 0.1, totalEntities);
|
|
198
|
+
const prepared = this.preparePass(options);
|
|
199
|
+
if ('pass' in prepared && options.normalizeMapGeometry) {
|
|
200
|
+
await normalizeMapGeometry(prepared.pass, id => { this.nextExpressId = Math.max(this.nextExpressId, id + 1); });
|
|
201
|
+
}
|
|
202
|
+
const result = 'result' in prepared ? prepared.result : assembleExportResult(prepared.pass);
|
|
203
|
+
await reportStepExportProgress(options.onProgress, 'assembling', 0.95, totalEntities);
|
|
191
204
|
return result;
|
|
192
205
|
}
|
|
193
206
|
/**
|
|
@@ -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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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExportPass } from './step-export-types.js';
|
|
2
|
+
/** Mutation-resolved final-pass seam. Rust owns all coordinate math and IFC
|
|
3
|
+
* semantic preflight; TypeScript applies complete patches and settles the same
|
|
4
|
+
* per-entity ledger as the other export phases (#6587).
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizeMapGeometry(pass: ExportPass, reserveId: (id: number) => void): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=step-map-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-transform.d.ts","sourceRoot":"","sources":["../src/step-map-transform.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD3G"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 { assembleStepBytes } from './step-file-assembly.js';
|
|
5
|
+
import { readStepSlots } from './step-argument-parser.js';
|
|
6
|
+
/** Mutation-resolved final-pass seam. Rust owns all coordinate math and IFC
|
|
7
|
+
* semantic preflight; TypeScript applies complete patches and settles the same
|
|
8
|
+
* per-entity ledger as the other export phases (#6587).
|
|
9
|
+
*/
|
|
10
|
+
export async function normalizeMapGeometry(pass, reserveId) {
|
|
11
|
+
// Ordinary STEP export remains usable without a WASM runtime installed.
|
|
12
|
+
const { GeometryProcessor } = await import('@ifc-lite/geometry');
|
|
13
|
+
const processor = new GeometryProcessor();
|
|
14
|
+
let plan;
|
|
15
|
+
try {
|
|
16
|
+
await processor.init();
|
|
17
|
+
const content = assembleStepBytes(pass.buildHeader(0), pass.entities);
|
|
18
|
+
plan = readPlan(processor.planMapConversionNormalization(content));
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
processor.dispose();
|
|
22
|
+
}
|
|
23
|
+
if (plan.warnings.length) {
|
|
24
|
+
if (plan.replacements.length || plan.newEntities.length)
|
|
25
|
+
throw new Error('Non-atomic map normalization plan.');
|
|
26
|
+
pass.warnings.push(...plan.warnings);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Validate the entire patch set before changing an output line. A binding
|
|
30
|
+
// mismatch must not produce a partly normalized model or overwrite an ID.
|
|
31
|
+
const indexes = new Map();
|
|
32
|
+
for (let index = 0; index < pass.entities.length; index++) {
|
|
33
|
+
const id = entityId(pass.entities[index]);
|
|
34
|
+
if (id !== undefined) {
|
|
35
|
+
if (indexes.has(id))
|
|
36
|
+
throw new Error('Duplicate entity in normalization input.');
|
|
37
|
+
indexes.set(id, index);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const used = new Set();
|
|
41
|
+
for (const patch of [...plan.replacements, ...plan.newEntities]) {
|
|
42
|
+
if (used.has(patch.expressId))
|
|
43
|
+
throw new Error('Duplicate map normalization patch.');
|
|
44
|
+
used.add(patch.expressId);
|
|
45
|
+
}
|
|
46
|
+
if (plan.replacements.some(patch => !indexes.has(patch.expressId))
|
|
47
|
+
|| plan.newEntities.some(patch => indexes.has(patch.expressId))) {
|
|
48
|
+
throw new Error('Map normalization patch IDs do not match the completed export pass.');
|
|
49
|
+
}
|
|
50
|
+
for (const patch of plan.replacements) {
|
|
51
|
+
// All IDs were validated above; preserve full lines/edits from this pass.
|
|
52
|
+
const index = indexes.get(patch.expressId);
|
|
53
|
+
if (index === undefined)
|
|
54
|
+
throw new Error('Map normalization replacement is absent.');
|
|
55
|
+
pass.entities[index] = patch.line;
|
|
56
|
+
if (!pass.effective.isOverlayCreated(patch.expressId) && pass.effective.has(patch.expressId)) {
|
|
57
|
+
pass.modifications.nominate(patch.expressId, 'positional');
|
|
58
|
+
pass.modifications.recordEmitted(patch.expressId, 'positional');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
for (const patch of plan.newEntities) {
|
|
62
|
+
pass.entities.push(patch.line);
|
|
63
|
+
reserveId(patch.expressId);
|
|
64
|
+
}
|
|
65
|
+
pass.newEntityCount += plan.newEntities.length;
|
|
66
|
+
}
|
|
67
|
+
function entityId(line) {
|
|
68
|
+
const token = /^\s*#([0-9]+)/.exec(line)?.[1];
|
|
69
|
+
return token === undefined ? undefined : Number(token);
|
|
70
|
+
}
|
|
71
|
+
function readPlan(serialized) {
|
|
72
|
+
const value = JSON.parse(serialized);
|
|
73
|
+
if (typeof value !== 'object' || value === null || !('replacements' in value) || !('newEntities' in value)
|
|
74
|
+
|| !('warnings' in value) || !isPatches(value.replacements) || !isPatches(value.newEntities)
|
|
75
|
+
|| !Array.isArray(value.warnings) || !value.warnings.every((warning) => typeof warning === 'string')) {
|
|
76
|
+
throw new Error('Invalid canonical map normalization plan.');
|
|
77
|
+
}
|
|
78
|
+
return { replacements: value.replacements, newEntities: value.newEntities, warnings: value.warnings };
|
|
79
|
+
}
|
|
80
|
+
function isPatches(value) {
|
|
81
|
+
return Array.isArray(value) && value.every((patch) => {
|
|
82
|
+
if (typeof patch !== 'object' || patch === null || !('expressId' in patch) || !('line' in patch)
|
|
83
|
+
|| typeof patch.expressId !== 'number' || !Number.isSafeInteger(patch.expressId)
|
|
84
|
+
|| patch.expressId <= 0 || patch.expressId > 0xffff_ffff || typeof patch.line !== 'string')
|
|
85
|
+
return false;
|
|
86
|
+
return entityId(patch.line) === patch.expressId && readStepSlots(patch.line) !== null;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=step-map-transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-transform.js","sourceRoot":"","sources":["../src/step-map-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExportPass } from './step-export-types.js';
|
|
2
|
+
/** Normalize the *emitted* model, after named/positional/created-entity edits.
|
|
3
|
+
* Never rewrite a shared project unit. Each CRS and all its operations change
|
|
4
|
+
* atomically; a refusal leaves that CRS byte-identical and is reported (#6587).
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizeMapUnitsToMetres(pass: ExportPass, allocateId: () => number): void;
|
|
7
|
+
//# sourceMappingURL=step-map-unit-normalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-unit-normalization.d.ts","sourceRoot":"","sources":["../src/step-map-unit-normalization.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AASzD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAmF1F"}
|
|
@@ -0,0 +1,190 @@
|
|
|
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 { SCHEMA_REGISTRY, SI_PREFIX_MULTIPLIERS } from '@ifc-lite/parser';
|
|
5
|
+
import { readStepSlots, splitTopLevelListItems } from './step-argument-parser.js';
|
|
6
|
+
import { attrIndex, stepSourceSchema } from './subset-entity-reader.js';
|
|
7
|
+
import { resolveExpressBase, toStepReal } from './step-serialization.js';
|
|
8
|
+
const ref = (token) => token?.match(/^#([0-9]+)$/) ? Number(token.slice(1)) : undefined;
|
|
9
|
+
const enumeration = (token) => token?.replaceAll('.', '').toUpperCase() ?? '';
|
|
10
|
+
const real = (token) => token !== undefined && /^[+-]?[0-9]+\.[0-9]*(?:E[+-]?[0-9]+)?$/i.test(token) ? Number(token) : NaN;
|
|
11
|
+
const definedTypes = new Map(Object.keys(SCHEMA_REGISTRY.types).map(name => [name.toUpperCase(), name]));
|
|
12
|
+
const maps = new Set(['IFCMAPCONVERSION', 'IFCMAPCONVERSIONSCALED']);
|
|
13
|
+
/** Normalize the *emitted* model, after named/positional/created-entity edits.
|
|
14
|
+
* Never rewrite a shared project unit. Each CRS and all its operations change
|
|
15
|
+
* atomically; a refusal leaves that CRS byte-identical and is reported (#6587).
|
|
16
|
+
*/
|
|
17
|
+
export function normalizeMapUnitsToMetres(pass, allocateId) {
|
|
18
|
+
const records = new Map();
|
|
19
|
+
const operations = new Map();
|
|
20
|
+
let unreadableOperation = false;
|
|
21
|
+
const schema = stepSourceSchema(pass.sourceSchema);
|
|
22
|
+
for (let index = 0; index < pass.entities.length; index++) {
|
|
23
|
+
const line = pass.entities[index];
|
|
24
|
+
const prefix = /^#([0-9]+)\s*=\s*(\w+)/.exec(line);
|
|
25
|
+
if (!prefix)
|
|
26
|
+
continue;
|
|
27
|
+
const type = prefix[2].toUpperCase();
|
|
28
|
+
const targetSlot = attrIndex(type, 'TargetCRS', schema);
|
|
29
|
+
if (targetSlot < 0 && !['IFCSIUNIT', 'IFCCONVERSIONBASEDUNIT', 'IFCMEASUREWITHUNIT', 'IFCPROJECTEDCRS', 'IFCPROJECT', 'IFCUNITASSIGNMENT', 'IFCWELLKNOWNTEXT'].includes(type))
|
|
30
|
+
continue;
|
|
31
|
+
const record = readStepSlots(line);
|
|
32
|
+
if (!record) {
|
|
33
|
+
if (targetSlot >= 0)
|
|
34
|
+
unreadableOperation = true;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const entry = { id: Number(prefix[1]), index, record };
|
|
38
|
+
records.set(entry.id, entry);
|
|
39
|
+
if (targetSlot >= 0) {
|
|
40
|
+
const target = ref(record.slots[targetSlot]?.trim());
|
|
41
|
+
if (target !== undefined) {
|
|
42
|
+
const list = operations.get(target) ?? [];
|
|
43
|
+
list.push(entry);
|
|
44
|
+
operations.set(target, list);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
let metreId = [...records.values()].find(({ record }) => record.type === 'IFCSIUNIT'
|
|
49
|
+
&& enumeration(record.slots[1]) === 'LENGTHUNIT' && record.slots[2]?.trim() === '$'
|
|
50
|
+
&& enumeration(record.slots[3]) === 'METRE')?.id;
|
|
51
|
+
const warn = (id, reason) => {
|
|
52
|
+
const message = `Cannot normalize IfcProjectedCRS #${id} map units to metres: ${reason}. Its map units and coordinate operations were preserved.`;
|
|
53
|
+
pass.warnings.push(message);
|
|
54
|
+
console.warn(`[StepExporter] ${message}`);
|
|
55
|
+
};
|
|
56
|
+
for (const target of operations.keys()) {
|
|
57
|
+
if (records.get(target)?.record.type !== 'IFCPROJECTEDCRS') {
|
|
58
|
+
warn(target, 'the target is not a retained IfcProjectedCRS');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
for (const crs of records.values()) {
|
|
62
|
+
if (crs.record.type !== 'IFCPROJECTEDCRS')
|
|
63
|
+
continue;
|
|
64
|
+
const consumers = operations.get(crs.id) ?? [];
|
|
65
|
+
if (unreadableOperation) {
|
|
66
|
+
warn(crs.id, 'a retained coordinate operation cannot be parsed safely');
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (!consumers.length)
|
|
70
|
+
continue;
|
|
71
|
+
const name = crs.record.slots[0]?.trim() ?? '';
|
|
72
|
+
if (/^'[A-Z_]+\s*\[/i.test(name)
|
|
73
|
+
|| [...records.values()].some(({ record }) => record.type === 'IFCWELLKNOWNTEXT' && ref(record.slots[1]?.trim()) === crs.id)) {
|
|
74
|
+
warn(crs.id, 'a retained WKT definition may declare its own coordinate units');
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const authoredUnit = crs.record.slots[6]?.trim();
|
|
78
|
+
const unitId = authoredUnit === '$' ? projectUnitForContexts(consumers, records, schema) : ref(authoredUnit);
|
|
79
|
+
const factor = unitId === undefined ? undefined : lengthUnitFactor(unitId, records);
|
|
80
|
+
if (factor === undefined) {
|
|
81
|
+
warn(crs.id, 'the applicable length unit is missing, ambiguous, or unsupported');
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (factor === 1)
|
|
85
|
+
continue;
|
|
86
|
+
if (consumers.some(({ record }) => !maps.has(record.type))) {
|
|
87
|
+
warn(crs.id, 'a retained coordinate operation is not an IfcMapConversion');
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
const replacements = new Map();
|
|
91
|
+
for (const operation of consumers) {
|
|
92
|
+
const slots = operation.record.slots.map(token => token.trim());
|
|
93
|
+
const values = [2, 3, 4, 7].map(index => index === 7 && slots[index] === '$' ? 1 : real(slots[index]));
|
|
94
|
+
if (slots.length < 8 || values.some(value => !Number.isFinite(value))
|
|
95
|
+
|| values[3] <= 0 || values.some(value => !Number.isFinite(value * factor))
|
|
96
|
+
|| values[3] * factor <= 0)
|
|
97
|
+
break;
|
|
98
|
+
[2, 3, 4, 7].forEach((index, position) => { slots[index] = toStepReal(values[position] * factor); });
|
|
99
|
+
replacements.set(operation, slots);
|
|
100
|
+
}
|
|
101
|
+
if (replacements.size !== consumers.length) {
|
|
102
|
+
warn(crs.id, 'a coordinate operation has invalid offsets or scale');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (metreId === undefined) {
|
|
106
|
+
metreId = allocateId();
|
|
107
|
+
pass.entities.push(`#${metreId}=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);`);
|
|
108
|
+
pass.newEntityCount++;
|
|
109
|
+
}
|
|
110
|
+
const slots = crs.record.slots.map(token => token.trim());
|
|
111
|
+
slots[6] = `#${metreId}`;
|
|
112
|
+
replacements.set(crs, slots);
|
|
113
|
+
for (const [entry, updated] of replacements) {
|
|
114
|
+
pass.entities[entry.index] = `${entry.record.prefix}${updated.join(',')}${entry.record.suffix}`;
|
|
115
|
+
// Newly created entities already contribute to newEntityCount; source
|
|
116
|
+
// entities count once even if an earlier session edit changed them too.
|
|
117
|
+
if (!pass.effective.isOverlayCreated(entry.id) && pass.effective.has(entry.id)) {
|
|
118
|
+
pass.modifications.nominate(entry.id, 'georeferencing');
|
|
119
|
+
pass.modifications.recordEmitted(entry.id, 'georeferencing');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Bounded, iterative conversion-factor walk; no implicit metre fallback. */
|
|
125
|
+
function lengthUnitFactor(id, records) {
|
|
126
|
+
const visited = new Set();
|
|
127
|
+
let factor = 1;
|
|
128
|
+
let current = id;
|
|
129
|
+
while (current !== undefined && !visited.has(current) && visited.size <= records.size) {
|
|
130
|
+
visited.add(current);
|
|
131
|
+
const record = records.get(current)?.record;
|
|
132
|
+
if (!record || enumeration(record.slots[1]) !== 'LENGTHUNIT')
|
|
133
|
+
return undefined;
|
|
134
|
+
if (record.type === 'IFCSIUNIT') {
|
|
135
|
+
if (enumeration(record.slots[3]) !== 'METRE')
|
|
136
|
+
return undefined;
|
|
137
|
+
const prefix = record.slots[2]?.trim();
|
|
138
|
+
const multiplier = prefix === '$' ? 1 : SI_PREFIX_MULTIPLIERS[enumeration(prefix)];
|
|
139
|
+
const result = factor * multiplier;
|
|
140
|
+
return Number.isFinite(result) && result > 0 ? result : undefined;
|
|
141
|
+
}
|
|
142
|
+
if (record.type !== 'IFCCONVERSIONBASEDUNIT')
|
|
143
|
+
return undefined;
|
|
144
|
+
const measure = records.get(ref(record.slots[3]?.trim()) ?? -1)?.record;
|
|
145
|
+
if (measure?.type !== 'IFCMEASUREWITHUNIT')
|
|
146
|
+
return undefined;
|
|
147
|
+
const value = measure.slots[0]?.trim();
|
|
148
|
+
const typed = /^([A-Z][A-Z0-9_]*)\(([^()]+)\)$/i.exec(value ?? '');
|
|
149
|
+
const base = typed ? resolveExpressBase(definedTypes.get(typed[1].toUpperCase()) ?? typed[1]) : 'REAL';
|
|
150
|
+
const token = typed ? typed[2] : value;
|
|
151
|
+
const scale = base === 'REAL' || base === 'NUMBER' ? real(token)
|
|
152
|
+
: base === 'INTEGER' && token !== undefined && /^[+-]?[0-9]+$/.test(token) ? Number(token) : NaN;
|
|
153
|
+
if (!Number.isFinite(scale) || scale <= 0)
|
|
154
|
+
return undefined;
|
|
155
|
+
factor *= scale;
|
|
156
|
+
if (!Number.isFinite(factor) || factor <= 0)
|
|
157
|
+
return undefined;
|
|
158
|
+
current = ref(measure.slots[1]?.trim());
|
|
159
|
+
}
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
/** Missing MapUnit inherits its SourceCRS project's length unit. Every
|
|
163
|
+
* operation sharing this CRS must resolve to the same declared unit factor.
|
|
164
|
+
* Contexts are matched through IfcProject.RepresentationContexts, not the
|
|
165
|
+
* first project in a federated file. Ambiguous owners are refused.
|
|
166
|
+
*/
|
|
167
|
+
function projectUnitForContexts(consumers, records, schema) {
|
|
168
|
+
let chosen;
|
|
169
|
+
for (const consumer of consumers) {
|
|
170
|
+
const context = ref(consumer.record.slots[0]?.trim());
|
|
171
|
+
const owners = [...records.values()].filter(({ record }) => record.type === 'IFCPROJECT'
|
|
172
|
+
&& splitTopLevelListItems(record.slots[attrIndex('IFCPROJECT', 'RepresentationContexts', schema)]?.trim().slice(1, -1) ?? '')
|
|
173
|
+
.some(token => ref(token.trim()) === context));
|
|
174
|
+
if (context === undefined || owners.length !== 1)
|
|
175
|
+
return undefined;
|
|
176
|
+
const assignment = records.get(ref(owners[0].record.slots[attrIndex('IFCPROJECT', 'UnitsInContext', schema)]?.trim()) ?? -1)?.record;
|
|
177
|
+
if (assignment?.type !== 'IFCUNITASSIGNMENT')
|
|
178
|
+
return undefined;
|
|
179
|
+
const units = splitTopLevelListItems(assignment.slots[0]?.trim().slice(1, -1) ?? '')
|
|
180
|
+
.map(token => ref(token.trim())).filter((id) => id !== undefined
|
|
181
|
+
&& enumeration(records.get(id)?.record.slots[1]) === 'LENGTHUNIT');
|
|
182
|
+
if (units.length !== 1)
|
|
183
|
+
return undefined;
|
|
184
|
+
if (chosen !== undefined && lengthUnitFactor(chosen, records) !== lengthUnitFactor(units[0], records))
|
|
185
|
+
return undefined;
|
|
186
|
+
chosen = units[0];
|
|
187
|
+
}
|
|
188
|
+
return chosen;
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=step-map-unit-normalization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-unit-normalization.js","sourceRoot":"","sources":["../src/step-map-unit-normalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,4 +48,12 @@ export type OmissionEvaluation = {
|
|
|
48
48
|
readonly mayNameOmittedRefs: boolean;
|
|
49
49
|
};
|
|
50
50
|
export declare function evaluateOmissionPredicates(pass: ExportPass, options: StepExportOptions, applyMutations: boolean, excludeGeometry: boolean, mutationView: MutablePropertyView | null): OmissionEvaluation;
|
|
51
|
+
/**
|
|
52
|
+
* The export's one answer to "is `id` a record this model has (or had) that
|
|
53
|
+
* the output will not define?" — deleted, hidden by `visibleOnly`/subset, or
|
|
54
|
+
* unwritable. The relationship filters narrow on it, and the copy-on-write
|
|
55
|
+
* settle (`step-pset-copy-on-write.ts`) decides on it whether a shared set
|
|
56
|
+
* still has an owner, so the two cannot disagree (#5794).
|
|
57
|
+
*/
|
|
58
|
+
export declare function isOmittedFromPassOutput(pass: ExportPass, id: number): boolean;
|
|
51
59
|
//# sourceMappingURL=step-omission-predicates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-omission-predicates.d.ts","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAEN,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,GACvC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"step-omission-predicates.d.ts","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAEN,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,GACvC,kBAAkB,CA8QpB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7E"}
|
|
@@ -179,7 +179,7 @@ export function evaluateOmissionPredicates(pass, options, applyMutations, exclud
|
|
|
179
179
|
* prior instance of this class, which took seven rounds because the same
|
|
180
180
|
* decision was recomputed per call site.
|
|
181
181
|
*/
|
|
182
|
-
const isOmittedFromOutput = (id) => (pass
|
|
182
|
+
const isOmittedFromOutput = (id) => isOmittedFromPassOutput(pass, id);
|
|
183
183
|
/**
|
|
184
184
|
* "Can ANY id be omitted from this export at all?" — the precondition both
|
|
185
185
|
* `IFCREL*` filter sites are gated on, so the common export pays nothing.
|
|
@@ -265,4 +265,14 @@ export function evaluateOmissionPredicates(pass, options, applyMutations, exclud
|
|
|
265
265
|
|| hasAnyUnreadableSourceRef();
|
|
266
266
|
return { kind: 'continue', isOmittedFromOutput, mayNameOmittedRefs };
|
|
267
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* The export's one answer to "is `id` a record this model has (or had) that
|
|
270
|
+
* the output will not define?" — deleted, hidden by `visibleOnly`/subset, or
|
|
271
|
+
* unwritable. The relationship filters narrow on it, and the copy-on-write
|
|
272
|
+
* settle (`step-pset-copy-on-write.ts`) decides on it whether a shared set
|
|
273
|
+
* still has an owner, so the two cannot disagree (#5794).
|
|
274
|
+
*/
|
|
275
|
+
export function isOmittedFromPassOutput(pass, id) {
|
|
276
|
+
return (pass.effective.has(id) || pass.effective.isDeleted(id)) && !pass.willBeEmitted(id);
|
|
277
|
+
}
|
|
268
278
|
//# sourceMappingURL=step-omission-predicates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-omission-predicates.js","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqD/D,MAAM,UAAU,0BAA0B,CACxC,IAAgB,EAChB,OAA0B,EAC1B,cAAuB,EACvB,eAAwB,EACxB,YAAwC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,MAAM,yBAAyB,GAAG,GAAY,EAAE;QAC9C,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAC5B,YAAY;WACT,cAAc;WACd,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,CACrD,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,0CAA0C;IAC1C;IACE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,uCAAuC;IACvC,OAAO,CAAC,SAAS,KAAK,IAAI;WACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;WAChC,qBAAqB,KAAK,CAAC;WAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC,CAAC;QAC3G,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE;gBACN,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,YAAY,CAAC,UAAU;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"step-omission-predicates.js","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqD/D,MAAM,UAAU,0BAA0B,CACxC,IAAgB,EAChB,OAA0B,EAC1B,cAAuB,EACvB,eAAwB,EACxB,YAAwC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,MAAM,yBAAyB,GAAG,GAAY,EAAE;QAC9C,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAC5B,YAAY;WACT,cAAc;WACd,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,CACrD,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,0CAA0C;IAC1C;IACE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,uCAAuC;IACvC,OAAO,CAAC,SAAS,KAAK,IAAI;WACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;WAChC,qBAAqB,KAAK,CAAC;WAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC,CAAC;QAC3G,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE;gBACN,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,YAAY,CAAC,UAAU;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACH,MAAM,kBAAkB,GACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI;WAC3B,IAAI,CAAC,aAAa;WAClB,eAAe;WACf,yBAAyB,EAAE,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAgB,EAAE,EAAU;IAClE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-overlay-entities.d.ts","sourceRoot":"","sources":["../src/step-overlay-entities.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-overlay-entities.d.ts","sourceRoot":"","sources":["../src/step-overlay-entities.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAW/D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClD;;2BAEuB;IACvB,QAAQ,CAAC,2BAA2B,EAAE,CACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAC1D,aAAa,EAAE,UAAU,CAAC,cAAc,CAAC,EACzC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,KACnD,MAAM,CAAC;IACZ;sCACkC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD;;2CAEuC;IACvC,QAAQ,CAAC,2BAA2B,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACnF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,OAAO,EACxB,cAAc,EAAE,OAAO,EACvB,kBAAkB,EAAE,OAAO,EAC3B,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,EAC5C,GAAG,EAAE,sBAAsB,GAC1B,IAAI,CAyIN"}
|
|
@@ -3,8 +3,13 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { filterHiddenRefsFromRelationshipLine } from './reference-collector.js';
|
|
5
5
|
import { convertStepLine } from './schema-converter.js';
|
|
6
|
+
import { STYLE_RESCUE_TYPES } from './style-closure.js';
|
|
7
|
+
import { NONREL_REF_LIST_TYPES } from './nonrel-ref-list-types.js';
|
|
8
|
+
import { narrowNonRelPositionalRefLists } from './nonrel-positional-ref-narrowing.js';
|
|
9
|
+
import { styleEntityWithheldWarning } from './step-export-types.js';
|
|
6
10
|
import { retypeArgTokens } from './retype.js';
|
|
7
11
|
import { HAS_PROPERTY_SETS_SLOT } from './type-owned-psets.js';
|
|
12
|
+
import { detachRelatedObjects } from './step-pset-copy-on-write.js';
|
|
8
13
|
import { serializeEntityArgs, serializeAttributeSlot } from './attribute-real-slots.js';
|
|
9
14
|
/**
|
|
10
15
|
* Add overlay-created entities (store.addEntity / mutationView.createEntity).
|
|
@@ -87,7 +92,10 @@ export function writeOverlayCreatedEntities(pass, options, excludeGeometry, appl
|
|
|
87
92
|
(attr, value) => pass.warnings.push(`entity #${entity.expressId}: attribute ${attr} not written - ` +
|
|
88
93
|
`${JSON.stringify(value)} is not a number and the slot is REAL-typed`));
|
|
89
94
|
}
|
|
90
|
-
|
|
95
|
+
// Same copy-on-write narrowing as a source relation (#5794).
|
|
96
|
+
let line = detachRelatedObjects(pass, entity.expressId, `#${entity.expressId}=${upperType}(${argsText});`);
|
|
97
|
+
if (line === null)
|
|
98
|
+
continue;
|
|
91
99
|
// Same gap as the source-iteration pass, for an overlay-authored
|
|
92
100
|
// relationship instead of a parsed one (#2398).
|
|
93
101
|
//
|
|
@@ -105,6 +113,20 @@ export function writeOverlayCreatedEntities(pass, options, excludeGeometry, appl
|
|
|
105
113
|
continue;
|
|
106
114
|
}
|
|
107
115
|
}
|
|
116
|
+
else if (mayNameOmittedRefs && STYLE_RESCUE_TYPES.has(upperType)) {
|
|
117
|
+
// The same two branches the source pass runs (`step-source-iteration.ts`):
|
|
118
|
+
// a created styled item, layer assignment or texture map naming an
|
|
119
|
+
// omitted (e.g. deleted) entity is narrowed or withheld exactly as a
|
|
120
|
+
// source one is, instead of shipping a dangling `#N` (#5941 review).
|
|
121
|
+
line = filterHiddenRefsFromRelationshipLine(line, isOmittedFromOutput, pass.sourceSchema);
|
|
122
|
+
if (line === null) {
|
|
123
|
+
pass.warnings.push(styleEntityWithheldWarning(entity.expressId, upperType));
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else if (mayNameOmittedRefs && NONREL_REF_LIST_TYPES.has(upperType)) {
|
|
128
|
+
line = narrowNonRelPositionalRefLists(line, isOmittedFromOutput, upperType, pass.sourceSchema);
|
|
129
|
+
}
|
|
108
130
|
if (pass.converting) {
|
|
109
131
|
const converted = convertStepLine(line, pass.sourceSchema, pass.schema, options.guidRandom, pass.slotFill, pass.withheldRefIds, pass.ifc4Slots, pass.enums);
|
|
110
132
|
if (converted !== null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-overlay-entities.js","sourceRoot":"","sources":["../src/step-overlay-entities.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step-overlay-entities.js","sourceRoot":"","sources":["../src/step-overlay-entities.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAwC/D,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AA4BxF;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAgB,EAChB,OAA0B,EAC1B,eAAwB,EACxB,cAAuB,EACvB,kBAA2B,EAC3B,mBAA4C,EAC5C,GAA2B;IAE3B,IACE,CAAC,GAAG,CAAC,YAAY;WACd,CAAC,cAAc;WACf,OAAO,GAAG,CAAC,YAAY,CAAC,cAAc,KAAK,UAAU,EACxD,CAAC;QACD,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,YAAY,CAAC,qBAAqB,KAAK,UAAU;QAC7E,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;QAC/D,CAAC,CAAC,IAAI,CAAC;IACT,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,SAAS;QAC9G,oEAAoE;QACpE,qEAAqE;QACrE,oEAAoE;QACpE,gDAAgD;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;QACtD,qEAAqE;QACrE,oCAAoC;QACpC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,eAAe,IAAI,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACnF,SAAS;QACX,CAAC;QACD,+DAA+D;QAC/D,qEAAqE;QACrE,6DAA6D;QAC7D,qDAAqD;QACrD,IAAI,QAAgB,CAAC;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,yEAAyE;YACzE,iEAAiE;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CACrC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAC/E,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAChC,SAAS,EACT,MAAM,CAAC,IAAI,EACX,aAAa,EACb,OAAO,CAAC,cAAc,IAAI,IAAI,EAC9B,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpF,CAAC;QACD,gEAAgE;QAChE,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,0DAA0D;QAC1D,oEAAoE;QACpE,iDAAiD;QACjD,EAAE;QACF,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACjF,MAAM,gBAAgB,GAAG,OAAO,GAAG,CAAC,YAAY,CAAC,+BAA+B,KAAK,UAAU;YAC7F,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,+BAA+B,CAAC,MAAM,CAAC,SAAS,CAAC;YACpE,CAAC,CAAC,IAAI,CAAC;QACT,wEAAwE;QACxE,sEAAsE;QACtE,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1E,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAC3B,sBAAsB,EACtB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CACzD;YACH,CAAC,CAAC,gBAAgB,CAAC;QACrB,IACE,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;eAChD,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC,EACxD,CAAC;YACD,QAAQ,GAAG,GAAG,CAAC,2BAA2B,CACxC,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,CAAC,YAAY;YACjB,kEAAkE;YAClE,oEAAoE;YACpE,4DAA4D;YAC5D,uDAAuD;YACvD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,WAAW,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;gBAC7D,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,6CAA6C,CACxE,CACJ,CAAC;QACJ,CAAC;QACD,6DAA6D;QAC7D,IAAI,IAAI,GAAkB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC,CAAC;QAC1H,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,iEAAiE;QACjE,gDAAgD;QAChD,EAAE;QACF,qEAAqE;QACrE,gEAAgE;QAChE,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,uEAAuE;QACvE,0DAA0D;QAC1D,IAAI,kBAAkB,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,IAAI,GAAG,oCAAoC,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;YACvE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjF,SAAS;YACX,CAAC;QACH,CAAC;aAAM,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,2EAA2E;YAC3E,mEAAmE;YACnE,qEAAqE;YACrE,qEAAqE;YACrE,IAAI,GAAG,oCAAoC,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1F,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5E,SAAS;YACX,CAAC;QACH,CAAC;aAAM,IAAI,kBAAkB,IAAI,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,IAAI,GAAG,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5J,IAAI,SAAS,KAAK,IAAI;gBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-pass-builder.d.ts","sourceRoot":"","sources":["../src/step-pass-builder.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAqB,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAU5E;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"step-pass-builder.d.ts","sourceRoot":"","sources":["../src/step-pass-builder.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAqB,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAU5E;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,eAAe,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CA8QjE"}
|