@ifc-lite/export 4.9.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/affected-set.d.ts +9 -0
- package/dist/affected-set.d.ts.map +1 -0
- package/dist/affected-set.js +72 -0
- package/dist/affected-set.js.map +1 -0
- 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 +7 -0
- package/dist/declared-property-type.d.ts.map +1 -1
- package/dist/declared-property-type.js +29 -2
- package/dist/declared-property-type.js.map +1 -1
- package/dist/edit-ownership.d.ts +7 -0
- package/dist/edit-ownership.d.ts.map +1 -0
- package/dist/edit-ownership.js +95 -0
- package/dist/edit-ownership.js.map +1 -0
- 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/entity-subgraph.d.ts +11 -3
- package/dist/entity-subgraph.d.ts.map +1 -1
- package/dist/entity-subgraph.js +54 -11
- package/dist/entity-subgraph.js.map +1 -1
- package/dist/grid-placement-dependents.d.ts +4 -0
- package/dist/grid-placement-dependents.d.ts.map +1 -0
- package/dist/grid-placement-dependents.js +71 -0
- package/dist/grid-placement-dependents.js.map +1 -0
- package/dist/grid-reference-context.d.ts +6 -0
- package/dist/grid-reference-context.d.ts.map +1 -0
- package/dist/grid-reference-context.js +68 -0
- package/dist/grid-reference-context.js.map +1 -0
- 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 +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- 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-coordinate-options.d.ts +8 -0
- package/dist/step-coordinate-options.d.ts.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 +6 -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 +19 -19
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-map-unit-normalization.d.ts +3 -5
- package/dist/step-map-unit-normalization.d.ts.map +1 -1
- package/dist/step-map-unit-normalization.js +12 -8
- package/dist/step-map-unit-normalization.js.map +1 -1
- package/dist/step-map-unit.d.ts +3 -78
- package/dist/step-map-unit.d.ts.map +1 -1
- package/dist/step-map-unit.js +33 -195
- package/dist/step-map-unit.js.map +1 -1
- package/dist/step-native-set-record.d.ts +6 -0
- package/dist/step-native-set-record.d.ts.map +1 -0
- package/dist/step-native-set-record.js +30 -0
- package/dist/step-native-set-record.js.map +1 -0
- 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 +4 -0
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-collection.d.ts.map +1 -1
- package/dist/step-property-set-collection.js +24 -8
- package/dist/step-property-set-collection.js.map +1 -1
- package/dist/step-property-set-generators.d.ts +8 -2
- package/dist/step-property-set-generators.d.ts.map +1 -1
- package/dist/step-property-set-generators.js +26 -10
- package/dist/step-property-set-generators.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 +68 -14
- package/dist/step-property-set-readers.js.map +1 -1
- package/dist/step-property-sets.d.ts +17 -4
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +79 -20
- 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/step-type-owned-quantities.d.ts +34 -0
- package/dist/step-type-owned-quantities.d.ts.map +1 -0
- package/dist/step-type-owned-quantities.js +222 -0
- package/dist/step-type-owned-quantities.js.map +1 -0
- package/dist/step-vertical-datum-normalization.d.ts +17 -0
- package/dist/step-vertical-datum-normalization.d.ts.map +1 -0
- package/dist/step-vertical-datum-normalization.js +52 -0
- package/dist/step-vertical-datum-normalization.js.map +1 -0
- 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 +11 -11
package/dist/step-map-unit.js
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Map-unit resolution for the georeferencing phase: the `IfcNamedUnit` an
|
|
6
|
+
* `IfcProjectedCRS.MapUnit` points at, and the reuse-or-synthesise decision
|
|
7
|
+
* behind it.
|
|
8
|
+
*
|
|
9
|
+
* Split out of `step-georeferencing.ts` in #3274 rather than grown in place —
|
|
10
|
+
* the question it answers is a different one from "which georeferencing
|
|
11
|
+
* entities does this export write", it has a second caller in
|
|
12
|
+
* `step-property-sets.ts` (property units reach `findLengthUnitReference`
|
|
13
|
+
* through `findUnitId`), and raising the module-size budget instead would have
|
|
14
|
+
* wanted a per-file justification in the PR; a split does not.
|
|
15
|
+
*
|
|
16
|
+
* THE RULE THIS MODULE EXISTS TO KEEP: a unit name is compared WHOLE. The
|
|
17
|
+
* defect it was extracted for was a substring test — `normalized.includes('METRE')`
|
|
18
|
+
* — which `MILLIMETRE`, `CENTIMETRE` and `KILOMETRE` all satisfy, so every one
|
|
19
|
+
* of them was written into the file as a plain `.METRE.`. The map unit is the
|
|
20
|
+
* scale of the entire coordinate reference system, so that is a silent 1000x
|
|
21
|
+
* error in the one attribute another team uses to place the model on the
|
|
22
|
+
* earth, and it is invisible in the output: a millimetre request produced
|
|
23
|
+
* bytes identical to a metre request.
|
|
24
|
+
*
|
|
25
|
+
* And a unit this module cannot express is REFUSED, not approximated.
|
|
26
|
+
* `IfcProjectedCRS.MapUnit` is `OPTIONAL IfcNamedUnit` with
|
|
27
|
+
* `IsLengthUnit : NOT(EXISTS(MapUnit)) OR (MapUnit.UnitType = LENGTHUNIT)`, so
|
|
28
|
+
* an absent MapUnit is schema-valid; a MapUnit naming the wrong unit is not
|
|
29
|
+
* merely lossy, it is false, and nothing downstream can tell it from a true
|
|
30
|
+
* one.
|
|
31
|
+
*/
|
|
32
|
+
import { findSourceProjectLengthUnit, normalizeMapUnitName } from '@ifc-lite/parser';
|
|
33
|
+
export { normalizeMapUnitName } from '@ifc-lite/parser';
|
|
4
34
|
import { toStepReal } from './step-serialization.js';
|
|
5
35
|
/**
|
|
6
36
|
* Message for the refusal when a requested map unit is one this exporter
|
|
@@ -79,203 +109,11 @@ function siPrefixOf(normalized) {
|
|
|
79
109
|
}
|
|
80
110
|
return undefined;
|
|
81
111
|
}
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
return label.toUpperCase().split(/[^A-Z0-9]+/).filter((token) => token.length > 0);
|
|
85
|
-
}
|
|
86
|
-
/** The foot/feet spellings a US-survey qualifier may be attached to. */
|
|
87
|
-
const FOOT_TOKENS = new Set(['FOOT', 'FEET', 'FT']);
|
|
88
|
-
/**
|
|
89
|
-
* Order-insensitive recogniser for the separated US-survey foot spellings —
|
|
90
|
-
* `foot (US survey)`, `SURVEY FEET (US)`, `US survey foot`. The glued
|
|
91
|
-
* spellings (`USSURVEYFOOT`, `FTUS`, …) are in {@link MAP_UNIT_CANONICAL_NAME}
|
|
92
|
-
* and matched exactly there; once an exporter puts separators in, the word
|
|
93
|
-
* order varies and gluing alone cannot see it.
|
|
94
|
-
*
|
|
95
|
-
* Accepts exactly one foot token plus either `US` (or the glued `USSURVEY`)
|
|
96
|
-
* or both `US` and `SURVEY`. A bare `SURVEY FOOT` without `US` is REFUSED:
|
|
97
|
-
* other national survey feet exist and are different ratios — Clarke's foot is
|
|
98
|
-
* 0.3047972654 m, the Indian foot 0.304799514 m — so the qualifier alone does
|
|
99
|
-
* not identify a value. `US FOOT` on its own IS accepted: EPSG 9003 is the
|
|
100
|
-
* only US foot, so the nationality does identify it.
|
|
101
|
-
*
|
|
102
|
-
* The requirement that exactly ONE foot token be present, with nothing else
|
|
103
|
-
* beside the qualifier, is what refuses `SQUARE US SURVEY FOOT` (an area) and
|
|
104
|
-
* `NON-US SURVEY FOOT` (a label that says it is not this unit).
|
|
105
|
-
*
|
|
106
|
-
* Sibling of `isUsSurveyFootTokens` in packages/parser/src/map-unit-label.ts
|
|
107
|
-
* and `is_us_survey_foot_tokens` in rust/core/src/unit_labels.rs — those two
|
|
108
|
-
* answer a metre scale for the georeferencing READER, this one answers the
|
|
109
|
-
* canonical name the STEP writer emits, but the accepted spellings are the
|
|
110
|
-
* same set and must stay the same set.
|
|
111
|
-
*/
|
|
112
|
-
function isUsSurveyFootTokens(tokens) {
|
|
113
|
-
const feet = tokens.filter((token) => FOOT_TOKENS.has(token));
|
|
114
|
-
if (feet.length !== 1)
|
|
115
|
-
return false;
|
|
116
|
-
const rest = tokens.filter((token) => !FOOT_TOKENS.has(token));
|
|
117
|
-
if (rest.length === 1)
|
|
118
|
-
return rest[0] === 'US' || rest[0] === 'USSURVEY';
|
|
119
|
-
return rest.length === 2 && rest.includes('US') && rest.includes('SURVEY');
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Exact-match table from a folded label to the canonical unit name the rest of
|
|
123
|
-
* this module compares against. DERIVED rather than hand-written: the two base
|
|
124
|
-
* spellings crossed with {@link SI_PREFIXES} — the same list {@link siPrefixOf}
|
|
125
|
-
* reads, so the two cannot drift — plus the foot spellings this exporter can
|
|
126
|
-
* write as an `IfcConversionBasedUnit`.
|
|
127
|
-
*
|
|
128
|
-
* A `Map` rather than an object literal so a label like `CONSTRUCTOR` cannot
|
|
129
|
-
* resolve through `Object.prototype`.
|
|
130
|
-
*/
|
|
131
|
-
const MAP_UNIT_CANONICAL_NAME = (() => {
|
|
132
|
-
const table = new Map();
|
|
133
|
-
for (const spelling of ['METRE', 'METER']) {
|
|
134
|
-
table.set(spelling, 'METRE');
|
|
135
|
-
for (const prefix of SI_PREFIXES)
|
|
136
|
-
table.set(`${prefix}${spelling}`, `${prefix}METRE`);
|
|
137
|
-
}
|
|
138
|
-
for (const foot of ['FOOT', 'FEET'])
|
|
139
|
-
table.set(foot, 'FOOT');
|
|
140
|
-
// The US survey foot is a different ratio from the international foot
|
|
141
|
-
// (1200/3937 vs 0.3048) and is spelled several ways in the wild. These are
|
|
142
|
-
// the accepted glued spellings, matched exactly rather than sniffed for; the
|
|
143
|
-
// separated ones go through {@link isUsSurveyFootTokens}.
|
|
144
|
-
for (const alias of ['USSURVEYFOOT', 'USSURVEYFEET', 'USSURVEYFT', 'USFOOT', 'USFEET', 'USFT', 'FTUS']) {
|
|
145
|
-
table.set(alias, 'US SURVEY FOOT');
|
|
146
|
-
}
|
|
147
|
-
return table;
|
|
148
|
-
})();
|
|
149
|
-
/**
|
|
150
|
-
* Canonicalize a map-unit label to the spelling the rest of this module
|
|
151
|
-
* compares against: American `METER` to `METRE`, the foot spellings to `FOOT`,
|
|
152
|
-
* the US survey foot to `US SURVEY FOOT`, and an SI prefix kept rather than
|
|
153
|
-
* swallowed. Anything not recognised is returned normalised-but-unchanged, for
|
|
154
|
-
* the caller to REFUSE rather than guess at.
|
|
155
|
-
*
|
|
156
|
-
* The label is NORMALISED and then matched EXACTLY — never substring-matched.
|
|
157
|
-
*
|
|
158
|
-
* What the normalisation accepts:
|
|
159
|
-
* - any case and any separators: `metres`, `Meters`, `MILLI-METRE`;
|
|
160
|
-
* - `METRE` and `METER`, each carrying any `IfcSIPrefix` member;
|
|
161
|
-
* - `FOOT` and `FEET`;
|
|
162
|
-
* - one English plural suffix, stripped once and re-matched exactly;
|
|
163
|
-
* - the US survey foot, glued or separated in any word order.
|
|
164
|
-
*
|
|
165
|
-
* What it REFUSES, by leaving the label alone so `resolveMapUnitReference`
|
|
166
|
-
* returns `null` and `MapUnit` stays `$` with a warning:
|
|
167
|
-
* - a label that merely CONTAINS a unit. `MILLIMETRE`, `CENTIMETRE` and
|
|
168
|
-
* `KILOMETRE` all contain `METRE`, and an `includes('METRE')` test wrote all
|
|
169
|
-
* three into the file as a plain `.METRE.` — a silent 1000x error in the CRS
|
|
170
|
-
* scale (#3274). The foot half of that same test was `includes('FOOT')`, and
|
|
171
|
-
* it was satisfied by `FOOTCANDLE` (an illuminance), `FOOT-POUND` (an
|
|
172
|
-
* energy), `FOOTPRINT`, and by `SQUARE FOOT` and `CUBIC FEET` — an area and
|
|
173
|
-
* a volume written as a LENGTH unit, which is a wrong DIMENSION rather than
|
|
174
|
-
* a wrong magnitude, and no scale factor can be right for it;
|
|
175
|
-
* - a survey foot with no nationality: `SURVEY FOOT`, `CLARKE'S FOOT`,
|
|
176
|
-
* `INDIAN FOOT`, `SEARS FOOT`, `BRITISH FOOT (1936)` are five different
|
|
177
|
-
* ratios, and `includes('FOOT')` gave every one of them the international
|
|
178
|
-
* 0.3048;
|
|
179
|
-
* - `INCH`, `YARD`, `MILE` and anything else this exporter cannot express.
|
|
180
|
-
*
|
|
181
|
-
* Normalising a recognisable spelling onto a table entry is NOT that
|
|
182
|
-
* approximation: the answer is still one exact table hit, so `MILLIMETERS`
|
|
183
|
-
* resolves to `MILLIMETRE` and not to `METRE`.
|
|
184
|
-
*
|
|
185
|
-
* Sibling of `inferMapUnitScaleFromLabel` in
|
|
186
|
-
* packages/parser/src/map-unit-label.ts and `infer_map_unit_scale` in
|
|
187
|
-
* rust/core/src/unit_labels.rs, which apply these same rules on the reading
|
|
188
|
-
* side. This exporter's accepted set is the smaller one — it writes only what
|
|
189
|
-
* it can express as an `IfcNamedUnit` — but no spelling may be accepted here
|
|
190
|
-
* that those refuse, or refused here that those accept as a length.
|
|
191
|
-
*/
|
|
192
|
-
export function normalizeMapUnitName(unitName) {
|
|
193
|
-
const normalized = unitName.trim().toUpperCase().replace(/\s+/g, ' ');
|
|
194
|
-
const tokens = tokenizeUnitLabel(normalized);
|
|
195
|
-
if (tokens.length === 0)
|
|
196
|
-
return normalized;
|
|
197
|
-
if (isUsSurveyFootTokens(tokens))
|
|
198
|
-
return 'US SURVEY FOOT';
|
|
199
|
-
const key = tokens.join('');
|
|
200
|
-
const exact = MAP_UNIT_CANONICAL_NAME.get(key);
|
|
201
|
-
if (exact !== undefined)
|
|
202
|
-
return exact;
|
|
203
|
-
// One English plural suffix, removed once and re-matched exactly. `ES`
|
|
204
|
-
// covers spellings whose singular is not reachable by dropping a single `S`.
|
|
205
|
-
for (const suffix of ['S', 'ES']) {
|
|
206
|
-
if (!key.endsWith(suffix))
|
|
207
|
-
continue;
|
|
208
|
-
const singular = MAP_UNIT_CANONICAL_NAME.get(key.slice(0, -suffix.length));
|
|
209
|
-
if (singular !== undefined)
|
|
210
|
-
return singular;
|
|
211
|
-
}
|
|
212
|
-
return normalized;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* `effective` filters the candidates the same way the georef reads above do:
|
|
216
|
-
* returning a tombstoned unit id hands the caller a `#id` for a line the
|
|
217
|
-
* export never writes. Returning null instead makes `resolveMapUnitReference`
|
|
218
|
-
* synthesise a fresh unit, which is the outcome a deleted unit deserves.
|
|
219
|
-
*/
|
|
112
|
+
/** Existing exporter entry point delegates eligibility and exact label matching
|
|
113
|
+
* to the canonical reader/writer resolver. */
|
|
220
114
|
export function findLengthUnitReference(preferredUnitName, effective, ctx) {
|
|
221
115
|
if (!ctx.entityExtractor)
|
|
222
116
|
return null;
|
|
223
|
-
|
|
224
|
-
// `crs.mapUnit !== undefined`, not `!== ''`, and `normalizeMapUnitName('')`
|
|
225
|
-
// is `''`. Both comparisons below fold a non-string Name attribute to `''`
|
|
226
|
-
// too, so without this an empty MapUnit binds to whichever unit happens to
|
|
227
|
-
// have a malformed name rather than to nothing.
|
|
228
|
-
if (preferredUnitName === '')
|
|
229
|
-
return null;
|
|
230
|
-
// Only source records carry the bytes `extractEntity` reads, so an
|
|
231
|
-
// overlay-created project is skipped rather than shadowing the file's own.
|
|
232
|
-
// @raw-entity-enumeration-ok the effective project set is filtered to source records because this fallback must decode source STEP bytes
|
|
233
|
-
const projectId = (effective.byType.get('IFCPROJECT') ?? []).find((id) => ctx.dataStore.entityIndex.byId.has(id));
|
|
234
|
-
// @raw-entity-enumeration-ok point lookup for the chosen source project's byte span
|
|
235
|
-
const projectRef = projectId !== undefined ? ctx.dataStore.entityIndex.byId.get(projectId) : undefined;
|
|
236
|
-
const project = projectRef ? ctx.entityExtractor.extractEntity(projectRef) : null;
|
|
237
|
-
const unitAssignmentId = project?.attributes?.[8];
|
|
238
|
-
if (typeof unitAssignmentId !== 'number' || effective.isDeleted(unitAssignmentId))
|
|
239
|
-
return null;
|
|
240
|
-
// @raw-entity-enumeration-ok point lookup for the source UnitAssignment referenced by that project
|
|
241
|
-
const unitAssignmentRef = ctx.dataStore.entityIndex.byId.get(unitAssignmentId);
|
|
242
|
-
const unitAssignment = unitAssignmentRef ? ctx.entityExtractor.extractEntity(unitAssignmentRef) : null;
|
|
243
|
-
const units = unitAssignment?.attributes?.[0];
|
|
244
|
-
if (!Array.isArray(units))
|
|
245
|
-
return null;
|
|
246
|
-
for (const unitId of units) {
|
|
247
|
-
if (typeof unitId !== 'number' || effective.isDeleted(unitId))
|
|
248
|
-
continue;
|
|
249
|
-
// @raw-entity-enumeration-ok point lookup for each referenced source unit after effective deletion filtering
|
|
250
|
-
const unitRef = ctx.dataStore.entityIndex.byId.get(unitId);
|
|
251
|
-
const unit = unitRef ? ctx.entityExtractor.extractEntity(unitRef) : null;
|
|
252
|
-
if (!unit)
|
|
253
|
-
continue;
|
|
254
|
-
const typeName = unit.type.toUpperCase();
|
|
255
|
-
const attrs = unit.attributes ?? [];
|
|
256
|
-
const unitType = typeof attrs[1] === 'string' ? attrs[1].replace(/\./g, '').toUpperCase() : '';
|
|
257
|
-
if (unitType !== 'LENGTHUNIT')
|
|
258
|
-
continue;
|
|
259
|
-
if (typeName === 'IFCSIUNIT') {
|
|
260
|
-
const prefix = typeof attrs[2] === 'string' ? attrs[2].replace(/\./g, '').toUpperCase() : '';
|
|
261
|
-
const name = typeof attrs[3] === 'string' ? attrs[3].replace(/\./g, '').toUpperCase() : '';
|
|
262
|
-
// The prefix is part of the unit, so it is part of the comparison. The
|
|
263
|
-
// old test asked only whether the preferred name was `METRE` and the
|
|
264
|
-
// file's unit was a metre of any prefix, which both missed a reusable
|
|
265
|
-
// `.MILLI.` unit and would have matched one for a plain-metre request
|
|
266
|
-
// had `combined` been read (#3274).
|
|
267
|
-
const combined = prefix ? `${prefix}${name}` : name;
|
|
268
|
-
if (normalizeMapUnitName(combined) === preferredUnitName) {
|
|
269
|
-
return unitId;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
if (typeName === 'IFCCONVERSIONBASEDUNIT') {
|
|
273
|
-
const name = typeof attrs[2] === 'string' ? normalizeMapUnitName(attrs[2]) : '';
|
|
274
|
-
if (name === preferredUnitName) {
|
|
275
|
-
return unitId;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
return null;
|
|
117
|
+
return findSourceProjectLengthUnit(preferredUnitName, ctx.dataStore, effective.byType.get('IFCPROJECT') ?? [], id => effective.isDeleted(id));
|
|
280
118
|
}
|
|
281
119
|
//# sourceMappingURL=step-map-unit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-map-unit.js","sourceRoot":"","sources":["../src/step-map-unit.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"step-map-unit.js","sourceRoot":"","sources":["../src/step-map-unit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type IfcEntity } from '@ifc-lite/parser';
|
|
2
|
+
import type { IfcSchemaVersion } from './schema-converter.js';
|
|
3
|
+
import { type PropertySetContext } from './step-property-set-readers.js';
|
|
4
|
+
export declare function nativeSetLine(ctx: PropertySetContext, id: number, sourceSchema: IfcSchemaVersion, attributeMutations?: Map<string, string>, warnings?: string[]): string;
|
|
5
|
+
export declare function decodeNativeSetLine(line: string, id: number): IfcEntity;
|
|
6
|
+
//# sourceMappingURL=step-native-set-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-native-set-record.d.ts","sourceRoot":"","sources":["../src/step-native-set-record.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGzF,wBAAgB,aAAa,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAC/F,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,MAAM,CAU3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAQvE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 { EntityExtractor } from '@ifc-lite/parser';
|
|
5
|
+
import { applySourceLineMutationsReported } from './step-attribute-mutations.js';
|
|
6
|
+
import { serializeEntityArgs } from './attribute-real-slots.js';
|
|
7
|
+
import { entityLineText } from './step-property-set-readers.js';
|
|
8
|
+
import { readStepSlots } from './step-argument-parser.js';
|
|
9
|
+
export function nativeSetLine(ctx, id, sourceSchema, attributeMutations, warnings = []) {
|
|
10
|
+
const created = ctx.mutationView?.getNewEntity?.(id);
|
|
11
|
+
const original = created
|
|
12
|
+
? `#${id}=${created.type.toUpperCase()}(${serializeEntityArgs(created.type, created.attributes, sourceSchema)});`
|
|
13
|
+
: entityLineText(ctx, id);
|
|
14
|
+
if (original === null)
|
|
15
|
+
throw new Error(`Type quantity source #${id} is unreadable`);
|
|
16
|
+
// @raw-entity-enumeration-ok original source type for canonical mutation serialization; created records use their authored type above
|
|
17
|
+
return applySourceLineMutationsReported(ctx.applySourceLineMutations, warnings, id, original, created?.type ?? ctx.dataStore.entityIndex.byId.get(id)?.type ?? '', attributeMutations, sourceSchema, ctx.mutationView !== null).text;
|
|
18
|
+
}
|
|
19
|
+
export function decodeNativeSetLine(line, id) {
|
|
20
|
+
const bytes = new TextEncoder().encode(line);
|
|
21
|
+
const record = readStepSlots(line);
|
|
22
|
+
if (!record)
|
|
23
|
+
throw new Error(`Type quantity source #${id} has invalid STEP slots`);
|
|
24
|
+
const entity = new EntityExtractor(bytes).extractEntity({ expressId: id, type: record.type,
|
|
25
|
+
byteOffset: 0, byteLength: bytes.byteLength, lineNumber: 1 });
|
|
26
|
+
if (!entity)
|
|
27
|
+
throw new Error(`Type quantity source #${id} cannot be decoded`);
|
|
28
|
+
return entity;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=step-native-set-record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-native-set-record.js","sourceRoot":"","sources":["../src/step-native-set-record.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,cAAc,EAA2B,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,GAAuB,EAAE,EAAU,EAAE,YAA8B,EAC/F,kBAAwC,EAAE,WAAqB,EAAE;IACjE,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI;QACjH,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5B,IAAI,QAAQ,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IACpF,sIAAsI;IACtI,OAAO,gCAAgC,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,EAAE,EAAE,EAChF,QAAQ,EAAE,OAAO,EAAE,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,kBAAkB,EACjG,YAAY,EAAE,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,EAAU;IAC1D,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI;QACxF,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE,oBAAoB,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -24,4 +24,14 @@ export declare function findOuterArgs(line: string): {
|
|
|
24
24
|
open: number;
|
|
25
25
|
close: number;
|
|
26
26
|
} | null;
|
|
27
|
+
/**
|
|
28
|
+
* Apply `edit` to every run of `text` OUTSIDE a STEP string literal, copying
|
|
29
|
+
* each literal verbatim — for the regex rewriters in `unit-normalize.ts`, so a
|
|
30
|
+
* number or typed measure inside a string is never rescaled. Where a literal
|
|
31
|
+
* ends is the shared rule (#7589): a `'(?:[^']|'')*'` regex alternative ended
|
|
32
|
+
* `'Para \S\' 5'` at the PAGE operand and handed ` 5'…` to the rewrite as code.
|
|
33
|
+
* An apostrophe that never closes is left in the code run, as such a regex
|
|
34
|
+
* alternative (failing to match there) left it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function mapOutsideStepStrings(text: string, edit: (code: string) => string): string;
|
|
27
37
|
//# sourceMappingURL=step-outer-args.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-outer-args.d.ts","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step-outer-args.d.ts","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2BlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAU1F"}
|
package/dist/step-outer-args.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { stepStringLiteralEnd } from '@ifc-lite/encoding';
|
|
4
5
|
/**
|
|
5
6
|
* Locate the outer STEP argument list of one entity line: the first `(` (nothing
|
|
6
7
|
* is quoted before the type name) and its matching `)`, honouring quoted strings
|
|
@@ -28,27 +29,22 @@ export function findOuterArgs(line) {
|
|
|
28
29
|
if (open === -1)
|
|
29
30
|
return null;
|
|
30
31
|
let depth = 0;
|
|
31
|
-
let inString = false;
|
|
32
32
|
for (let i = open; i < line.length; i++) {
|
|
33
33
|
const ch = line[i];
|
|
34
|
-
if (
|
|
34
|
+
if (ch === '/' && line[i + 1] === '*') {
|
|
35
35
|
const end = line.indexOf('*/', i + 2);
|
|
36
36
|
if (end === -1)
|
|
37
37
|
return null; // unterminated comment: nothing past it is trustworthy
|
|
38
38
|
i = end + 1; // loop's i++ lands one past the closing '/'
|
|
39
39
|
continue;
|
|
40
40
|
}
|
|
41
|
-
if (inString) {
|
|
42
|
-
if (ch === "'") {
|
|
43
|
-
if (line[i + 1] === "'")
|
|
44
|
-
i++; // escaped quote
|
|
45
|
-
else
|
|
46
|
-
inString = false;
|
|
47
|
-
}
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
41
|
if (ch === "'") {
|
|
51
|
-
|
|
42
|
+
// The shared rule for where a literal ends: `''` and a `\S\'` PAGE
|
|
43
|
+
// operand stay inside it (#7589).
|
|
44
|
+
const end = stepStringLiteralEnd(line, i);
|
|
45
|
+
if (end === -1)
|
|
46
|
+
return null;
|
|
47
|
+
i = end - 1;
|
|
52
48
|
continue;
|
|
53
49
|
}
|
|
54
50
|
if (ch === '(')
|
|
@@ -61,4 +57,25 @@ export function findOuterArgs(line) {
|
|
|
61
57
|
}
|
|
62
58
|
return null;
|
|
63
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Apply `edit` to every run of `text` OUTSIDE a STEP string literal, copying
|
|
62
|
+
* each literal verbatim — for the regex rewriters in `unit-normalize.ts`, so a
|
|
63
|
+
* number or typed measure inside a string is never rescaled. Where a literal
|
|
64
|
+
* ends is the shared rule (#7589): a `'(?:[^']|'')*'` regex alternative ended
|
|
65
|
+
* `'Para \S\' 5'` at the PAGE operand and handed ` 5'…` to the rewrite as code.
|
|
66
|
+
* An apostrophe that never closes is left in the code run, as such a regex
|
|
67
|
+
* alternative (failing to match there) left it.
|
|
68
|
+
*/
|
|
69
|
+
export function mapOutsideStepStrings(text, edit) {
|
|
70
|
+
let out = '';
|
|
71
|
+
let from = 0;
|
|
72
|
+
for (let q = text.indexOf("'"); q !== -1; q = text.indexOf("'", from)) {
|
|
73
|
+
const end = stepStringLiteralEnd(text, q);
|
|
74
|
+
if (end === -1)
|
|
75
|
+
break;
|
|
76
|
+
out += edit(text.slice(from, q)) + text.slice(q, end);
|
|
77
|
+
from = end;
|
|
78
|
+
}
|
|
79
|
+
return out + edit(text.slice(from));
|
|
80
|
+
}
|
|
64
81
|
//# sourceMappingURL=step-outer-args.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-outer-args.js","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"step-outer-args.js","sourceRoot":"","sources":["../src/step-outer-args.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,uDAAuD;YACpF,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,4CAA4C;YACzD,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,mEAAmE;YACnE,kCAAkC;YAClC,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5B,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAA8B;IAChF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM;QACtB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,GAAG,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -41,6 +41,8 @@ import type { ExportPass, StepExportOptions } from './step-exporter.js';
|
|
|
41
41
|
*/
|
|
42
42
|
export interface OverlayEntitiesContext {
|
|
43
43
|
readonly mutationView: MutablePropertyView | null;
|
|
44
|
+
/** Whether the SOURCE file has a record with this id (#7682). */
|
|
45
|
+
readonly isSourceRecord: (id: number) => boolean;
|
|
44
46
|
/** `step-overlay-attribute-overrides.ts`'s `applyOverlayEntityOverrides`: resolves
|
|
45
47
|
* named/positional overrides against the overlay-created entity's
|
|
46
48
|
* EFFECTIVE class. */
|
|
@@ -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;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,
|
|
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,iEAAiE;IACjE,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACjD;;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,CAkJN"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { filterHiddenRefsFromRelationshipLine } from './reference-collector.js';
|
|
5
|
-
import {
|
|
5
|
+
import { convertStepLineFlattening } from './schema-style-flatten.js';
|
|
6
6
|
import { STYLE_RESCUE_TYPES } from './style-closure.js';
|
|
7
7
|
import { NONREL_REF_LIST_TYPES } from './nonrel-ref-list-types.js';
|
|
8
8
|
import { narrowNonRelPositionalRefLists } from './nonrel-positional-ref-narrowing.js';
|
|
@@ -24,9 +24,11 @@ export function writeOverlayCreatedEntities(pass, options, excludeGeometry, appl
|
|
|
24
24
|
|| typeof ctx.mutationView.getNewEntities !== 'function') {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
+
refuseCreatedIdsReusingSourceIds(ctx.mutationView, ctx.isSourceRecord);
|
|
27
28
|
const getTypeMut = typeof ctx.mutationView.getEntityTypeMutation === 'function'
|
|
28
29
|
? ctx.mutationView.getEntityTypeMutation.bind(ctx.mutationView)
|
|
29
30
|
: null;
|
|
31
|
+
const toConvert = [];
|
|
30
32
|
for (const entity of ctx.mutationView.getNewEntities()) {
|
|
31
33
|
if (pass.skipRelationshipIds.has(entity.expressId) || pass.skipPropertySetIds.has(entity.expressId))
|
|
32
34
|
continue;
|
|
@@ -34,6 +36,12 @@ export function writeOverlayCreatedEntities(pass, options, excludeGeometry, appl
|
|
|
34
36
|
// (the overlay typeMutation is the source of truth for the effective
|
|
35
37
|
// class). Resolve the effective class, then re-lay-out the authored
|
|
36
38
|
// attributes from the authored layout up to it.
|
|
39
|
+
// The authored class becomes the record's keyword verbatim, so it is held
|
|
40
|
+
// to the name `setEntityType` accepts: anything else (`IfcWall($);\n#1=…`)
|
|
41
|
+
// would write records the caller never created (#7682, EXPORT-STEP-26).
|
|
42
|
+
if (!/^[Ii][Ff][Cc][A-Za-z][A-Za-z0-9_]*$/.test(entity.type)) {
|
|
43
|
+
throw new Error(`created entity #${entity.expressId}: "${entity.type}" is not a recognizable IFC entity name`);
|
|
44
|
+
}
|
|
37
45
|
const typeMut = getTypeMut ? getTypeMut(entity.expressId) : null;
|
|
38
46
|
const effectiveType = typeMut?.newType ?? entity.type;
|
|
39
47
|
// STEP requires UPPERCASE entity type tokens; the upper-case happens
|
|
@@ -127,16 +135,40 @@ export function writeOverlayCreatedEntities(pass, options, excludeGeometry, appl
|
|
|
127
135
|
else if (mayNameOmittedRefs && NONREL_REF_LIST_TYPES.has(upperType)) {
|
|
128
136
|
line = narrowNonRelPositionalRefLists(line, isOmittedFromOutput, upperType, pass.sourceSchema);
|
|
129
137
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
// Converted after the loop: a created style assignment may follow the styled item naming it.
|
|
139
|
+
(pass.converting ? toConvert : pass.entities).push(line);
|
|
140
|
+
pass.newEntityCount++;
|
|
141
|
+
}
|
|
142
|
+
for (const line of toConvert)
|
|
143
|
+
pass.styleFlatten?.noteLine(line);
|
|
144
|
+
pass.styleFlatten?.settle();
|
|
145
|
+
for (const line of toConvert) {
|
|
146
|
+
const converted = convertStepLineFlattening(pass.styleFlatten, line, pass.sourceSchema, pass.schema, options.guidRandom, pass.slotFill, pass.withheldRefIds, pass.ifc4Slots, pass.enums);
|
|
147
|
+
if (converted !== null)
|
|
148
|
+
pass.entities.push(converted);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* A created entity never reuses a source id (`express-id-watermark.ts`
|
|
153
|
+
* allocates past the file's highest one), so a session that created one under
|
|
154
|
+
* a source id, even one it deleted again, replayed a log written against
|
|
155
|
+
* another file. Writing either record would silently drop the other, and the
|
|
156
|
+
* later delete of the created one would tombstone the source record (#7682,
|
|
157
|
+
* EXPORT-STEP-26). A created-then-deleted entity is the tombstoned id the view
|
|
158
|
+
* reports no change for (`hasChanges` forgets it, see `deleteEntity`). The
|
|
159
|
+
* Rust writer refuses the same logs with the same message.
|
|
160
|
+
*/
|
|
161
|
+
function refuseCreatedIdsReusingSourceIds(view, isSourceRecord) {
|
|
162
|
+
const created = view.getNewEntities().map((entity) => entity.expressId);
|
|
163
|
+
const history = typeof view.getMutations === 'function' ? view.getMutations() : [];
|
|
164
|
+
for (const mutation of history) {
|
|
165
|
+
const id = mutation.entityId;
|
|
166
|
+
if (mutation.type === 'DELETE_ENTITY' && view.isDeleted(id) && !view.hasChanges(id))
|
|
167
|
+
created.push(id);
|
|
168
|
+
}
|
|
169
|
+
const reused = created.find((id) => isSourceRecord(id));
|
|
170
|
+
if (reused !== undefined) {
|
|
171
|
+
throw new Error(`created entity #${reused} reuses source id #${reused}: the log was not written against this file`);
|
|
140
172
|
}
|
|
141
173
|
}
|
|
142
174
|
//# sourceMappingURL=step-overlay-entities.js.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"step-overlay-entities.js","sourceRoot":"","sources":["../src/step-overlay-entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAW5E;;;;;;;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,CAiRjE"}
|
|
@@ -9,6 +9,7 @@ import { Ifc2x3SlotFill } from './schema-converter-ifc2x3-slots.js';
|
|
|
9
9
|
import { Ifc4SlotCheck } from './schema-converter-ifc4-slots.js';
|
|
10
10
|
import { EnumReconciliation } from './schema-converter-enums.js';
|
|
11
11
|
import { computeWithheldRefIds } from './schema-untranslatable.js';
|
|
12
|
+
import { StyleFlatten } from './schema-style-flatten.js';
|
|
12
13
|
export function buildExportPass(input) {
|
|
13
14
|
const { dataStore, mutationView, isGeometryEntity, options, schema, sourceSchema, converting, applyMutations, excludeGeometry, sourceHeader, schemaToken, } = input;
|
|
14
15
|
const effective = getEffectiveEntityIndex(dataStore, mutationView, applyMutations);
|
|
@@ -233,6 +234,8 @@ export function buildExportPass(input) {
|
|
|
233
234
|
modifiedAttributes: new Map(),
|
|
234
235
|
newPropertySets: [],
|
|
235
236
|
newQuantitySets: [],
|
|
237
|
+
typeOwnedQuantityIdsByEntity: new Map(),
|
|
238
|
+
addedTypeOwnedQuantityIds: new Map(),
|
|
236
239
|
typeOwnedPsetNamesByEntity: new Map(),
|
|
237
240
|
typeOwnedPsetIdsByEntity: new Map(),
|
|
238
241
|
rewrittenEntityIds: new Set(),
|
|
@@ -252,6 +255,7 @@ export function buildExportPass(input) {
|
|
|
252
255
|
ifc4Slots: new Ifc4SlotCheck(),
|
|
253
256
|
enums: new EnumReconciliation(),
|
|
254
257
|
withheldRefIds: computeWithheldRefIds(dataStore, schema, effective),
|
|
258
|
+
styleFlatten: StyleFlatten.fromStore(dataStore, sourceSchema, schema),
|
|
255
259
|
};
|
|
256
260
|
// The same object, deliberately. See the file header.
|
|
257
261
|
return pass;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-pass-builder.js","sourceRoot":"","sources":["../src/step-pass-builder.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyB/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"step-pass-builder.js","sourceRoot":"","sources":["../src/step-pass-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-property-set-collection.d.ts","sourceRoot":"","sources":["../src/step-property-set-collection.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-property-set-collection.d.ts","sourceRoot":"","sources":["../src/step-property-set-collection.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACnF,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/D;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,kBAAkB,GACtB,IAAI,CAoSN"}
|