@ifc-lite/parser 8.2.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.
Files changed (61) hide show
  1. package/dist/columnar-parser.d.ts +5 -19
  2. package/dist/columnar-parser.d.ts.map +1 -1
  3. package/dist/data-store-transport.d.ts +1 -0
  4. package/dist/data-store-transport.d.ts.map +1 -1
  5. package/dist/data-store-transport.js +6 -0
  6. package/dist/data-store-transport.js.map +1 -1
  7. package/dist/effective-spatial-members.d.ts +11 -0
  8. package/dist/effective-spatial-members.d.ts.map +1 -0
  9. package/dist/effective-spatial-members.js +32 -0
  10. package/dist/effective-spatial-members.js.map +1 -0
  11. package/dist/effective-storey.d.ts +5 -0
  12. package/dist/effective-storey.d.ts.map +1 -0
  13. package/dist/effective-storey.js +64 -0
  14. package/dist/effective-storey.js.map +1 -0
  15. package/dist/index.d.ts +5 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/material-associations.d.ts +24 -0
  20. package/dist/material-associations.d.ts.map +1 -0
  21. package/dist/material-associations.js +67 -0
  22. package/dist/material-associations.js.map +1 -0
  23. package/dist/material-properties-extractor.d.ts +37 -0
  24. package/dist/material-properties-extractor.d.ts.map +1 -0
  25. package/dist/material-properties-extractor.js +217 -0
  26. package/dist/material-properties-extractor.js.map +1 -0
  27. package/dist/material-resolver.d.ts +1 -9
  28. package/dist/material-resolver.d.ts.map +1 -1
  29. package/dist/material-resolver.js +23 -67
  30. package/dist/material-resolver.js.map +1 -1
  31. package/dist/on-demand-extractors.d.ts +6 -61
  32. package/dist/on-demand-extractors.d.ts.map +1 -1
  33. package/dist/on-demand-extractors.js +15 -166
  34. package/dist/on-demand-extractors.js.map +1 -1
  35. package/dist/owning-project.d.ts.map +1 -1
  36. package/dist/owning-project.js +1 -0
  37. package/dist/owning-project.js.map +1 -1
  38. package/dist/property-complex-value.d.ts +34 -0
  39. package/dist/property-complex-value.d.ts.map +1 -0
  40. package/dist/property-complex-value.js +111 -0
  41. package/dist/property-complex-value.js.map +1 -0
  42. package/dist/property-reference-value.d.ts +15 -0
  43. package/dist/property-reference-value.d.ts.map +1 -0
  44. package/dist/property-reference-value.js +34 -0
  45. package/dist/property-reference-value.js.map +1 -0
  46. package/dist/property-value-parser.d.ts +20 -21
  47. package/dist/property-value-parser.d.ts.map +1 -1
  48. package/dist/property-value-parser.js +32 -97
  49. package/dist/property-value-parser.js.map +1 -1
  50. package/dist/source-header.d.ts.map +1 -1
  51. package/dist/source-header.js +18 -8
  52. package/dist/source-header.js.map +1 -1
  53. package/dist/structural-extractor-values.d.ts +18 -0
  54. package/dist/structural-extractor-values.d.ts.map +1 -0
  55. package/dist/structural-extractor-values.js +50 -0
  56. package/dist/structural-extractor-values.js.map +1 -0
  57. package/dist/structural-extractor.d.ts +16 -1
  58. package/dist/structural-extractor.d.ts.map +1 -1
  59. package/dist/structural-extractor.js +70 -74
  60. package/dist/structural-extractor.js.map +1 -1
  61. 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":"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"}
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
- * Resolve the OCCURRENCE-LEVEL material definition ids directly associated
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 = resolveAllMaterialDefIds(store, entityId);
24
+ const { ownerId, defIds } = resolveMaterialOwnerAndDefIds(store, entityId);
82
25
  if (defIds.length === 0)
83
26
  return [];
84
27
  if (!store.source?.length) {
85
- // Server-parsed: the graph proved the association, but decoding the
86
- // definition needs source bytes. A marker per association, never `[]`,
87
- // which would read as "no material" (#5227, as #3948 for classifications).
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
- return null;
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' ? matEntity.attributes[0] : `Material #${matId}`;
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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"}