@ifc-lite/export 1.14.4 → 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.
@@ -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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"}
@@ -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 path segment name per entity (with _<id> suffix when siblings collide) */
58
- private segmentNames;
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 path strings for all entities using the spatial hierarchy.
70
- * Paths follow IFCX convention: "0/SiteName/BuildingName/StoreyName/ElementName"
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 buildEntityPaths;
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: childPath }
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;AAanE,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;CACxC;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,oFAAoF;IACpF,OAAO,CAAC,YAAY,CAA6B;IACjD,yEAAyE;IACzE,OAAO,CAAC,gBAAgB,CAA6B;IACrD,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAA+B;gBAGpD,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;IA4IzD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAoJxB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA6C5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqExB;;OAEG;IACH,OAAO,CAAC,eAAe;CAsBxB"}
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"}
@@ -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 path segment name per entity (with _<id> suffix when siblings collide) */
18
- segmentNames = new Map();
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 entity path map using spatial hierarchy
35
- const entityPaths = this.buildEntityPaths();
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
- // Get path for this entity
57
- const path = entityPaths.get(expressId) || `ifc:${ifc5Class}.${expressId}`;
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'] = { code: ifc5Class };
62
- // GlobalId
63
- const globalId = strings.get(entities.globalId[i]);
64
- if (globalId) {
65
- attributes['bsi::ifc::globalId'] = globalId;
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::name'] = name;
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::description'] = description;
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, entityPaths);
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: 'IFCX-1.0',
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 path strings for all entities using the spatial hierarchy.
144
- * Paths follow IFCX convention: "0/SiteName/BuildingName/StoreyName/ElementName"
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
- buildEntityPaths() {
147
- const paths = new Map();
227
+ buildEntityMaps() {
148
228
  const { spatialHierarchy, entities, strings } = this.dataStore;
149
- if (!spatialHierarchy)
150
- return paths;
151
- // Build parent→children map from hierarchy
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.project) {
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 (element→storey/building/site/space)
183
- if (spatialHierarchy.bySite) {
184
- for (const [siteId, children] of spatialHierarchy.bySite) {
185
- processChildren(siteId, children);
186
- }
187
- }
188
- if (spatialHierarchy.byBuilding) {
189
- for (const [buildingId, children] of spatialHierarchy.byBuilding) {
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
- // Build index lookup for entity names.
204
- // Priority: entity table name → spatial node name → IFC type name fallback
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
- // For entities with empty names, try spatial node name (from hierarchy tree)
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
- // Build children-per-parent map so we can detect name collisions among siblings
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
- // Pre-compute unique segment names: append _<expressId> when siblings share a name
239
- this.segmentNames.clear();
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.segmentNames.set(id, nameCount.get(safe) > 1 ? `${safe}_${id}` : safe);
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
- const key = `bsi::ifc::prop::${pset.name}::${prop.name}`;
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
- const key = `bsi::ifc::prop::${pset.name}::${prop.name}`;
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: childPath }
377
+ * IFCX children format: { childName: childUuid }
335
378
  */
336
- getChildrenForEntity(entityId, entityPaths) {
379
+ getChildrenForEntity(entityId) {
337
380
  const children = {};
338
381
  const addChild = (childId) => {
339
- const childPath = entityPaths.get(childId);
340
- if (!childPath)
382
+ const childUuid = this.entityUuids.get(childId);
383
+ if (!childUuid)
341
384
  return;
342
- const childName = this.segmentNames.get(childId) || `e${childId}`;
343
- children[childName] = childPath;
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
- const result = {
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":"AAAA;;+DAE+D;AAkB/D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EAErB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAyB,MAAM,uBAAuB,CAAC;AA+DjF,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,SAAS,CAAe;IACxB,YAAY,CAA6B;IACzC,cAAc,CAAwB;IACtC,QAAQ,CAAS;IACzB,oFAAoF;IAC5E,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,yEAAyE;IACjE,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,uEAAuE;IAC/D,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEtD,YACE,SAAuB,EACvB,cAAsC,EACtC,YAAkC,EAClC,QAAiB;QAEjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAA6B,EAAE;QACpC,MAAM,YAAY,GAAI,IAAI,CAAC,SAAS,CAAC,aAAkC,IAAI,MAAM,CAAC;QAElF,gDAAgD;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE5C,iCAAiC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEnD,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,gBAAgB;QAChB,MAAM,KAAK,GAAqB,EAAE,CAAC;QACnC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAExC,oBAAoB;YACpB,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,SAAS;YAEvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAuB,CAAC,IAAI,YAAY,CAAC;YAE9E,oDAAoD;YACpD,MAAM,QAAQ,GAAG,iBAAiB,CAChC,QAAQ,CAAC,WAAW,EAAE,EACtB,YAAY,EACZ,MAAM,CACP,CAAC;YACF,sCAAsC;YACtC,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAEhD,2BAA2B;YAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,IAAI,SAAS,EAAE,CAAC;YAE3E,mBAAmB;YACnB,MAAM,UAAU,GAA4B,EAAE,CAAC;YAE/C,YAAY;YACZ,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAEpD,WAAW;YACX,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,UAAU,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;YAC9C,CAAC;YAED,kEAAkE;YAClE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;mBACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;YACtC,CAAC;YAED,cAAc;YACd,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,CAAC,uBAAuB,CAAC,GAAG,WAAW,CAAC;YACpD,CAAC;YAED,aAAa;YACb,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC9D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACxB,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,aAAa;YACb,MAAM,IAAI,GAAmB,EAAE,IAAI,EAAE,CAAC;YAEtC,kCAAkC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,CAAC;YAED,uBAAuB;YACvB,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC9C,UAAU,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC;oBAE3C,qBAAqB;oBACrB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBACrC,UAAU,CAAC,sCAAsC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/D,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;wBACZ,UAAU,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;oBACpD,CAAC;oBACD,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC/B,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,GAAmB;YAC3B,MAAM,EAAE;gBACN,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACtE,WAAW,EAAE,UAAU;gBACvB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO;gBAC3C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;gBACpC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;YACD,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,KAAK;SACZ,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK;YAC3C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO;YACL,OAAO;YACP,KAAK,EAAE;gBACL,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,aAAa;gBACb,SAAS;gBACT,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM;aACnD;SACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,gBAAgB;IAChB,6EAA6E;IAE7E;;;OAGG;IACK,gBAAgB;QACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,gBAAgB;YAAE,OAAO,KAAK,CAAC;QAEpC,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE3C,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,QAA4C,EAAE,EAAE;YACzF,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC;QAEF,8DAA8D;QAC9D,+DAA+D;QAC/D,2EAA2E;QAC3E,gDAAgD;QAChD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,CAAC,IAA2D,EAAE,EAAE;gBAC/E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,QAAQ,GAAa,EAAE,CAAC;gBAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC,CAAC;YACF,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,8EAA8E;QAC9E,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;gBACzD,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;YAChC,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBACjE,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC7D,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC3D,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,2EAA2E;QAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,6EAA6E;YAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;YACD,+EAA+E;YAC/E,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAgB,CAAC,CAAC;gBAC1E,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,IAAI,GAAG,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,gFAAgF;QAChF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgC,CAAC;QAC3D,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5D,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,qDAAqD;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC9D,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,oDAAoD;YACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7D,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAU,EAAE;YAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAEvD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,SAAS,CAAC;YACxB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAElC,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,MAAM,CAAC,mBAAmB;gBACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAErB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;gBAElE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM;gBAChC,OAAO,GAAG,MAAM,CAAC;YACnB,CAAC;YAED,oDAAoD;YACpD,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6EAA6E;IAC7E,aAAa;IACb,6EAA6E;IAE7E;;OAEG;IACK,sBAAsB,CAC5B,QAAgB,EAChB,OAA0B;QAE1B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,oCAAoC;QACpC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnC,MAAM,GAAG,GAAG,mBAAmB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACnC,MAAM,GAAG,GAAG,mBAAmB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,oBAAoB,CAAC,KAAc,EAAE,IAAuB;QAClE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEvD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,iBAAiB,CAAC,IAAI;gBACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,KAAK,iBAAiB,CAAC,OAAO;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACnC,KAAK,iBAAiB,CAAC,OAAO,CAAC;YAC/B,KAAK,iBAAiB,CAAC,OAAO;gBAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACxB;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,WAAW;IACX,6EAA6E;IAE7E;;;OAGG;IACK,oBAAoB,CAC1B,QAAgB,EAChB,WAAgC;QAEhC,MAAM,QAAQ,GAAkC,EAAE,CAAC;QAEnD,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,EAAE;YACnC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;YAClE,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;QAClC,CAAC,CAAC;QAEF,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG;gBAChB,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;gBACtC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;gBAC1C,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC;gBACxC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC;aACxC,CAAC;YACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,6EAA6E;IAC7E,sBAAsB;IACtB,6EAA6E;IAE7E;;OAEG;IACK,eAAe,CAAC,OAA0B;QAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,eAAe,KAAK,KAAK;YAAE,OAAO,MAAM,CAAC;QAE7E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9C,4DAA4D;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/C,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YAElD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,MAAkB;QAMzC,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,sCAAsC;YACtC,8BAA8B;YAC9B,iCAAiC;YACjC,mCAAmC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAG,kBAAkB;gBACrD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAG,mBAAmB;gBACtD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YAED,oCAAoC;YACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,EAC7B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,EACjC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAClC,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY;YACrC,CAAC;YAED,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAKR;YACF,MAAM,EAAE,SAAS;YACjB,iBAAiB,EAAE,UAAU;YAC7B,gBAAgB,EAAE,aAAa;SAChC,CAAC;QAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,aAAa;IACb,6EAA6E;IAE7E;;OAEG;IACK,eAAe,CAAC,OAA0B;QAChD,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,GAAG,EAAU,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,+DAA+D;gBAC/D,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,kEAAkE;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
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
@@ -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;AAyBrD;;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;IAazB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;CA2D7B"}
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"}
@@ -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
- return attr.slice(1, -1).replace(/''/g, "'");
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.14.4",
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/parser": "^2.0.0",
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": {