@ifc-lite/export 1.14.3 → 1.15.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/__fixtures__/ifc5-official-schemas.d.ts +52 -0
- package/dist/__fixtures__/ifc5-official-schemas.d.ts.map +1 -0
- package/dist/__fixtures__/ifc5-official-schemas.js +207 -0
- package/dist/__fixtures__/ifc5-official-schemas.js.map +1 -0
- package/dist/ifc5-exporter.d.ts +38 -6
- package/dist/ifc5-exporter.d.ts.map +1 -1
- package/dist/ifc5-exporter.js +223 -118
- package/dist/ifc5-exporter.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/merged-exporter.d.ts.map +1 -1
- package/dist/merged-exporter.js +3 -1
- package/dist/merged-exporter.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface SchemaValueDescription {
|
|
2
|
+
dataType: 'Real' | 'Boolean' | 'Integer' | 'String' | 'DateTime' | 'Enum' | 'Array' | 'Object' | 'Reference' | 'Blob';
|
|
3
|
+
optional?: boolean;
|
|
4
|
+
inherits?: string[];
|
|
5
|
+
quantityKind?: string;
|
|
6
|
+
enumRestrictions?: {
|
|
7
|
+
options: string[];
|
|
8
|
+
};
|
|
9
|
+
arrayRestrictions?: {
|
|
10
|
+
value: SchemaValueDescription;
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
};
|
|
14
|
+
objectRestrictions?: {
|
|
15
|
+
values: Record<string, SchemaValueDescription>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface SchemaDefinition {
|
|
19
|
+
value: SchemaValueDescription;
|
|
20
|
+
uri?: string;
|
|
21
|
+
}
|
|
22
|
+
/** IFC core schemas from ifc@v5a.ifcx */
|
|
23
|
+
export declare const IFC_CORE_SCHEMAS: Record<string, SchemaDefinition>;
|
|
24
|
+
/** IFC property schemas from prop@v5a.ifcx */
|
|
25
|
+
export declare const IFC_PROP_SCHEMAS: Record<string, SchemaDefinition>;
|
|
26
|
+
/** USD schemas from usd@v1.ifcx */
|
|
27
|
+
export declare const USD_SCHEMAS: Record<string, SchemaDefinition>;
|
|
28
|
+
/** All official schemas combined */
|
|
29
|
+
export declare const ALL_OFFICIAL_SCHEMAS: Record<string, SchemaDefinition>;
|
|
30
|
+
export declare const STANDARD_IMPORT_URIS: {
|
|
31
|
+
readonly IFC_CORE: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx";
|
|
32
|
+
readonly IFC_PROP: "https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx";
|
|
33
|
+
readonly USD: "https://ifcx.dev/@openusd.org/usd@v1.ifcx";
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Validate a value against a schema value description.
|
|
37
|
+
* Returns an array of error messages (empty = valid).
|
|
38
|
+
*/
|
|
39
|
+
export declare function validateValue(value: unknown, schema: SchemaValueDescription, path: string): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Validate an entire IFCX file against the official schemas.
|
|
42
|
+
*
|
|
43
|
+
* This mirrors the viewer's validation logic:
|
|
44
|
+
* 1. Every attribute key must either be defined in an imported schema, defined
|
|
45
|
+
* in the file's local `schemas` section, or belong to an unrecognized namespace.
|
|
46
|
+
* 2. If an attribute's namespace matches an imported schema file but the specific
|
|
47
|
+
* key is NOT defined in that schema file → "Missing schema" error (exactly
|
|
48
|
+
* what the BSI viewer reports).
|
|
49
|
+
* 3. Values are type-checked against their schema definitions.
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateIfcxFile(file: any): string[];
|
|
52
|
+
//# sourceMappingURL=ifc5-official-schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifc5-official-schemas.d.ts","sourceRoot":"","sources":["../../src/__fixtures__/ifc5-official-schemas.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACtH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACzC,iBAAiB,CAAC,EAAE;QAAE,KAAK,EAAE,sBAAsB,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,kBAAkB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;KAAE,CAAC;CACzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,sBAAsB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAaD,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAkC,CAAC;AAEjG,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAmC,CAAC;AAElG,mCAAmC;AACnC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAiC,CAAC;AAE3F,oCAAoC;AACpC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAIjE,CAAC;AA+BF,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAMX;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,sBAAsB,EAC9B,IAAI,EAAE,MAAM,GACX,MAAM,EAAE,CA4EV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,CAsDpD"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Official IFC5 schema definitions loaded DYNAMICALLY from the real
|
|
6
|
+
* buildingSMART schema files (source of truth: github.com/buildingSMART/ifcx.dev).
|
|
7
|
+
*
|
|
8
|
+
* The .ifcx schema files are committed under __fixtures__/schemas/ and loaded
|
|
9
|
+
* at test time so that any upstream schema change is caught automatically.
|
|
10
|
+
*
|
|
11
|
+
* Schema files:
|
|
12
|
+
* - @standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx
|
|
13
|
+
* - @standards.buildingsmart.org/ifc/core/prop@v5a.ifcx
|
|
14
|
+
* - @openusd.org/usd@v1.ifcx
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync } from 'fs';
|
|
17
|
+
import { resolve } from 'path';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Load real schema files from buildingSMART/ifcx.dev
|
|
20
|
+
// ============================================================================
|
|
21
|
+
const SCHEMAS_DIR = resolve(__dirname, 'schemas');
|
|
22
|
+
function loadSchemaFile(filename) {
|
|
23
|
+
const content = JSON.parse(readFileSync(resolve(SCHEMAS_DIR, filename), 'utf-8'));
|
|
24
|
+
return content.schemas ?? {};
|
|
25
|
+
}
|
|
26
|
+
/** IFC core schemas from ifc@v5a.ifcx */
|
|
27
|
+
export const IFC_CORE_SCHEMAS = loadSchemaFile('ifc@v5a.ifcx');
|
|
28
|
+
/** IFC property schemas from prop@v5a.ifcx */
|
|
29
|
+
export const IFC_PROP_SCHEMAS = loadSchemaFile('prop@v5a.ifcx');
|
|
30
|
+
/** USD schemas from usd@v1.ifcx */
|
|
31
|
+
export const USD_SCHEMAS = loadSchemaFile('usd@v1.ifcx');
|
|
32
|
+
/** All official schemas combined */
|
|
33
|
+
export const ALL_OFFICIAL_SCHEMAS = {
|
|
34
|
+
...IFC_CORE_SCHEMAS,
|
|
35
|
+
...IFC_PROP_SCHEMAS,
|
|
36
|
+
...USD_SCHEMAS,
|
|
37
|
+
};
|
|
38
|
+
// ============================================================================
|
|
39
|
+
// Namespace → schema file mapping (mirrors what the viewer resolves)
|
|
40
|
+
// ============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* Maps attribute key prefixes to which schema file defines them.
|
|
43
|
+
* The viewer resolves schemas by checking which imported .ifcx file defines a
|
|
44
|
+
* given attribute key. If the key's namespace has an import but no matching
|
|
45
|
+
* schema definition, it's an error.
|
|
46
|
+
*/
|
|
47
|
+
const NAMESPACE_SCHEMA_MAP = {
|
|
48
|
+
'bsi::ifc::prop::': IFC_PROP_SCHEMAS,
|
|
49
|
+
'bsi::ifc::': IFC_CORE_SCHEMAS,
|
|
50
|
+
'usd::': USD_SCHEMAS,
|
|
51
|
+
};
|
|
52
|
+
function findSchemaForKey(key) {
|
|
53
|
+
for (const [prefix, schemas] of Object.entries(NAMESPACE_SCHEMA_MAP)) {
|
|
54
|
+
if (key.startsWith(prefix)) {
|
|
55
|
+
return { schema: schemas[key], namespaceMatched: true };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return { schema: undefined, namespaceMatched: false };
|
|
59
|
+
}
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// Standard import URIs
|
|
62
|
+
// ============================================================================
|
|
63
|
+
export const STANDARD_IMPORT_URIS = {
|
|
64
|
+
IFC_CORE: 'https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx',
|
|
65
|
+
IFC_PROP: 'https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx',
|
|
66
|
+
USD: 'https://ifcx.dev/@openusd.org/usd@v1.ifcx',
|
|
67
|
+
};
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// Validation helpers
|
|
70
|
+
// ============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Validate a value against a schema value description.
|
|
73
|
+
* Returns an array of error messages (empty = valid).
|
|
74
|
+
*/
|
|
75
|
+
export function validateValue(value, schema, path) {
|
|
76
|
+
const errors = [];
|
|
77
|
+
if (value === null || value === undefined) {
|
|
78
|
+
if (!schema.optional) {
|
|
79
|
+
errors.push(`${path}: Required value is null/undefined`);
|
|
80
|
+
}
|
|
81
|
+
return errors;
|
|
82
|
+
}
|
|
83
|
+
switch (schema.dataType) {
|
|
84
|
+
case 'String':
|
|
85
|
+
if (typeof value !== 'string') {
|
|
86
|
+
errors.push(`${path}: Expected String, got ${typeof value}`);
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
89
|
+
case 'Real':
|
|
90
|
+
if (typeof value !== 'number') {
|
|
91
|
+
errors.push(`${path}: Expected Real (number), got ${typeof value}`);
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
case 'Integer':
|
|
95
|
+
if (typeof value !== 'number' || !Number.isInteger(value)) {
|
|
96
|
+
errors.push(`${path}: Expected Integer, got ${typeof value}${typeof value === 'number' ? ` (${value})` : ''}`);
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
case 'Boolean':
|
|
100
|
+
if (typeof value !== 'boolean') {
|
|
101
|
+
errors.push(`${path}: Expected Boolean, got ${typeof value}`);
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case 'Array':
|
|
105
|
+
if (!Array.isArray(value)) {
|
|
106
|
+
errors.push(`${path}: Expected Array, got ${typeof value}`);
|
|
107
|
+
}
|
|
108
|
+
else if (schema.arrayRestrictions?.value) {
|
|
109
|
+
for (let i = 0; i < value.length; i++) {
|
|
110
|
+
errors.push(...validateValue(value[i], schema.arrayRestrictions.value, `${path}[${i}]`));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'Object':
|
|
115
|
+
if (typeof value !== 'object' || Array.isArray(value)) {
|
|
116
|
+
errors.push(`${path}: Expected Object, got ${Array.isArray(value) ? 'Array' : typeof value}`);
|
|
117
|
+
}
|
|
118
|
+
else if (schema.objectRestrictions?.values) {
|
|
119
|
+
const obj = value;
|
|
120
|
+
for (const [key, valSchema] of Object.entries(schema.objectRestrictions.values)) {
|
|
121
|
+
if (!valSchema.optional && !(key in obj)) {
|
|
122
|
+
errors.push(`${path}: Missing required key "${key}"`);
|
|
123
|
+
}
|
|
124
|
+
if (key in obj) {
|
|
125
|
+
errors.push(...validateValue(obj[key], valSchema, `${path}.${key}`));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
for (const key of Object.keys(obj)) {
|
|
129
|
+
if (!(key in schema.objectRestrictions.values)) {
|
|
130
|
+
errors.push(`${path}: Unknown key "${key}" (allowed: ${Object.keys(schema.objectRestrictions.values).join(', ')})`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
case 'Enum':
|
|
136
|
+
if (typeof value !== 'string') {
|
|
137
|
+
errors.push(`${path}: Expected Enum (string), got ${typeof value}`);
|
|
138
|
+
}
|
|
139
|
+
else if (schema.enumRestrictions?.options && !schema.enumRestrictions.options.includes(value)) {
|
|
140
|
+
errors.push(`${path}: Invalid enum value "${value}" (allowed: ${schema.enumRestrictions.options.join(', ')})`);
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
return errors;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Validate an entire IFCX file against the official schemas.
|
|
148
|
+
*
|
|
149
|
+
* This mirrors the viewer's validation logic:
|
|
150
|
+
* 1. Every attribute key must either be defined in an imported schema, defined
|
|
151
|
+
* in the file's local `schemas` section, or belong to an unrecognized namespace.
|
|
152
|
+
* 2. If an attribute's namespace matches an imported schema file but the specific
|
|
153
|
+
* key is NOT defined in that schema file → "Missing schema" error (exactly
|
|
154
|
+
* what the BSI viewer reports).
|
|
155
|
+
* 3. Values are type-checked against their schema definitions.
|
|
156
|
+
*/
|
|
157
|
+
export function validateIfcxFile(file) {
|
|
158
|
+
const errors = [];
|
|
159
|
+
// Validate top-level structure
|
|
160
|
+
if (!file.header)
|
|
161
|
+
errors.push('Missing "header" field');
|
|
162
|
+
if (!Array.isArray(file.imports))
|
|
163
|
+
errors.push('"imports" must be an array');
|
|
164
|
+
if (typeof file.schemas !== 'object')
|
|
165
|
+
errors.push('"schemas" must be an object');
|
|
166
|
+
if (!Array.isArray(file.data))
|
|
167
|
+
errors.push('"data" must be an array');
|
|
168
|
+
// Validate imports format
|
|
169
|
+
for (const imp of file.imports ?? []) {
|
|
170
|
+
if (typeof imp !== 'object' || typeof imp.uri !== 'string') {
|
|
171
|
+
errors.push(`Import must be an object with "uri" string, got: ${JSON.stringify(imp)}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Collect local schemas (files can define their own schemas inline)
|
|
175
|
+
const localSchemas = file.schemas ?? {};
|
|
176
|
+
// Validate each data node
|
|
177
|
+
for (const node of file.data ?? []) {
|
|
178
|
+
if (typeof node.path !== 'string') {
|
|
179
|
+
errors.push(`Data node missing "path" field`);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
for (const [attrKey, attrVal] of Object.entries(node.attributes ?? {})) {
|
|
183
|
+
// Check local schemas first
|
|
184
|
+
if (localSchemas[attrKey]) {
|
|
185
|
+
errors.push(...validateValue(attrVal, localSchemas[attrKey].value, `["${node.path}"].attributes["${attrKey}"]`));
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
// Check official schemas
|
|
189
|
+
const { schema, namespaceMatched } = findSchemaForKey(attrKey);
|
|
190
|
+
if (schema) {
|
|
191
|
+
// Known schema — validate value type
|
|
192
|
+
errors.push(...validateValue(attrVal, schema.value, `["${node.path}"].attributes["${attrKey}"]`));
|
|
193
|
+
}
|
|
194
|
+
else if (namespaceMatched) {
|
|
195
|
+
// Namespace matches an imported schema file, but this specific key
|
|
196
|
+
// is NOT defined → this is what the BSI viewer reports as
|
|
197
|
+
// 'Missing schema "bsi::ifc::prop::Reference"'
|
|
198
|
+
errors.push(`["${node.path}"].attributes: Missing schema "${attrKey}" ` +
|
|
199
|
+
`(not defined in the official schema files)`);
|
|
200
|
+
}
|
|
201
|
+
// If namespace doesn't match any known import, it's a custom/extension
|
|
202
|
+
// attribute and we don't validate it (same as the viewer).
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return errors;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=ifc5-official-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifc5-official-schemas.js","sourceRoot":"","sources":["../../src/__fixtures__/ifc5-official-schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/ifc5-exporter.d.ts
CHANGED
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
14
14
|
import type { MutablePropertyView } from '@ifc-lite/mutations';
|
|
15
15
|
import type { GeometryResult } from '@ifc-lite/geometry';
|
|
16
|
+
/**
|
|
17
|
+
* Property names that have official IFC5 schema definitions in prop@v5a.ifcx.
|
|
18
|
+
* Source: https://github.com/buildingSMART/ifcx.dev/blob/main/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx
|
|
19
|
+
*
|
|
20
|
+
* IFC4 properties NOT in this set (e.g. Reference, LoadBearing, ExtendToStructure)
|
|
21
|
+
* must be omitted from IFC5 export — the viewer reports "Missing schema" errors for them.
|
|
22
|
+
*
|
|
23
|
+
* Name and Description are handled separately (always exported), so they're excluded here.
|
|
24
|
+
*/
|
|
25
|
+
export declare const IFC5_KNOWN_PROP_NAMES: Set<string>;
|
|
16
26
|
/** Options for IFC5 export */
|
|
17
27
|
export interface Ifc5ExportOptions {
|
|
18
28
|
/** Author name */
|
|
@@ -33,6 +43,14 @@ export interface Ifc5ExportOptions {
|
|
|
33
43
|
hiddenEntityIds?: Set<number>;
|
|
34
44
|
/** Isolated entity IDs (local expressIds, null = no isolation) */
|
|
35
45
|
isolatedEntityIds?: Set<number> | null;
|
|
46
|
+
/** Only export properties with known IFC5 schemas (default: true).
|
|
47
|
+
* When false, all IFC4 properties are exported even if they lack
|
|
48
|
+
* an official IFC5 schema definition (viewer may show warnings). */
|
|
49
|
+
onlyKnownProperties?: boolean;
|
|
50
|
+
/** Only export entities reachable from the spatial tree (default: true).
|
|
51
|
+
* When true, relationship entities (IfcRel*), type objects, materials,
|
|
52
|
+
* and other non-spatial entities are excluded from the output. */
|
|
53
|
+
onlyTreeEntities?: boolean;
|
|
36
54
|
}
|
|
37
55
|
/** Result of IFC5 export */
|
|
38
56
|
export interface Ifc5ExportResult {
|
|
@@ -54,22 +72,31 @@ export declare class Ifc5Exporter {
|
|
|
54
72
|
private mutationView;
|
|
55
73
|
private geometryResult;
|
|
56
74
|
private idOffset;
|
|
57
|
-
/** Unique
|
|
58
|
-
private
|
|
75
|
+
/** Unique child name per entity (with _<id> suffix when siblings collide) */
|
|
76
|
+
private childNames;
|
|
59
77
|
/** Real names from SpatialNode tree (reliable for spatial containers) */
|
|
60
78
|
private spatialNodeNames;
|
|
61
79
|
/** Spatial container children (Project→Sites, Site→Buildings, etc.) */
|
|
62
80
|
private spatialChildIds;
|
|
81
|
+
/** UUID path for each entity expressId */
|
|
82
|
+
private entityUuids;
|
|
63
83
|
constructor(dataStore: IfcDataStore, geometryResult?: GeometryResult | null, mutationView?: MutablePropertyView, idOffset?: number);
|
|
64
84
|
/**
|
|
65
85
|
* Export to IFCX JSON format
|
|
66
86
|
*/
|
|
67
87
|
export(options?: Ifc5ExportOptions): Ifc5ExportResult;
|
|
88
|
+
/** Find the entity table index for a given expressId. */
|
|
89
|
+
private findEntityIndex;
|
|
68
90
|
/**
|
|
69
|
-
* Build
|
|
70
|
-
*
|
|
91
|
+
* Build UUID paths and child-name maps for all entities.
|
|
92
|
+
*
|
|
93
|
+
* IFCX uses flat UUID paths (not hierarchical). Hierarchy is expressed
|
|
94
|
+
* solely via the `children` dict on each node. This method:
|
|
95
|
+
* 1. Assigns a UUID to every entity (using GlobalId when available)
|
|
96
|
+
* 2. Builds the spatial parent→children map
|
|
97
|
+
* 3. Computes unique child names for the children dict keys
|
|
71
98
|
*/
|
|
72
|
-
private
|
|
99
|
+
private buildEntityMaps;
|
|
73
100
|
/**
|
|
74
101
|
* Get properties for an entity, converted to IFCX attribute format.
|
|
75
102
|
*/
|
|
@@ -81,7 +108,7 @@ export declare class Ifc5Exporter {
|
|
|
81
108
|
private convertPropertyValue;
|
|
82
109
|
/**
|
|
83
110
|
* Get children for a spatial entity.
|
|
84
|
-
* IFCX children format: { childName:
|
|
111
|
+
* IFCX children format: { childName: childUuid }
|
|
85
112
|
*/
|
|
86
113
|
private getChildrenForEntity;
|
|
87
114
|
/**
|
|
@@ -93,6 +120,11 @@ export declare class Ifc5Exporter {
|
|
|
93
120
|
* Merges multiple mesh fragments for the same entity.
|
|
94
121
|
*/
|
|
95
122
|
private convertToUsdMesh;
|
|
123
|
+
/**
|
|
124
|
+
* Build the set of entity IDs reachable from the spatial tree.
|
|
125
|
+
* Includes Project, Site, Building, Storey, Space, and all contained elements.
|
|
126
|
+
*/
|
|
127
|
+
private buildTreeEntitySet;
|
|
96
128
|
/**
|
|
97
129
|
* Build visible entity set if visibility filtering is requested.
|
|
98
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc5-exporter.d.ts","sourceRoot":"","sources":["../src/ifc5-exporter.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ifc5-exporter.d.ts","sourceRoot":"","sources":["../src/ifc5-exporter.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuBnE;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,aAkBhC,CAAC;AAMH,8BAA8B;AAC9B,MAAM,WAAW,iBAAiB;IAChC,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC;;yEAEqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;uEAEmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,4BAA4B;AAC5B,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AA4BD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,QAAQ,CAAS;IACzB,6EAA6E;IAC7E,OAAO,CAAC,UAAU,CAA6B;IAC/C,yEAAyE;IACzE,OAAO,CAAC,gBAAgB,CAA6B;IACrD,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAA+B;IACtD,0CAA0C;IAC1C,OAAO,CAAC,WAAW,CAA6B;gBAG9C,SAAS,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,EACtC,YAAY,CAAC,EAAE,mBAAmB,EAClC,QAAQ,CAAC,EAAE,MAAM;IAQnB;;OAEG;IACH,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB;IAqKzD,yDAAyD;IACzD,OAAO,CAAC,eAAe;IAYvB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAqGvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA4C5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,eAAe;CAsBxB"}
|
package/dist/ifc5-exporter.js
CHANGED
|
@@ -4,6 +4,46 @@
|
|
|
4
4
|
import { IfcTypeEnumToString, IfcTypeEnumFromString, PropertyValueType, } from '@ifc-lite/data';
|
|
5
5
|
import { convertEntityType } from './schema-converter.js';
|
|
6
6
|
// ============================================================================
|
|
7
|
+
// Standard IFCX schema imports
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/** Standard IFC5 schema package URIs, keyed by the attribute prefix they provide. */
|
|
10
|
+
const IFCX_SCHEMA_IMPORTS = {
|
|
11
|
+
/** Core IFC: bsi::ifc::class, bsi::ifc::presentation::*, bsi::ifc::material, bsi::ifc::spaceBoundary */
|
|
12
|
+
IFC_CORE: 'https://ifcx.dev/@standards.buildingsmart.org/ifc/core/ifc@v5a.ifcx',
|
|
13
|
+
/** IFC properties: bsi::ifc::prop::* */
|
|
14
|
+
IFC_PROP: 'https://ifcx.dev/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx',
|
|
15
|
+
/** OpenUSD geometry: usd::usdgeom::mesh, usd::xformop, usd::usdgeom::visibility */
|
|
16
|
+
USD: 'https://ifcx.dev/@openusd.org/usd@v1.ifcx',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Property names that have official IFC5 schema definitions in prop@v5a.ifcx.
|
|
20
|
+
* Source: https://github.com/buildingSMART/ifcx.dev/blob/main/@standards.buildingsmart.org/ifc/core/prop@v5a.ifcx
|
|
21
|
+
*
|
|
22
|
+
* IFC4 properties NOT in this set (e.g. Reference, LoadBearing, ExtendToStructure)
|
|
23
|
+
* must be omitted from IFC5 export — the viewer reports "Missing schema" errors for them.
|
|
24
|
+
*
|
|
25
|
+
* Name and Description are handled separately (always exported), so they're excluded here.
|
|
26
|
+
*/
|
|
27
|
+
export const IFC5_KNOWN_PROP_NAMES = new Set([
|
|
28
|
+
'UsageType',
|
|
29
|
+
'TypeName',
|
|
30
|
+
'IsExternal',
|
|
31
|
+
'RefElevation',
|
|
32
|
+
'ElevationOfRefHeight',
|
|
33
|
+
'ElevationOfTerrain',
|
|
34
|
+
'NumberOfStoreys',
|
|
35
|
+
'Height',
|
|
36
|
+
'Width',
|
|
37
|
+
'Length',
|
|
38
|
+
'Depth',
|
|
39
|
+
'Volume',
|
|
40
|
+
'NetVolume',
|
|
41
|
+
'NetArea',
|
|
42
|
+
'NetSideArea',
|
|
43
|
+
'CrossSectionArea',
|
|
44
|
+
'Station',
|
|
45
|
+
]);
|
|
46
|
+
// ============================================================================
|
|
7
47
|
// Exporter
|
|
8
48
|
// ============================================================================
|
|
9
49
|
/**
|
|
@@ -14,12 +54,14 @@ export class Ifc5Exporter {
|
|
|
14
54
|
mutationView;
|
|
15
55
|
geometryResult;
|
|
16
56
|
idOffset;
|
|
17
|
-
/** Unique
|
|
18
|
-
|
|
57
|
+
/** Unique child name per entity (with _<id> suffix when siblings collide) */
|
|
58
|
+
childNames = new Map();
|
|
19
59
|
/** Real names from SpatialNode tree (reliable for spatial containers) */
|
|
20
60
|
spatialNodeNames = new Map();
|
|
21
61
|
/** Spatial container children (Project→Sites, Site→Buildings, etc.) */
|
|
22
62
|
spatialChildIds = new Map();
|
|
63
|
+
/** UUID path for each entity expressId */
|
|
64
|
+
entityUuids = new Map();
|
|
23
65
|
constructor(dataStore, geometryResult, mutationView, idOffset) {
|
|
24
66
|
this.dataStore = dataStore;
|
|
25
67
|
this.geometryResult = geometryResult ?? null;
|
|
@@ -31,49 +73,57 @@ export class Ifc5Exporter {
|
|
|
31
73
|
*/
|
|
32
74
|
export(options = {}) {
|
|
33
75
|
const sourceSchema = this.dataStore.schemaVersion || 'IFC4';
|
|
34
|
-
// Build
|
|
35
|
-
|
|
76
|
+
// Build UUID paths and child-name maps from spatial hierarchy
|
|
77
|
+
this.buildEntityMaps();
|
|
36
78
|
// Build mesh lookup by expressId
|
|
37
79
|
const meshByEntity = this.buildMeshLookup(options);
|
|
38
80
|
// Build visible set
|
|
39
81
|
const visibleIds = this.buildVisibleSet(options);
|
|
82
|
+
// Build spatial tree set (entities reachable from the project node)
|
|
83
|
+
const treeIds = options.onlyTreeEntities !== false ? this.buildTreeEntitySet() : null;
|
|
40
84
|
// Collect nodes
|
|
41
85
|
const nodes = [];
|
|
42
86
|
let propertyCount = 0;
|
|
43
87
|
let meshCount = 0;
|
|
44
88
|
const { entities, strings } = this.dataStore;
|
|
89
|
+
// Find the project entity so we can create a root node pointing to it
|
|
90
|
+
let projectExpressId = null;
|
|
45
91
|
for (let i = 0; i < entities.count; i++) {
|
|
46
92
|
const expressId = entities.expressId[i];
|
|
47
93
|
// Visibility filter
|
|
48
94
|
if (visibleIds && !visibleIds.has(expressId))
|
|
49
95
|
continue;
|
|
96
|
+
// Spatial tree filter
|
|
97
|
+
if (treeIds && !treeIds.has(expressId))
|
|
98
|
+
continue;
|
|
50
99
|
const typeEnum = entities.typeEnum[i];
|
|
51
100
|
const typeName = IfcTypeEnumToString(typeEnum) || 'IfcElement';
|
|
52
101
|
// Convert entity type to IFC5 (aligned with IFC4X3)
|
|
53
102
|
const ifc5Type = convertEntityType(typeName.toUpperCase(), sourceSchema, 'IFC5');
|
|
54
103
|
// Convert back to PascalCase for IFCX
|
|
55
104
|
const ifc5Class = stepTypeToClassName(ifc5Type);
|
|
56
|
-
|
|
57
|
-
|
|
105
|
+
if (ifc5Class === 'IfcProject') {
|
|
106
|
+
projectExpressId = expressId;
|
|
107
|
+
}
|
|
108
|
+
// Get UUID path for this entity
|
|
109
|
+
const path = this.entityUuids.get(expressId) || generateUuid(expressId);
|
|
58
110
|
// Build attributes
|
|
59
111
|
const attributes = {};
|
|
60
|
-
// IFC class
|
|
61
|
-
attributes['bsi::ifc::class'] = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
// Name - only write when real data exists (don't fabricate names)
|
|
112
|
+
// IFC class (requires both code and uri per official schema)
|
|
113
|
+
attributes['bsi::ifc::class'] = {
|
|
114
|
+
code: ifc5Class,
|
|
115
|
+
uri: `https://identifier.buildingsmart.org/uri/buildingsmart/ifc/5/class/${ifc5Class}`,
|
|
116
|
+
};
|
|
117
|
+
// Name → bsi::ifc::prop::Name (IFC5 uses prop namespace, not bsi::ifc::name)
|
|
68
118
|
const name = strings.get(entities.name[i])
|
|
69
119
|
|| this.spatialNodeNames.get(expressId);
|
|
70
120
|
if (name) {
|
|
71
|
-
attributes['bsi::ifc::
|
|
121
|
+
attributes['bsi::ifc::prop::Name'] = name;
|
|
72
122
|
}
|
|
73
|
-
// Description
|
|
123
|
+
// Description → bsi::ifc::prop::Description
|
|
74
124
|
const description = strings.get(entities.description[i]);
|
|
75
125
|
if (description) {
|
|
76
|
-
attributes['bsi::ifc::
|
|
126
|
+
attributes['bsi::ifc::prop::Description'] = description;
|
|
77
127
|
}
|
|
78
128
|
// Properties
|
|
79
129
|
if (options.includeProperties !== false) {
|
|
@@ -86,7 +136,7 @@ export class Ifc5Exporter {
|
|
|
86
136
|
// Build node
|
|
87
137
|
const node = { path };
|
|
88
138
|
// Children from spatial hierarchy
|
|
89
|
-
const children = this.getChildrenForEntity(expressId
|
|
139
|
+
const children = this.getChildrenForEntity(expressId);
|
|
90
140
|
if (Object.keys(children).length > 0) {
|
|
91
141
|
node.children = children;
|
|
92
142
|
}
|
|
@@ -110,16 +160,33 @@ export class Ifc5Exporter {
|
|
|
110
160
|
}
|
|
111
161
|
nodes.push(node);
|
|
112
162
|
}
|
|
163
|
+
// Add a document root node that contains the project (IFCX convention)
|
|
164
|
+
if (projectExpressId !== null) {
|
|
165
|
+
const projectUuid = this.entityUuids.get(projectExpressId);
|
|
166
|
+
if (projectUuid) {
|
|
167
|
+
const projectName = this.childNames.get(projectExpressId)
|
|
168
|
+
|| strings.get(entities.name[this.findEntityIndex(projectExpressId)])
|
|
169
|
+
|| 'Project';
|
|
170
|
+
const rootUuid = generateUuid(0);
|
|
171
|
+
nodes.unshift({
|
|
172
|
+
path: rootUuid,
|
|
173
|
+
children: { [projectName]: projectUuid },
|
|
174
|
+
attributes: {},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Determine required imports by scanning which attribute namespaces are used
|
|
179
|
+
const imports = collectRequiredImports(nodes);
|
|
113
180
|
// Assemble IFCX file
|
|
114
181
|
const file = {
|
|
115
182
|
header: {
|
|
116
183
|
id: `ifcx_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`,
|
|
117
|
-
ifcxVersion: '
|
|
184
|
+
ifcxVersion: 'ifcx_alpha',
|
|
118
185
|
dataVersion: options.dataVersion || '1.0.0',
|
|
119
186
|
author: options.author || 'ifc-lite',
|
|
120
187
|
timestamp: new Date().toISOString(),
|
|
121
188
|
},
|
|
122
|
-
imports
|
|
189
|
+
imports,
|
|
123
190
|
schemas: {},
|
|
124
191
|
data: nodes,
|
|
125
192
|
};
|
|
@@ -136,19 +203,38 @@ export class Ifc5Exporter {
|
|
|
136
203
|
},
|
|
137
204
|
};
|
|
138
205
|
}
|
|
206
|
+
/** Find the entity table index for a given expressId. */
|
|
207
|
+
findEntityIndex(expressId) {
|
|
208
|
+
const { entities } = this.dataStore;
|
|
209
|
+
for (let i = 0; i < entities.count; i++) {
|
|
210
|
+
if (entities.expressId[i] === expressId)
|
|
211
|
+
return i;
|
|
212
|
+
}
|
|
213
|
+
return 0;
|
|
214
|
+
}
|
|
139
215
|
// --------------------------------------------------------------------------
|
|
140
216
|
// Path building
|
|
141
217
|
// --------------------------------------------------------------------------
|
|
142
218
|
/**
|
|
143
|
-
* Build
|
|
144
|
-
*
|
|
219
|
+
* Build UUID paths and child-name maps for all entities.
|
|
220
|
+
*
|
|
221
|
+
* IFCX uses flat UUID paths (not hierarchical). Hierarchy is expressed
|
|
222
|
+
* solely via the `children` dict on each node. This method:
|
|
223
|
+
* 1. Assigns a UUID to every entity (using GlobalId when available)
|
|
224
|
+
* 2. Builds the spatial parent→children map
|
|
225
|
+
* 3. Computes unique child names for the children dict keys
|
|
145
226
|
*/
|
|
146
|
-
|
|
147
|
-
const paths = new Map();
|
|
227
|
+
buildEntityMaps() {
|
|
148
228
|
const { spatialHierarchy, entities, strings } = this.dataStore;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
229
|
+
// --- 1. Assign UUID paths ---
|
|
230
|
+
this.entityUuids.clear();
|
|
231
|
+
for (let i = 0; i < entities.count; i++) {
|
|
232
|
+
const id = entities.expressId[i];
|
|
233
|
+
// Use IFC GlobalId if available, otherwise generate a deterministic UUID
|
|
234
|
+
const globalId = strings.get(entities.globalId[i]);
|
|
235
|
+
this.entityUuids.set(id, globalId || generateUuid(id));
|
|
236
|
+
}
|
|
237
|
+
// --- 2. Build parent→children and spatial maps ---
|
|
152
238
|
const parentOf = new Map();
|
|
153
239
|
const processChildren = (parentId, childIds) => {
|
|
154
240
|
if (!childIds)
|
|
@@ -157,13 +243,9 @@ export class Ifc5Exporter {
|
|
|
157
243
|
parentOf.set(childId, parentId);
|
|
158
244
|
}
|
|
159
245
|
};
|
|
160
|
-
// Add spatial container hierarchy from the project tree first
|
|
161
|
-
// (Project→Site, Site→Building, Building→Storey, Storey→Space)
|
|
162
|
-
// Also collect spatial node names (SpatialNode.name is often more reliable
|
|
163
|
-
// than the entity table for spatial containers)
|
|
164
246
|
this.spatialChildIds.clear();
|
|
165
247
|
this.spatialNodeNames.clear();
|
|
166
|
-
if (spatialHierarchy
|
|
248
|
+
if (spatialHierarchy?.project) {
|
|
167
249
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
168
250
|
const walkTree = (node) => {
|
|
169
251
|
if (node.name) {
|
|
@@ -179,54 +261,38 @@ export class Ifc5Exporter {
|
|
|
179
261
|
};
|
|
180
262
|
walkTree(spatialHierarchy.project);
|
|
181
263
|
}
|
|
182
|
-
// Add element containment from flat maps
|
|
183
|
-
if (spatialHierarchy
|
|
184
|
-
for (const [
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
processChildren(buildingId, children);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
if (spatialHierarchy.byStorey) {
|
|
194
|
-
for (const [storeyId, children] of spatialHierarchy.byStorey) {
|
|
195
|
-
processChildren(storeyId, children);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
if (spatialHierarchy.bySpace) {
|
|
199
|
-
for (const [spaceId, children] of spatialHierarchy.bySpace) {
|
|
200
|
-
processChildren(spaceId, children);
|
|
264
|
+
// Add element containment from flat maps
|
|
265
|
+
if (spatialHierarchy) {
|
|
266
|
+
for (const map of [spatialHierarchy.bySite, spatialHierarchy.byBuilding, spatialHierarchy.byStorey, spatialHierarchy.bySpace]) {
|
|
267
|
+
if (map) {
|
|
268
|
+
for (const [parentId, children] of map) {
|
|
269
|
+
processChildren(parentId, children);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
201
272
|
}
|
|
202
273
|
}
|
|
203
|
-
//
|
|
204
|
-
//
|
|
274
|
+
// --- 3. Compute unique child names ---
|
|
275
|
+
// Build entity name lookup
|
|
205
276
|
const entityNameById = new Map();
|
|
206
277
|
for (let i = 0; i < entities.count; i++) {
|
|
207
278
|
const id = entities.expressId[i];
|
|
208
279
|
let name = strings.get(entities.name[i]) || '';
|
|
209
|
-
|
|
210
|
-
if (!name) {
|
|
280
|
+
if (!name)
|
|
211
281
|
name = this.spatialNodeNames.get(id) || '';
|
|
212
|
-
}
|
|
213
|
-
// Last resort: use the IFC type name so paths are readable (e.g. "IfcProject")
|
|
214
282
|
if (!name) {
|
|
215
283
|
const typeName = IfcTypeEnumToString(entities.typeEnum[i]);
|
|
216
|
-
if (typeName !== 'Unknown')
|
|
284
|
+
if (typeName !== 'Unknown')
|
|
217
285
|
name = typeName;
|
|
218
|
-
}
|
|
219
286
|
}
|
|
220
287
|
entityNameById.set(id, name);
|
|
221
288
|
}
|
|
222
|
-
//
|
|
289
|
+
// Group children by parent
|
|
223
290
|
const childrenOf = new Map();
|
|
224
291
|
for (const [childId, parentId] of parentOf) {
|
|
225
292
|
if (!childrenOf.has(parentId))
|
|
226
293
|
childrenOf.set(parentId, []);
|
|
227
294
|
childrenOf.get(parentId).push(childId);
|
|
228
295
|
}
|
|
229
|
-
// Also collect root entities (those not in parentOf)
|
|
230
296
|
for (let i = 0; i < entities.count; i++) {
|
|
231
297
|
const id = entities.expressId[i];
|
|
232
298
|
if (!parentOf.has(id)) {
|
|
@@ -235,10 +301,9 @@ export class Ifc5Exporter {
|
|
|
235
301
|
childrenOf.get(undefined).push(id);
|
|
236
302
|
}
|
|
237
303
|
}
|
|
238
|
-
//
|
|
239
|
-
this.
|
|
304
|
+
// Compute unique child names: append _<expressId> on collision
|
|
305
|
+
this.childNames.clear();
|
|
240
306
|
for (const [, siblings] of childrenOf) {
|
|
241
|
-
// Count how many siblings share each sanitised name
|
|
242
307
|
const nameCount = new Map();
|
|
243
308
|
for (const id of siblings) {
|
|
244
309
|
const raw = entityNameById.get(id) || `e${id}`;
|
|
@@ -248,35 +313,9 @@ export class Ifc5Exporter {
|
|
|
248
313
|
for (const id of siblings) {
|
|
249
314
|
const raw = entityNameById.get(id) || `e${id}`;
|
|
250
315
|
const safe = raw.replace(/[/\\]/g, '_').replace(/\s+/g, '_');
|
|
251
|
-
this.
|
|
316
|
+
this.childNames.set(id, nameCount.get(safe) > 1 ? `${safe}_${id}` : safe);
|
|
252
317
|
}
|
|
253
318
|
}
|
|
254
|
-
// Generate path for each entity by walking up to root
|
|
255
|
-
const getPath = (expressId) => {
|
|
256
|
-
if (paths.has(expressId))
|
|
257
|
-
return paths.get(expressId);
|
|
258
|
-
const segments = [];
|
|
259
|
-
let current = expressId;
|
|
260
|
-
const visited = new Set();
|
|
261
|
-
while (current !== undefined) {
|
|
262
|
-
if (visited.has(current))
|
|
263
|
-
break; // cycle protection
|
|
264
|
-
visited.add(current);
|
|
265
|
-
segments.unshift(this.segmentNames.get(current) || `e${current}`);
|
|
266
|
-
const parent = parentOf.get(current);
|
|
267
|
-
if (parent === undefined)
|
|
268
|
-
break;
|
|
269
|
-
current = parent;
|
|
270
|
-
}
|
|
271
|
-
// Prefix with "0" (root index, per IFCX convention)
|
|
272
|
-
const path = '0/' + segments.join('/');
|
|
273
|
-
paths.set(expressId, path);
|
|
274
|
-
return path;
|
|
275
|
-
};
|
|
276
|
-
for (let i = 0; i < entities.count; i++) {
|
|
277
|
-
getPath(entities.expressId[i]);
|
|
278
|
-
}
|
|
279
|
-
return paths;
|
|
280
319
|
}
|
|
281
320
|
// --------------------------------------------------------------------------
|
|
282
321
|
// Properties
|
|
@@ -291,7 +330,9 @@ export class Ifc5Exporter {
|
|
|
291
330
|
const psets = this.mutationView.getForEntity(entityId);
|
|
292
331
|
for (const pset of psets) {
|
|
293
332
|
for (const prop of pset.properties) {
|
|
294
|
-
|
|
333
|
+
if (options.onlyKnownProperties !== false && !IFC5_KNOWN_PROP_NAMES.has(prop.name))
|
|
334
|
+
continue;
|
|
335
|
+
const key = `bsi::ifc::prop::${prop.name}`;
|
|
295
336
|
result[key] = this.convertPropertyValue(prop.value, prop.type);
|
|
296
337
|
}
|
|
297
338
|
}
|
|
@@ -300,7 +341,9 @@ export class Ifc5Exporter {
|
|
|
300
341
|
const psets = this.dataStore.properties.getForEntity(entityId);
|
|
301
342
|
for (const pset of psets) {
|
|
302
343
|
for (const prop of pset.properties) {
|
|
303
|
-
|
|
344
|
+
if (options.onlyKnownProperties !== false && !IFC5_KNOWN_PROP_NAMES.has(prop.name))
|
|
345
|
+
continue;
|
|
346
|
+
const key = `bsi::ifc::prop::${prop.name}`;
|
|
304
347
|
result[key] = this.convertPropertyValue(prop.value, prop.type);
|
|
305
348
|
}
|
|
306
349
|
}
|
|
@@ -331,16 +374,16 @@ export class Ifc5Exporter {
|
|
|
331
374
|
// --------------------------------------------------------------------------
|
|
332
375
|
/**
|
|
333
376
|
* Get children for a spatial entity.
|
|
334
|
-
* IFCX children format: { childName:
|
|
377
|
+
* IFCX children format: { childName: childUuid }
|
|
335
378
|
*/
|
|
336
|
-
getChildrenForEntity(entityId
|
|
379
|
+
getChildrenForEntity(entityId) {
|
|
337
380
|
const children = {};
|
|
338
381
|
const addChild = (childId) => {
|
|
339
|
-
const
|
|
340
|
-
if (!
|
|
382
|
+
const childUuid = this.entityUuids.get(childId);
|
|
383
|
+
if (!childUuid)
|
|
341
384
|
return;
|
|
342
|
-
const childName = this.
|
|
343
|
-
children[childName] =
|
|
385
|
+
const childName = this.childNames.get(childId) || `e${childId}`;
|
|
386
|
+
children[childName] = childUuid;
|
|
344
387
|
};
|
|
345
388
|
// Spatial container children (Project→Sites, Site→Buildings, etc.)
|
|
346
389
|
const spatialKids = this.spatialChildIds.get(entityId);
|
|
@@ -396,49 +439,61 @@ export class Ifc5Exporter {
|
|
|
396
439
|
convertToUsdMesh(meshes) {
|
|
397
440
|
const allPoints = [];
|
|
398
441
|
const allIndices = [];
|
|
399
|
-
const allFaceCounts = [];
|
|
400
|
-
const allNormals = [];
|
|
401
442
|
let indexOffset = 0;
|
|
402
443
|
for (const mesh of meshes) {
|
|
403
444
|
// Convert positions from Y-up to Z-up
|
|
404
445
|
// Y-up: X=right, Y=up, Z=back
|
|
405
446
|
// Z-up: X=right, Y=forward, Z=up
|
|
406
|
-
// Reverse of: Yx=Zx, Yy=Zz, Yz=-Zy
|
|
407
447
|
for (let i = 0; i < mesh.positions.length; i += 3) {
|
|
408
448
|
const x = mesh.positions[i];
|
|
409
449
|
const y = mesh.positions[i + 1]; // Y-up Y = Z-up Z
|
|
410
450
|
const z = mesh.positions[i + 2]; // Y-up Z = -Z-up Y
|
|
411
451
|
allPoints.push([x, -z, y]);
|
|
412
452
|
}
|
|
413
|
-
// Convert normals from Y-up to Z-up
|
|
414
|
-
if (mesh.normals) {
|
|
415
|
-
for (let i = 0; i < mesh.normals.length; i += 3) {
|
|
416
|
-
const nx = mesh.normals[i];
|
|
417
|
-
const ny = mesh.normals[i + 1];
|
|
418
|
-
const nz = mesh.normals[i + 2];
|
|
419
|
-
allNormals.push([nx, -nz, ny]);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
453
|
// Offset indices for merged mesh
|
|
423
454
|
for (let i = 0; i < mesh.indices.length; i += 3) {
|
|
424
455
|
allIndices.push(mesh.indices[i] + indexOffset, mesh.indices[i + 1] + indexOffset, mesh.indices[i + 2] + indexOffset);
|
|
425
|
-
allFaceCounts.push(3); // triangles
|
|
426
456
|
}
|
|
427
457
|
indexOffset += mesh.positions.length / 3;
|
|
428
458
|
}
|
|
429
|
-
|
|
459
|
+
return {
|
|
430
460
|
points: allPoints,
|
|
431
461
|
faceVertexIndices: allIndices,
|
|
432
|
-
faceVertexCounts: allFaceCounts,
|
|
433
462
|
};
|
|
434
|
-
if (allNormals.length > 0) {
|
|
435
|
-
result.normals = allNormals;
|
|
436
|
-
}
|
|
437
|
-
return result;
|
|
438
463
|
}
|
|
439
464
|
// --------------------------------------------------------------------------
|
|
440
465
|
// Visibility
|
|
441
466
|
// --------------------------------------------------------------------------
|
|
467
|
+
/**
|
|
468
|
+
* Build the set of entity IDs reachable from the spatial tree.
|
|
469
|
+
* Includes Project, Site, Building, Storey, Space, and all contained elements.
|
|
470
|
+
*/
|
|
471
|
+
buildTreeEntitySet() {
|
|
472
|
+
const ids = new Set();
|
|
473
|
+
// Walk spatial hierarchy tree
|
|
474
|
+
const { spatialHierarchy } = this.dataStore;
|
|
475
|
+
if (spatialHierarchy?.project) {
|
|
476
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
477
|
+
const walk = (node) => {
|
|
478
|
+
ids.add(node.expressId);
|
|
479
|
+
for (const child of node.children)
|
|
480
|
+
walk(child);
|
|
481
|
+
};
|
|
482
|
+
walk(spatialHierarchy.project);
|
|
483
|
+
}
|
|
484
|
+
// Add elements from containment maps (elements assigned to storeys, etc.)
|
|
485
|
+
if (spatialHierarchy) {
|
|
486
|
+
for (const map of [spatialHierarchy.bySite, spatialHierarchy.byBuilding, spatialHierarchy.byStorey, spatialHierarchy.bySpace]) {
|
|
487
|
+
if (map) {
|
|
488
|
+
for (const children of map.values()) {
|
|
489
|
+
for (const id of children)
|
|
490
|
+
ids.add(id);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
return ids;
|
|
496
|
+
}
|
|
442
497
|
/**
|
|
443
498
|
* Build visible entity set if visibility filtering is requested.
|
|
444
499
|
*/
|
|
@@ -468,6 +523,56 @@ export class Ifc5Exporter {
|
|
|
468
523
|
// ============================================================================
|
|
469
524
|
// Helpers
|
|
470
525
|
// ============================================================================
|
|
526
|
+
/**
|
|
527
|
+
* Scan data nodes and return the list of standard IFCX import URIs needed
|
|
528
|
+
* for the attribute namespaces actually used.
|
|
529
|
+
*/
|
|
530
|
+
function collectRequiredImports(nodes) {
|
|
531
|
+
let needsIfcCore = false;
|
|
532
|
+
let needsIfcProp = false;
|
|
533
|
+
let needsUsd = false;
|
|
534
|
+
for (const node of nodes) {
|
|
535
|
+
if (!node.attributes)
|
|
536
|
+
continue;
|
|
537
|
+
for (const key of Object.keys(node.attributes)) {
|
|
538
|
+
// IFC core schemas: class, presentation, material, spaceBoundary
|
|
539
|
+
if (!needsIfcCore && (key === 'bsi::ifc::class' ||
|
|
540
|
+
key.startsWith('bsi::ifc::presentation::') ||
|
|
541
|
+
key === 'bsi::ifc::material' ||
|
|
542
|
+
key === 'bsi::ifc::spaceBoundary')) {
|
|
543
|
+
needsIfcCore = true;
|
|
544
|
+
}
|
|
545
|
+
// IFC property schemas: bsi::ifc::prop::*
|
|
546
|
+
if (!needsIfcProp && key.startsWith('bsi::ifc::prop::')) {
|
|
547
|
+
needsIfcProp = true;
|
|
548
|
+
}
|
|
549
|
+
// USD schemas: usd::*
|
|
550
|
+
if (!needsUsd && key.startsWith('usd::')) {
|
|
551
|
+
needsUsd = true;
|
|
552
|
+
}
|
|
553
|
+
if (needsIfcCore && needsIfcProp && needsUsd)
|
|
554
|
+
break;
|
|
555
|
+
}
|
|
556
|
+
if (needsIfcCore && needsIfcProp && needsUsd)
|
|
557
|
+
break;
|
|
558
|
+
}
|
|
559
|
+
const imports = [];
|
|
560
|
+
if (needsIfcCore)
|
|
561
|
+
imports.push({ uri: IFCX_SCHEMA_IMPORTS.IFC_CORE });
|
|
562
|
+
if (needsIfcProp)
|
|
563
|
+
imports.push({ uri: IFCX_SCHEMA_IMPORTS.IFC_PROP });
|
|
564
|
+
if (needsUsd)
|
|
565
|
+
imports.push({ uri: IFCX_SCHEMA_IMPORTS.USD });
|
|
566
|
+
return imports;
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Generate a deterministic UUID-like string from an expressId.
|
|
570
|
+
* Format: 8-4-4-4-12 hex chars (UUID v4-like but deterministic).
|
|
571
|
+
*/
|
|
572
|
+
function generateUuid(id) {
|
|
573
|
+
const hex = id.toString(16).padStart(12, '0');
|
|
574
|
+
return `00000000-0000-4000-8000-${hex}`;
|
|
575
|
+
}
|
|
471
576
|
/**
|
|
472
577
|
* Convert STEP uppercase type name (e.g. "IFCWALL") to PascalCase class name (e.g. "IfcWall").
|
|
473
578
|
* Uses the IFC type enum lookup for canonical casing (e.g. "IfcRelAggregates", not "Ifcrelaggregates").
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc5-exporter.js","sourceRoot":"","sources":["../src/ifc5-exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ifc5-exporter.js","sourceRoot":"","sources":["../src/ifc5-exporter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export { StepExporter, exportToStep, type StepExportOptions, type StepExportResu
|
|
|
9
9
|
export { MergedExporter, type MergeModelInput, type MergeExportOptions, type MergeExportResult } from './merged-exporter.js';
|
|
10
10
|
export { collectReferencedEntityIds, getVisibleEntityIds, collectStyleEntities } from './reference-collector.js';
|
|
11
11
|
export { convertEntityType, convertStepLine, needsConversion, describeConversion, type IfcSchemaVersion } from './schema-converter.js';
|
|
12
|
-
export { Ifc5Exporter, type Ifc5ExportOptions, type Ifc5ExportResult } from './ifc5-exporter.js';
|
|
12
|
+
export { Ifc5Exporter, IFC5_KNOWN_PROP_NAMES, type Ifc5ExportOptions, type Ifc5ExportResult } from './ifc5-exporter.js';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,5 +12,5 @@ export { StepExporter, exportToStep } from './step-exporter.js';
|
|
|
12
12
|
export { MergedExporter } from './merged-exporter.js';
|
|
13
13
|
export { collectReferencedEntityIds, getVisibleEntityIds, collectStyleEntities } from './reference-collector.js';
|
|
14
14
|
export { convertEntityType, convertStepLine, needsConversion, describeConversion } from './schema-converter.js';
|
|
15
|
-
export { Ifc5Exporter } from './ifc5-exporter.js';
|
|
15
|
+
export { Ifc5Exporter, IFC5_KNOWN_PROP_NAMES } from './ifc5-exporter.js';
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAA6B,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAA4B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAyE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAyB,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAA6B,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAA4B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAyE,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAyB,MAAM,uBAAuB,CAAC;AACvI,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAiD,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merged-exporter.d.ts","sourceRoot":"","sources":["../src/merged-exporter.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"merged-exporter.d.ts","sourceRoot":"","sources":["../src/merged-exporter.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0BrD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,eAAe,CAAC,EAAE,YAAY,CAAC;IAE/B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,0DAA0D;IAC1D,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,KAAK,EAAE;QACL,8BAA8B;QAC9B,UAAU,EAAE,MAAM,CAAC;QACnB,mCAAmC;QACnC,gBAAgB,EAAE,MAAM,CAAC;QACzB,yBAAyB;QACzB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,eAAe,EAAE;IAOrC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB;IA6JtD;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAelC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IA4E5B;;;;;;;;;OASG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CA2D7B"}
|
package/dist/merged-exporter.js
CHANGED
|
@@ -2,6 +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 { generateHeader } from '@ifc-lite/parser';
|
|
5
|
+
import { decodeIfcString } from '@ifc-lite/encoding';
|
|
5
6
|
import { collectReferencedEntityIds, getVisibleEntityIds, collectStyleEntities } from './reference-collector.js';
|
|
6
7
|
import { convertStepLine, needsConversion } from './schema-converter.js';
|
|
7
8
|
/** Regex to match #ID references in STEP entity text. */
|
|
@@ -350,7 +351,8 @@ export class MergedExporter {
|
|
|
350
351
|
if (!attr || attr === '$')
|
|
351
352
|
return null;
|
|
352
353
|
if (attr.startsWith("'") && attr.endsWith("'")) {
|
|
353
|
-
|
|
354
|
+
const raw = attr.slice(1, -1).replace(/''/g, "'");
|
|
355
|
+
return decodeIfcString(raw);
|
|
354
356
|
}
|
|
355
357
|
return null;
|
|
356
358
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merged-exporter.js","sourceRoot":"","sources":["../src/merged-exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"merged-exporter.js","sourceRoot":"","sources":["../src/merged-exporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/export",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Export formats for IFC-Lite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"jszip": "^3.10.0",
|
|
18
18
|
"@ifc-lite/geometry": "^1.14.3",
|
|
19
19
|
"@ifc-lite/data": "^1.14.3",
|
|
20
|
-
"@ifc-lite/
|
|
20
|
+
"@ifc-lite/encoding": "^1.14.4",
|
|
21
|
+
"@ifc-lite/parser": "^2.1.0",
|
|
21
22
|
"@ifc-lite/mutations": "^1.14.3"
|
|
22
23
|
},
|
|
23
24
|
"devDependencies": {
|