@ifc-lite/parser 9.0.0 → 9.1.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/columnar-parser.d.ts +1 -0
- package/dist/columnar-parser.d.ts.map +1 -1
- package/dist/data-store-transport.d.ts +1 -0
- package/dist/data-store-transport.d.ts.map +1 -1
- package/dist/data-store-transport.js +6 -0
- package/dist/data-store-transport.js.map +1 -1
- package/dist/effective-spatial-members.d.ts +11 -0
- package/dist/effective-spatial-members.d.ts.map +1 -0
- package/dist/effective-spatial-members.js +32 -0
- package/dist/effective-spatial-members.js.map +1 -0
- package/dist/effective-storey.d.ts +5 -0
- package/dist/effective-storey.d.ts.map +1 -0
- package/dist/effective-storey.js +64 -0
- package/dist/effective-storey.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/material-associations.d.ts +24 -0
- package/dist/material-associations.d.ts.map +1 -0
- package/dist/material-associations.js +67 -0
- package/dist/material-associations.js.map +1 -0
- package/dist/material-properties-extractor.d.ts +37 -0
- package/dist/material-properties-extractor.d.ts.map +1 -0
- package/dist/material-properties-extractor.js +217 -0
- package/dist/material-properties-extractor.js.map +1 -0
- package/dist/material-resolver.d.ts +1 -9
- package/dist/material-resolver.d.ts.map +1 -1
- package/dist/material-resolver.js +23 -67
- package/dist/material-resolver.js.map +1 -1
- package/dist/on-demand-extractors.d.ts +2 -26
- package/dist/on-demand-extractors.d.ts.map +1 -1
- package/dist/on-demand-extractors.js +15 -168
- package/dist/on-demand-extractors.js.map +1 -1
- package/dist/owning-project.d.ts.map +1 -1
- package/dist/owning-project.js +1 -0
- package/dist/owning-project.js.map +1 -1
- package/dist/property-complex-value.d.ts +34 -0
- package/dist/property-complex-value.d.ts.map +1 -0
- package/dist/property-complex-value.js +111 -0
- package/dist/property-complex-value.js.map +1 -0
- package/dist/property-reference-value.d.ts +15 -0
- package/dist/property-reference-value.d.ts.map +1 -0
- package/dist/property-reference-value.js +34 -0
- package/dist/property-reference-value.js.map +1 -0
- package/dist/property-value-parser.d.ts +7 -21
- package/dist/property-value-parser.d.ts.map +1 -1
- package/dist/property-value-parser.js +28 -96
- package/dist/property-value-parser.js.map +1 -1
- package/dist/structural-extractor-values.d.ts +18 -0
- package/dist/structural-extractor-values.d.ts.map +1 -0
- package/dist/structural-extractor-values.js +50 -0
- package/dist/structural-extractor-values.js.map +1 -0
- package/dist/structural-extractor.d.ts +16 -1
- package/dist/structural-extractor.d.ts.map +1 -1
- package/dist/structural-extractor.js +70 -74
- package/dist/structural-extractor.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { EntityExtractor } from './entity-extractor.js';
|
|
5
|
+
import { iterateEffectiveEntities } from '@ifc-lite/data';
|
|
6
|
+
import { getAttributeNames, normalizeIfcTypeName } from './ifc-schema.js';
|
|
7
|
+
import { copyParsedExtras, parsePropertyValue, parsePropertyValueWithComplex } from './property-value-parser.js';
|
|
8
|
+
import { resolveAllMaterialDefIds, collectMaterialLeaves, getMaterialDisplay } from './material-resolver.js';
|
|
9
|
+
const materialPropertyIndexCache = new WeakMap();
|
|
10
|
+
const materialPropertyOverlayCache = new WeakMap();
|
|
11
|
+
/** Resolve an entity ref from the primary index, falling back to deferred atoms. */
|
|
12
|
+
function refFromStore(store, id) {
|
|
13
|
+
// @raw-entity-enumeration-ok resolve one caller-supplied express id to its source byte span
|
|
14
|
+
return store.entityIndex.byId.get(id) ?? store.deferredEntityIndex?.get(id);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the (materialId, propsList, psetName) triple for a *MaterialProperties
|
|
18
|
+
* entity, dispatching on its concrete class rather than guessing attribute
|
|
19
|
+
* positions. The two generic forms that carry an IfcProperty list are handled:
|
|
20
|
+
* - IfcMaterialProperties (IFC4+): [Name, Description, Properties, Material]
|
|
21
|
+
* - IfcExtendedMaterialProperties (IFC2x3): [Material, ExtendedProperties, Description, Name]
|
|
22
|
+
* The typed IFC2x3 subtypes (IfcMechanicalMaterialProperties, IfcThermalMaterialProperties,
|
|
23
|
+
* …) expose domain-specific scalar fields instead of a generic property list and
|
|
24
|
+
* are not surfaced (returns null) — they are not the Pset_Material* this targets.
|
|
25
|
+
*/
|
|
26
|
+
function readMaterialPropsEntity(typeKey, attrs, entityType) {
|
|
27
|
+
let materialId;
|
|
28
|
+
let propsList;
|
|
29
|
+
let name;
|
|
30
|
+
if (typeKey === 'IFCMATERIALPROPERTIES') {
|
|
31
|
+
name = attrs[0];
|
|
32
|
+
propsList = attrs[2];
|
|
33
|
+
materialId = attrs[3];
|
|
34
|
+
}
|
|
35
|
+
else if (typeKey === 'IFCEXTENDEDMATERIALPROPERTIES') {
|
|
36
|
+
materialId = attrs[0];
|
|
37
|
+
propsList = attrs[1];
|
|
38
|
+
name = attrs[3];
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
return null; // typed IFC2x3 scalar subtype — no generic property list
|
|
42
|
+
}
|
|
43
|
+
if (typeof materialId !== 'number' || !Array.isArray(propsList))
|
|
44
|
+
return null;
|
|
45
|
+
const psetName = typeof name === 'string' && name ? name : (entityType || 'Material Properties');
|
|
46
|
+
return { materialId, propsList, psetName };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build (and memoise) the model-wide map of materialId -> property sets defined
|
|
50
|
+
* via IfcMaterialProperties / IfcExtendedMaterialProperties. These reference the
|
|
51
|
+
* material directly (not through IfcRelDefinesByProperties), so they are found by
|
|
52
|
+
* scanning every *MaterialProperties entity once.
|
|
53
|
+
*/
|
|
54
|
+
function getMaterialPropertyIndex(store, view, revision) {
|
|
55
|
+
const overlayCache = view ? materialPropertyOverlayCache.get(store) : undefined;
|
|
56
|
+
const cached = view
|
|
57
|
+
? revision === undefined ? undefined : overlayCache?.get(view)?.revision === revision
|
|
58
|
+
? overlayCache.get(view)?.index : undefined
|
|
59
|
+
: materialPropertyIndexCache.get(store);
|
|
60
|
+
if (cached)
|
|
61
|
+
return cached;
|
|
62
|
+
const index = new Map();
|
|
63
|
+
// @raw-entity-enumeration-ok source-index presence selects the source-byte path; overlay-created rows are handled by the branch below
|
|
64
|
+
if ((!store.source?.length && !view?.getNewEntities().length) || !store.entityIndex?.byType) {
|
|
65
|
+
if (!view)
|
|
66
|
+
materialPropertyIndexCache.set(store, index);
|
|
67
|
+
return index;
|
|
68
|
+
}
|
|
69
|
+
const extractor = new EntityExtractor(store.source);
|
|
70
|
+
const wantedTypes = ['IFCMATERIALPROPERTIES', 'IFCEXTENDEDMATERIALPROPERTIES'];
|
|
71
|
+
const sourceIds = new Set();
|
|
72
|
+
for (const type of wantedTypes) {
|
|
73
|
+
// @raw-entity-enumeration-ok collect source candidate ids only; iterateEffectiveEntities below applies the live overlay
|
|
74
|
+
for (const id of store.entityIndex.byType.get(type) ?? [])
|
|
75
|
+
sourceIds.add(id);
|
|
76
|
+
}
|
|
77
|
+
for (const [id, mutation] of view?.getTypeMutations?.() ?? []) {
|
|
78
|
+
if (wantedTypes.includes(mutation.newType.toUpperCase()))
|
|
79
|
+
sourceIds.add(id);
|
|
80
|
+
}
|
|
81
|
+
const readEffective = (id, type) => {
|
|
82
|
+
const ref = refFromStore(store, id);
|
|
83
|
+
const source = ref ? extractor.extractEntity(ref) : undefined;
|
|
84
|
+
const fresh = !source ? view?.getNewEntity?.(id) : null;
|
|
85
|
+
const base = source ?? (fresh ? {
|
|
86
|
+
expressId: id,
|
|
87
|
+
type,
|
|
88
|
+
attributes: [...(fresh.attributes ?? [])],
|
|
89
|
+
} : undefined);
|
|
90
|
+
if (!base)
|
|
91
|
+
return undefined;
|
|
92
|
+
const attributes = [...base.attributes];
|
|
93
|
+
for (const [attributeIndex, value] of view?.getPositionalMutationsForEntity?.(id) ?? []) {
|
|
94
|
+
attributes[attributeIndex] = value;
|
|
95
|
+
}
|
|
96
|
+
const names = getAttributeNames(type);
|
|
97
|
+
for (const mutation of view?.getAttributeMutationsForEntity?.(id) ?? []) {
|
|
98
|
+
const attributeIndex = names.indexOf(mutation.name);
|
|
99
|
+
if (attributeIndex >= 0)
|
|
100
|
+
attributes[attributeIndex] = mutation.value;
|
|
101
|
+
}
|
|
102
|
+
// Keep the source STEP spelling for unchanged rows: it is the public
|
|
103
|
+
// fallback pset name when Name is empty. Retyped rows use their new class.
|
|
104
|
+
return { ...base, type: base.type.toUpperCase() === type.toUpperCase()
|
|
105
|
+
? base.type : normalizeIfcTypeName(type), attributes };
|
|
106
|
+
};
|
|
107
|
+
for (const row of iterateEffectiveEntities(store, view, wantedTypes, sourceIds)) {
|
|
108
|
+
const matPropsId = row.expressId;
|
|
109
|
+
const entity = readEffective(matPropsId, row.type);
|
|
110
|
+
const attrs = entity?.attributes;
|
|
111
|
+
if (!attrs)
|
|
112
|
+
continue;
|
|
113
|
+
const parsed = readMaterialPropsEntity(row.type, attrs, entity.type);
|
|
114
|
+
if (!parsed)
|
|
115
|
+
continue;
|
|
116
|
+
const properties = [];
|
|
117
|
+
for (const propRef of parsed.propsList) {
|
|
118
|
+
if (typeof propRef !== 'number')
|
|
119
|
+
continue;
|
|
120
|
+
if (view?.isDeleted(propRef))
|
|
121
|
+
continue;
|
|
122
|
+
const propRefEntity = refFromStore(store, propRef);
|
|
123
|
+
const propType = view?.getTypeMutations?.().get(propRef)?.newType
|
|
124
|
+
?? propRefEntity?.type
|
|
125
|
+
?? view?.getNewEntity?.(propRef)?.type;
|
|
126
|
+
if (!propType)
|
|
127
|
+
continue;
|
|
128
|
+
const propEntity = readEffective(propRef, propType);
|
|
129
|
+
if (!propEntity)
|
|
130
|
+
continue;
|
|
131
|
+
const propAttrs = propEntity.attributes || [];
|
|
132
|
+
const propName = typeof propAttrs[0] === 'string' ? propAttrs[0] : '';
|
|
133
|
+
if (!propName)
|
|
134
|
+
continue;
|
|
135
|
+
const pv = propRefEntity
|
|
136
|
+
? parsePropertyValueWithComplex(store, extractor, propEntity)
|
|
137
|
+
: parsePropertyValue(propEntity);
|
|
138
|
+
const entry = {
|
|
139
|
+
name: propName,
|
|
140
|
+
type: pv.type,
|
|
141
|
+
value: pv.value,
|
|
142
|
+
};
|
|
143
|
+
copyParsedExtras(entry, pv);
|
|
144
|
+
properties.push(entry);
|
|
145
|
+
}
|
|
146
|
+
if (properties.length === 0)
|
|
147
|
+
continue;
|
|
148
|
+
let list = index.get(parsed.materialId);
|
|
149
|
+
if (!list) {
|
|
150
|
+
list = [];
|
|
151
|
+
index.set(parsed.materialId, list);
|
|
152
|
+
}
|
|
153
|
+
list.push({ name: parsed.psetName, properties });
|
|
154
|
+
}
|
|
155
|
+
if (view && revision !== undefined) {
|
|
156
|
+
let cache = materialPropertyOverlayCache.get(store);
|
|
157
|
+
if (!cache) {
|
|
158
|
+
cache = new WeakMap();
|
|
159
|
+
materialPropertyOverlayCache.set(store, cache);
|
|
160
|
+
}
|
|
161
|
+
cache.set(view, { revision, index });
|
|
162
|
+
}
|
|
163
|
+
else if (!view)
|
|
164
|
+
materialPropertyIndexCache.set(store, index);
|
|
165
|
+
return index;
|
|
166
|
+
}
|
|
167
|
+
/** Build pset groups for a set of candidate material ids using the reverse index. */
|
|
168
|
+
function buildMaterialPsetGroups(store, materialIds, view, revision) {
|
|
169
|
+
const index = getMaterialPropertyIndex(store, view, revision);
|
|
170
|
+
if (index.size === 0)
|
|
171
|
+
return [];
|
|
172
|
+
const groups = [];
|
|
173
|
+
const seen = new Set();
|
|
174
|
+
for (const matId of materialIds) {
|
|
175
|
+
if (seen.has(matId))
|
|
176
|
+
continue;
|
|
177
|
+
seen.add(matId);
|
|
178
|
+
const entries = index.get(matId);
|
|
179
|
+
if (!entries || entries.length === 0)
|
|
180
|
+
continue;
|
|
181
|
+
const { name } = getMaterialDisplay(store, matId);
|
|
182
|
+
groups.push({
|
|
183
|
+
materialId: matId,
|
|
184
|
+
materialName: name,
|
|
185
|
+
psets: entries.map((e) => ({ name: e.name, properties: e.properties })),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return groups;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Material property sets associated with a selected element, resolved through
|
|
192
|
+
* its material association. Fans out a layer/profile/constituent set to its
|
|
193
|
+
* member IfcMaterials (where Pset_Material* typically lives) and also checks
|
|
194
|
+
* the set definition itself. Returns one group per material that has psets.
|
|
195
|
+
*/
|
|
196
|
+
export function extractMaterialPropertiesOnDemand(store, entityId, view, revision) {
|
|
197
|
+
// Every association, not just the primary — psets on a second
|
|
198
|
+
// IfcRelAssociatesMaterial's definition were previously invisible.
|
|
199
|
+
const defIds = resolveAllMaterialDefIds(store, entityId);
|
|
200
|
+
if (defIds.length === 0)
|
|
201
|
+
return [];
|
|
202
|
+
const ids = [];
|
|
203
|
+
for (const defId of defIds) {
|
|
204
|
+
ids.push(defId, ...collectMaterialLeaves(store, defId).map((l) => l.id));
|
|
205
|
+
}
|
|
206
|
+
return buildMaterialPsetGroups(store, ids, view, revision);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Material property sets for a directly-selected material entity (the Materials
|
|
210
|
+
* hierarchy tab). Includes the material's own psets plus, when it is a set
|
|
211
|
+
* definition, those of its member materials.
|
|
212
|
+
*/
|
|
213
|
+
export function extractMaterialPropertiesForMaterialId(store, materialId, view, revision) {
|
|
214
|
+
const leafIds = collectMaterialLeaves(store, materialId).map((l) => l.id);
|
|
215
|
+
return buildMaterialPsetGroups(store, [materialId, ...leafIds], view, revision);
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=material-properties-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-properties-extractor.js","sourceRoot":"","sources":["../src/material-properties-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IfcDataStore } from './columnar-parser.js';
|
|
2
|
+
export { resolveAllMaterialDefIds } from './material-associations.js';
|
|
2
3
|
export interface MaterialInfo {
|
|
3
4
|
type: 'Material' | 'MaterialLayerSet' | 'MaterialProfileSet' | 'MaterialConstituentSet' | 'MaterialList';
|
|
4
5
|
name?: string;
|
|
@@ -49,15 +50,6 @@ export interface MaterialConstituentInfo {
|
|
|
49
50
|
/** IfcMaterial.Category — see above. */
|
|
50
51
|
materialCategory?: string;
|
|
51
52
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Resolve ALL material definition ids for an entity: every occurrence-level
|
|
54
|
-
* IfcRelAssociatesMaterial (elements may legally carry more than one), or —
|
|
55
|
-
* when the occurrence has none — the associations of its type
|
|
56
|
-
* (IfcRelDefinesByType), matching {@link extractMaterialsOnDemand}'s
|
|
57
|
-
* occurrence-overrides-type precedence. Ordered by rel express id, so
|
|
58
|
-
* index 0 is the entity's deterministic "primary" material definition.
|
|
59
|
-
*/
|
|
60
|
-
export declare function resolveAllMaterialDefIds(store: IfcDataStore, entityId: number): number[];
|
|
61
53
|
/**
|
|
62
54
|
* Extract EVERY material association for an entity ON-DEMAND, resolved to
|
|
63
55
|
* full material structures (layers, profiles, constituents, lists). Most
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-resolver.d.ts","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,cAAc,CAAC;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACzC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD;+EAC2E;IAC3E,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iFAC6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"material-resolver.d.ts","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,65 +10,8 @@ import { EntityExtractor } from './entity-extractor.js';
|
|
|
10
10
|
import { RelationshipType } from '@ifc-lite/data';
|
|
11
11
|
import { isIfcTypeLikeEntity } from './columnar-parser-indexes.js';
|
|
12
12
|
import { resolveEntityLengthUnitScale } from './unit-extractor.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* with an entity (no type fallback): every IfcRelAssociatesMaterial that
|
|
16
|
-
* targets it, deduped and ordered by the rel's express id — the same rule
|
|
17
|
-
* that decides the single-entry `onDemandMaterialMap` winner, so index 0
|
|
18
|
-
* always equals the map's entry. Falls back to the map when no relationship
|
|
19
|
-
* graph is available (minimal/test stores).
|
|
20
|
-
*/
|
|
21
|
-
function resolveOwnMaterialDefIds(store, entityId) {
|
|
22
|
-
if (store.relationships) {
|
|
23
|
-
// Prefer getEdges (carries relationshipId for deterministic ordering);
|
|
24
|
-
// facade graphs (server data model, test mocks) may implement only
|
|
25
|
-
// getRelated, whose order is best-effort.
|
|
26
|
-
if (typeof store.relationships.inverse?.getEdges === 'function') {
|
|
27
|
-
const edges = store.relationships.inverse.getEdges(entityId, RelationshipType.AssociatesMaterial);
|
|
28
|
-
if (edges.length > 0) {
|
|
29
|
-
const sorted = [...edges].sort((a, b) => a.relationshipId - b.relationshipId);
|
|
30
|
-
const out = [];
|
|
31
|
-
for (const e of sorted) {
|
|
32
|
-
if (!out.includes(e.target))
|
|
33
|
-
out.push(e.target);
|
|
34
|
-
}
|
|
35
|
-
return out;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
const related = store.relationships.getRelated(entityId, RelationshipType.AssociatesMaterial, 'inverse');
|
|
40
|
-
if (related.length > 0)
|
|
41
|
-
return [...new Set(related)];
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
// Map values are LISTS (all associations, file order) since #1773.
|
|
45
|
-
const mapped = store.onDemandMaterialMap?.get(entityId);
|
|
46
|
-
return mapped !== undefined ? [...mapped] : [];
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Resolve ALL material definition ids for an entity: every occurrence-level
|
|
50
|
-
* IfcRelAssociatesMaterial (elements may legally carry more than one), or —
|
|
51
|
-
* when the occurrence has none — the associations of its type
|
|
52
|
-
* (IfcRelDefinesByType), matching {@link extractMaterialsOnDemand}'s
|
|
53
|
-
* occurrence-overrides-type precedence. Ordered by rel express id, so
|
|
54
|
-
* index 0 is the entity's deterministic "primary" material definition.
|
|
55
|
-
*/
|
|
56
|
-
export function resolveAllMaterialDefIds(store, entityId) {
|
|
57
|
-
const own = resolveOwnMaterialDefIds(store, entityId);
|
|
58
|
-
if (own.length > 0)
|
|
59
|
-
return own;
|
|
60
|
-
// Type fallback: first type with any association wins (mirrors the
|
|
61
|
-
// single-def lookup's `break`).
|
|
62
|
-
if (store.relationships) {
|
|
63
|
-
const typeIds = store.relationships.getRelated(entityId, RelationshipType.DefinesByType, 'inverse');
|
|
64
|
-
for (const typeId of typeIds) {
|
|
65
|
-
const typeDefs = resolveOwnMaterialDefIds(store, typeId);
|
|
66
|
-
if (typeDefs.length > 0)
|
|
67
|
-
return typeDefs;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return [];
|
|
71
|
-
}
|
|
13
|
+
import { resolveAllMaterialDefIds, resolveMaterialOwnerAndDefIds, resolveOwnMaterialDefIds } from './material-associations.js';
|
|
14
|
+
export { resolveAllMaterialDefIds } from './material-associations.js';
|
|
72
15
|
/**
|
|
73
16
|
* Extract EVERY material association for an entity ON-DEMAND, resolved to
|
|
74
17
|
* full material structures (layers, profiles, constituents, lists). Most
|
|
@@ -78,14 +21,14 @@ export function resolveAllMaterialDefIds(store, entityId) {
|
|
|
78
21
|
* {@link extractMaterialsOnDemand} (=== element 0 here).
|
|
79
22
|
*/
|
|
80
23
|
export function extractAllMaterialsOnDemand(store, entityId) {
|
|
81
|
-
const defIds =
|
|
24
|
+
const { ownerId, defIds } = resolveMaterialOwnerAndDefIds(store, entityId);
|
|
82
25
|
if (defIds.length === 0)
|
|
83
26
|
return [];
|
|
84
27
|
if (!store.source?.length) {
|
|
85
|
-
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
return defIds.map(() => ({ type: 'Material', unresolved: true })
|
|
28
|
+
const resolved = store.resolvedMaterials?.get(ownerId);
|
|
29
|
+
// A missing or older wire row stays unverified. Never let a partial
|
|
30
|
+
// forwarding payload convert an unknown value into a confident mismatch.
|
|
31
|
+
return defIds.map((id) => resolved?.get(id) ?? { type: 'Material', unresolved: true });
|
|
89
32
|
}
|
|
90
33
|
const extractor = new EntityExtractor(store.source);
|
|
91
34
|
const out = [];
|
|
@@ -109,8 +52,10 @@ export function extractMaterialsOnDemand(store, entityId) {
|
|
|
109
52
|
const materialId = resolveAllMaterialDefIds(store, entityId)[0];
|
|
110
53
|
if (materialId === undefined)
|
|
111
54
|
return null;
|
|
112
|
-
if (!store.source?.length)
|
|
113
|
-
|
|
55
|
+
if (!store.source?.length) {
|
|
56
|
+
const info = extractAllMaterialsOnDemand(store, entityId)[0];
|
|
57
|
+
return info?.unresolved ? null : info ?? null;
|
|
58
|
+
}
|
|
114
59
|
const extractor = new EntityExtractor(store.source);
|
|
115
60
|
return resolveMaterial(store, extractor, materialId, new Set(), entityId);
|
|
116
61
|
}
|
|
@@ -123,6 +68,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
123
68
|
if (visited.has(materialId))
|
|
124
69
|
return null;
|
|
125
70
|
visited.add(materialId);
|
|
71
|
+
// @raw-entity-enumeration-ok decode the selected material definition's one source STEP record
|
|
126
72
|
const ref = store.entityIndex.byId.get(materialId);
|
|
127
73
|
if (!ref)
|
|
128
74
|
return null;
|
|
@@ -146,6 +92,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
146
92
|
const layerIds = Array.isArray(attrs[0]) ? attrs[0].filter((id) => typeof id === 'number') : [];
|
|
147
93
|
const layers = [];
|
|
148
94
|
for (const layerId of layerIds) {
|
|
95
|
+
// @raw-entity-enumeration-ok decode this material set's referenced layer record
|
|
149
96
|
const layerRef = store.entityIndex.byId.get(layerId);
|
|
150
97
|
if (!layerRef)
|
|
151
98
|
continue;
|
|
@@ -158,6 +105,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
158
105
|
let materialName;
|
|
159
106
|
let materialCategory;
|
|
160
107
|
if (matId) {
|
|
108
|
+
// @raw-entity-enumeration-ok decode the layer's referenced material record
|
|
161
109
|
const matRef = store.entityIndex.byId.get(matId);
|
|
162
110
|
if (matRef) {
|
|
163
111
|
const matEntity = extractor.extractEntity(matRef);
|
|
@@ -195,6 +143,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
195
143
|
const profileIds = Array.isArray(attrs[2]) ? attrs[2].filter((id) => typeof id === 'number') : [];
|
|
196
144
|
const profiles = [];
|
|
197
145
|
for (const profId of profileIds) {
|
|
146
|
+
// @raw-entity-enumeration-ok decode this profile set's referenced profile record
|
|
198
147
|
const profRef = store.entityIndex.byId.get(profId);
|
|
199
148
|
if (!profRef)
|
|
200
149
|
continue;
|
|
@@ -207,6 +156,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
207
156
|
let materialName;
|
|
208
157
|
let materialCategory;
|
|
209
158
|
if (matId) {
|
|
159
|
+
// @raw-entity-enumeration-ok decode the profile's referenced material record
|
|
210
160
|
const matRef = store.entityIndex.byId.get(matId);
|
|
211
161
|
if (matRef) {
|
|
212
162
|
const matEntity = extractor.extractEntity(matRef);
|
|
@@ -235,6 +185,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
235
185
|
const constituentIds = Array.isArray(attrs[2]) ? attrs[2].filter((id) => typeof id === 'number') : [];
|
|
236
186
|
const constituents = [];
|
|
237
187
|
for (const constId of constituentIds) {
|
|
188
|
+
// @raw-entity-enumeration-ok decode this constituent set's referenced constituent record
|
|
238
189
|
const constRef = store.entityIndex.byId.get(constId);
|
|
239
190
|
if (!constRef)
|
|
240
191
|
continue;
|
|
@@ -247,6 +198,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
247
198
|
let materialName;
|
|
248
199
|
let materialCategory;
|
|
249
200
|
if (matId) {
|
|
201
|
+
// @raw-entity-enumeration-ok decode the constituent's referenced material record
|
|
250
202
|
const matRef = store.entityIndex.byId.get(matId);
|
|
251
203
|
if (matRef) {
|
|
252
204
|
const matEntity = extractor.extractEntity(matRef);
|
|
@@ -280,12 +232,14 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
280
232
|
const matIds = Array.isArray(attrs[0]) ? attrs[0].filter((id) => typeof id === 'number') : [];
|
|
281
233
|
const materials = [];
|
|
282
234
|
for (const matId of matIds) {
|
|
235
|
+
// @raw-entity-enumeration-ok decode this material list's referenced material record
|
|
283
236
|
const matRef = store.entityIndex.byId.get(matId);
|
|
284
237
|
if (!matRef)
|
|
285
238
|
continue;
|
|
286
239
|
const matEntity = extractor.extractEntity(matRef);
|
|
287
240
|
if (matEntity) {
|
|
288
|
-
const name = typeof matEntity.attributes?.[0] === 'string'
|
|
241
|
+
const name = typeof matEntity.attributes?.[0] === 'string'
|
|
242
|
+
? matEntity.attributes[0] : `Material #${matId}`;
|
|
289
243
|
const category = typeof matEntity.attributes?.[2] === 'string' ? matEntity.attributes[2] : undefined;
|
|
290
244
|
materials.push({ name, ...(category ? { category } : {}) });
|
|
291
245
|
}
|
|
@@ -317,6 +271,7 @@ function resolveMaterial(store, extractor, materialId, visited = new Set(), orig
|
|
|
317
271
|
}
|
|
318
272
|
/** Resolve an entity ref from the primary index, falling back to deferred atoms. */
|
|
319
273
|
function getRef(store, id) {
|
|
274
|
+
// @raw-entity-enumeration-ok point lookup for one definition or member id from a parsed material attribute
|
|
320
275
|
return store.entityIndex.byId.get(id) ?? store.deferredEntityIndex?.get(id);
|
|
321
276
|
}
|
|
322
277
|
/** Read an IfcMaterial's Name (attr 0) and Category (attr 2). */
|
|
@@ -568,6 +523,7 @@ export function buildMaterialUsageIndex(store) {
|
|
|
568
523
|
let forward = store.onDemandMaterialMap;
|
|
569
524
|
if (!forward && store.relationships) {
|
|
570
525
|
const rebuilt = new Map();
|
|
526
|
+
// @raw-entity-enumeration-ok the source-less server fallback has no forward material map; this index enumerates its complete immutable server entity domain
|
|
571
527
|
for (const entityId of store.entityIndex.byId.keys()) {
|
|
572
528
|
const defs = store.relationships.getRelated(entityId, RelationshipType.AssociatesMaterial, 'inverse');
|
|
573
529
|
if (defs.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material-resolver.js","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"material-resolver.js","sourceRoot":"","sources":["../src/material-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,19 +58,6 @@ export interface DocumentInfo {
|
|
|
58
58
|
confidentiality?: string;
|
|
59
59
|
}
|
|
60
60
|
export type { GeoreferenceInfo as GeorefInfo };
|
|
61
|
-
/**
|
|
62
|
-
* Property sets attached to a material via IfcMaterialProperties (e.g.
|
|
63
|
-
* Pset_MaterialConcrete). Grouped per underlying IfcMaterial so the UI can
|
|
64
|
-
* show which material each set belongs to. See {@link extractMaterialPropertiesOnDemand}.
|
|
65
|
-
*/
|
|
66
|
-
export interface MaterialPsetGroup {
|
|
67
|
-
materialId: number;
|
|
68
|
-
materialName: string;
|
|
69
|
-
psets: Array<{
|
|
70
|
-
name: string;
|
|
71
|
-
properties: Array<ExtractedProperty>;
|
|
72
|
-
}>;
|
|
73
|
-
}
|
|
74
61
|
export { parsePropertyValue, extractNumericValue, resolveComplexPropertyValue, parsePropertyValueWithComplex, } from './property-value-parser.js';
|
|
75
62
|
import { type ExtractedProperty } from './property-value-parser.js';
|
|
76
63
|
/** Extract property sets from IDs, shared by instance- and type-level extraction. */
|
|
@@ -152,17 +139,6 @@ export interface GroupMember {
|
|
|
152
139
|
export declare function extractGroupMembersOnDemand(store: IfcDataStore, groupId: number): GroupMember[];
|
|
153
140
|
export { extractGroupAssignmentFactorOnDemand } from './group-assignment-factor.js';
|
|
154
141
|
export { extractGeoreferencingOnDemand } from './on-demand-georeferencing.js';
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
* its material association. Fans out a layer/profile/constituent set to its
|
|
158
|
-
* member IfcMaterials (where Pset_Material* typically lives) and also checks
|
|
159
|
-
* the set definition itself. Returns one group per material that has psets.
|
|
160
|
-
*/
|
|
161
|
-
export declare function extractMaterialPropertiesOnDemand(store: IfcDataStore, entityId: number): MaterialPsetGroup[];
|
|
162
|
-
/**
|
|
163
|
-
* Material property sets for a directly-selected material entity (the Materials
|
|
164
|
-
* hierarchy tab). Includes the material's own psets plus, when it is a set
|
|
165
|
-
* definition, those of its member materials.
|
|
166
|
-
*/
|
|
167
|
-
export declare function extractMaterialPropertiesForMaterialId(store: IfcDataStore, materialId: number): MaterialPsetGroup[];
|
|
142
|
+
export { extractMaterialPropertiesOnDemand, extractMaterialPropertiesForMaterialId } from './material-properties-extractor.js';
|
|
143
|
+
export type { MaterialPropertiesView, MaterialPsetGroup } from './material-properties-extractor.js';
|
|
168
144
|
//# sourceMappingURL=on-demand-extractors.d.ts.map
|