@ifc-lite/parser 9.1.0 → 9.5.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 (201) hide show
  1. package/README.md +35 -0
  2. package/dist/abort-error.d.ts +7 -0
  3. package/dist/abort-error.d.ts.map +1 -0
  4. package/dist/abort-error.js +17 -0
  5. package/dist/abort-error.js.map +1 -0
  6. package/dist/classification-overlay.d.ts +13 -0
  7. package/dist/classification-overlay.d.ts.map +1 -0
  8. package/dist/classification-overlay.js +65 -0
  9. package/dist/classification-overlay.js.map +1 -0
  10. package/dist/classification-resolver.d.ts +13 -9
  11. package/dist/classification-resolver.d.ts.map +1 -1
  12. package/dist/classification-resolver.js +109 -74
  13. package/dist/classification-resolver.js.map +1 -1
  14. package/dist/columnar-parser-attributes.d.ts +1 -1
  15. package/dist/columnar-parser-attributes.d.ts.map +1 -1
  16. package/dist/columnar-parser-attributes.js +16 -6
  17. package/dist/columnar-parser-attributes.js.map +1 -1
  18. package/dist/columnar-parser-root-attributes.d.ts +15 -1
  19. package/dist/columnar-parser-root-attributes.d.ts.map +1 -1
  20. package/dist/columnar-parser-root-attributes.js +26 -11
  21. package/dist/columnar-parser-root-attributes.js.map +1 -1
  22. package/dist/columnar-parser.d.ts +13 -15
  23. package/dist/columnar-parser.d.ts.map +1 -1
  24. package/dist/columnar-parser.js +11 -23
  25. package/dist/columnar-parser.js.map +1 -1
  26. package/dist/current-occurrence-quantities.d.ts +13 -0
  27. package/dist/current-occurrence-quantities.d.ts.map +1 -0
  28. package/dist/current-occurrence-quantities.js +69 -0
  29. package/dist/current-occurrence-quantities.js.map +1 -0
  30. package/dist/current-project-units.d.ts +11 -0
  31. package/dist/current-project-units.d.ts.map +1 -0
  32. package/dist/current-project-units.js +41 -0
  33. package/dist/current-project-units.js.map +1 -0
  34. package/dist/current-type-quantities.d.ts +13 -0
  35. package/dist/current-type-quantities.d.ts.map +1 -0
  36. package/dist/current-type-quantities.js +274 -0
  37. package/dist/current-type-quantities.js.map +1 -0
  38. package/dist/data-store-transport.d.ts +1 -0
  39. package/dist/data-store-transport.d.ts.map +1 -1
  40. package/dist/data-store-transport.js +4 -4
  41. package/dist/data-store-transport.js.map +1 -1
  42. package/dist/document-resolver.d.ts +23 -0
  43. package/dist/document-resolver.d.ts.map +1 -0
  44. package/dist/document-resolver.js +122 -0
  45. package/dist/document-resolver.js.map +1 -0
  46. package/dist/effective-entity-record.d.ts +3 -2
  47. package/dist/effective-entity-record.d.ts.map +1 -1
  48. package/dist/effective-entity-record.js +5 -5
  49. package/dist/effective-entity-record.js.map +1 -1
  50. package/dist/effective-metadata-record.d.ts +23 -0
  51. package/dist/effective-metadata-record.d.ts.map +1 -0
  52. package/dist/effective-metadata-record.js +50 -0
  53. package/dist/effective-metadata-record.js.map +1 -0
  54. package/dist/effective-storey.d.ts.map +1 -1
  55. package/dist/effective-storey.js +5 -0
  56. package/dist/effective-storey.js.map +1 -1
  57. package/dist/entity-scanner.d.ts +6 -8
  58. package/dist/entity-scanner.d.ts.map +1 -1
  59. package/dist/entity-scanner.js +26 -13
  60. package/dist/entity-scanner.js.map +1 -1
  61. package/dist/georef-extractor.d.ts +1 -1
  62. package/dist/georef-extractor.d.ts.map +1 -1
  63. package/dist/georef-extractor.js +1 -1
  64. package/dist/georef-extractor.js.map +1 -1
  65. package/dist/ifc-schema.d.ts +2 -1
  66. package/dist/ifc-schema.d.ts.map +1 -1
  67. package/dist/ifc-schema.js +4 -3
  68. package/dist/ifc-schema.js.map +1 -1
  69. package/dist/index.d.ts +9 -12
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +9 -12
  72. package/dist/index.js.map +1 -1
  73. package/dist/length-unit-source.d.ts +25 -0
  74. package/dist/length-unit-source.d.ts.map +1 -0
  75. package/dist/length-unit-source.js +14 -0
  76. package/dist/length-unit-source.js.map +1 -0
  77. package/dist/material-definitions.d.ts +10 -0
  78. package/dist/material-definitions.d.ts.map +1 -0
  79. package/dist/material-definitions.js +224 -0
  80. package/dist/material-definitions.js.map +1 -0
  81. package/dist/material-overlay.d.ts +38 -0
  82. package/dist/material-overlay.d.ts.map +1 -0
  83. package/dist/material-overlay.js +146 -0
  84. package/dist/material-overlay.js.map +1 -0
  85. package/dist/material-properties-extractor.d.ts +2 -11
  86. package/dist/material-properties-extractor.d.ts.map +1 -1
  87. package/dist/material-properties-extractor.js +21 -38
  88. package/dist/material-properties-extractor.js.map +1 -1
  89. package/dist/material-resolver.d.ts +6 -4
  90. package/dist/material-resolver.d.ts.map +1 -1
  91. package/dist/material-resolver.js +176 -386
  92. package/dist/material-resolver.js.map +1 -1
  93. package/dist/measure-unit-scale.d.ts +2 -0
  94. package/dist/measure-unit-scale.d.ts.map +1 -1
  95. package/dist/measure-unit-scale.js +7 -1
  96. package/dist/measure-unit-scale.js.map +1 -1
  97. package/dist/metadata-edit-value.d.ts +4 -0
  98. package/dist/metadata-edit-value.d.ts.map +1 -0
  99. package/dist/metadata-edit-value.js +57 -0
  100. package/dist/metadata-edit-value.js.map +1 -0
  101. package/dist/native-metadata-public.d.ts +9 -0
  102. package/dist/native-metadata-public.d.ts.map +1 -0
  103. package/dist/native-metadata-public.js +12 -0
  104. package/dist/native-metadata-public.js.map +1 -0
  105. package/dist/occurrence-quantity-read-error.d.ts +7 -0
  106. package/dist/occurrence-quantity-read-error.d.ts.map +1 -0
  107. package/dist/occurrence-quantity-read-error.js +13 -0
  108. package/dist/occurrence-quantity-read-error.js.map +1 -0
  109. package/dist/on-demand-extractors.d.ts +3 -38
  110. package/dist/on-demand-extractors.d.ts.map +1 -1
  111. package/dist/on-demand-extractors.js +4 -184
  112. package/dist/on-demand-extractors.js.map +1 -1
  113. package/dist/on-demand-georeferencing.d.ts.map +1 -1
  114. package/dist/on-demand-georeferencing.js +2 -0
  115. package/dist/on-demand-georeferencing.js.map +1 -1
  116. package/dist/parser-worker-trace.d.ts +18 -0
  117. package/dist/parser-worker-trace.d.ts.map +1 -0
  118. package/dist/parser-worker-trace.js +32 -0
  119. package/dist/parser-worker-trace.js.map +1 -0
  120. package/dist/parser.worker.d.ts.map +1 -1
  121. package/dist/parser.worker.js +34 -13
  122. package/dist/parser.worker.js.map +1 -1
  123. package/dist/project-units.d.ts +17 -4
  124. package/dist/project-units.d.ts.map +1 -1
  125. package/dist/project-units.js +104 -37
  126. package/dist/project-units.js.map +1 -1
  127. package/dist/property-complex-value.d.ts.map +1 -1
  128. package/dist/property-complex-value.js +1 -0
  129. package/dist/property-complex-value.js.map +1 -1
  130. package/dist/property-unit.d.ts +2 -0
  131. package/dist/property-unit.d.ts.map +1 -1
  132. package/dist/property-unit.js +4 -1
  133. package/dist/property-unit.js.map +1 -1
  134. package/dist/property-value-parser.d.ts +14 -1
  135. package/dist/property-value-parser.d.ts.map +1 -1
  136. package/dist/property-value-parser.js +42 -22
  137. package/dist/property-value-parser.js.map +1 -1
  138. package/dist/quantity-collect.d.ts +14 -2
  139. package/dist/quantity-collect.d.ts.map +1 -1
  140. package/dist/quantity-collect.js +19 -8
  141. package/dist/quantity-collect.js.map +1 -1
  142. package/dist/relationship-schema-slots.d.ts.map +1 -1
  143. package/dist/relationship-schema-slots.js +2 -1
  144. package/dist/relationship-schema-slots.js.map +1 -1
  145. package/dist/scan-worker-inline.d.ts.map +1 -1
  146. package/dist/scan-worker-inline.js +2 -1
  147. package/dist/scan-worker-inline.js.map +1 -1
  148. package/dist/schedule-extractor.d.ts +2 -1
  149. package/dist/schedule-extractor.d.ts.map +1 -1
  150. package/dist/schedule-extractor.js +11 -2
  151. package/dist/schedule-extractor.js.map +1 -1
  152. package/dist/schedule-serializer-builders.d.ts +7 -0
  153. package/dist/schedule-serializer-builders.d.ts.map +1 -1
  154. package/dist/schedule-serializer-builders.js +17 -17
  155. package/dist/schedule-serializer-builders.js.map +1 -1
  156. package/dist/schedule-serializer.d.ts +8 -3
  157. package/dist/schedule-serializer.d.ts.map +1 -1
  158. package/dist/schedule-serializer.js +36 -1
  159. package/dist/schedule-serializer.js.map +1 -1
  160. package/dist/schedule-task-products.d.ts +38 -0
  161. package/dist/schedule-task-products.d.ts.map +1 -0
  162. package/dist/schedule-task-products.js +69 -0
  163. package/dist/schedule-task-products.js.map +1 -0
  164. package/dist/schedule-types.d.ts +11 -1
  165. package/dist/schedule-types.d.ts.map +1 -1
  166. package/dist/schedule-types.js.map +1 -1
  167. package/dist/schema-entity-name.d.ts +14 -0
  168. package/dist/schema-entity-name.d.ts.map +1 -0
  169. package/dist/schema-entity-name.js +34 -0
  170. package/dist/schema-entity-name.js.map +1 -0
  171. package/dist/schema-exports.d.ts +7 -0
  172. package/dist/schema-exports.d.ts.map +1 -0
  173. package/dist/schema-exports.js +10 -0
  174. package/dist/schema-exports.js.map +1 -0
  175. package/dist/source-project-length-unit.d.ts +53 -0
  176. package/dist/source-project-length-unit.d.ts.map +1 -0
  177. package/dist/source-project-length-unit.js +201 -0
  178. package/dist/source-project-length-unit.js.map +1 -0
  179. package/dist/structural-extractor.js +2 -2
  180. package/dist/structural-extractor.js.map +1 -1
  181. package/dist/structural-load-extractor.d.ts +9 -3
  182. package/dist/structural-load-extractor.d.ts.map +1 -1
  183. package/dist/structural-load-extractor.js +26 -20
  184. package/dist/structural-load-extractor.js.map +1 -1
  185. package/dist/structural-step-values.d.ts +0 -9
  186. package/dist/structural-step-values.d.ts.map +1 -1
  187. package/dist/structural-step-values.js +13 -1
  188. package/dist/structural-step-values.js.map +1 -1
  189. package/dist/type-own-quantity-source.d.ts +37 -0
  190. package/dist/type-own-quantity-source.d.ts.map +1 -0
  191. package/dist/type-own-quantity-source.js +204 -0
  192. package/dist/type-own-quantity-source.js.map +1 -0
  193. package/dist/unit-extractor.d.ts +14 -1
  194. package/dist/unit-extractor.d.ts.map +1 -1
  195. package/dist/unit-extractor.js +34 -31
  196. package/dist/unit-extractor.js.map +1 -1
  197. package/dist/worker-parser.d.ts +7 -0
  198. package/dist/worker-parser.d.ts.map +1 -1
  199. package/dist/worker-parser.js +14 -16
  200. package/dist/worker-parser.js.map +1 -1
  201. package/package.json +6 -5
@@ -0,0 +1,146 @@
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
+ /** Effective native material records and assignments, shared by all material readers (#7119). */
5
+ import { RelationshipType } from '@ifc-lite/data';
6
+ import { EntityExtractor } from './entity-extractor.js';
7
+ import { parsedWriteValue } from './property-value-parser.js';
8
+ import { resolveOwnMaterialDefIds } from './material-associations.js';
9
+ import { resolveEffectiveEntityRecord } from './effective-entity-record.js';
10
+ import { resolveEffectiveRelationshipOverlay } from './effective-relationship-overlay.js';
11
+ const records = new WeakMap();
12
+ /** STEP write markers are different from already-parsed literal source strings. */
13
+ function writtenMarker(value) {
14
+ if (typeof value !== 'string')
15
+ return value;
16
+ return value.trim() === '$' ? null : value.trim() === '*' ? '*' : value;
17
+ }
18
+ /** Source-empty accessors may retain closures over bytes the transport did not supply. */
19
+ export function materialRecordReader(store, view) {
20
+ const extractor = new EntityExtractor(store.source);
21
+ const revision = view?.getMutationRevision?.();
22
+ let model = records.get(store);
23
+ if (!model) {
24
+ model = new WeakMap();
25
+ records.set(store, model);
26
+ }
27
+ let memo = view && revision !== undefined ? model.get(view) : undefined;
28
+ if (view && revision !== undefined && memo?.revision !== revision) {
29
+ memo = { revision, rows: new Map() };
30
+ model.set(view, memo);
31
+ }
32
+ return id => {
33
+ if (view?.isDeleted(id))
34
+ return null;
35
+ if (memo?.rows.has(id))
36
+ return memo.rows.get(id) ?? null;
37
+ const created = view?.getNewEntity ? view.getNewEntity(id) : view?.getNewEntities().find(row => row.expressId === id);
38
+ // Old source-backed store facades expose indexed bytes without a getEntity accessor.
39
+ // @raw-entity-enumeration-ok point lookup of one requested material/property record
40
+ const ref = store.entityIndex.byId.get(id) ?? store.deferredEntityIndex?.get(id);
41
+ const source = !store.source?.length ? null : typeof store.getEntity === 'function'
42
+ ? store.getEntity(id) : ref ? extractor.extractEntity(ref) : null;
43
+ const base = created ?? source;
44
+ if (!base?.attributes)
45
+ return null;
46
+ const row = resolveEffectiveEntityRecord({ type: base.type, attributes: created ? base.attributes.map(writtenMarker) : base.attributes }, {
47
+ retype: view?.getTypeMutations?.().get(id)?.newType,
48
+ named: view?.getAttributeMutationsForEntity?.(id).map(edit => [edit.name, edit.value === '$' ? null : edit.value]) ?? [],
49
+ positional: [...(view?.getPositionalMutationsForEntity?.(id) ?? [])].map(([index, value]) => [index, writtenMarker(value)]),
50
+ }, store.schemaVersion);
51
+ row.attributes = row.attributes.map(value => Array.isArray(value) ? value.map(member => parsedWriteValue(member)) : parsedWriteValue(value));
52
+ memo?.rows.set(id, row);
53
+ return row;
54
+ };
55
+ }
56
+ const edgesCache = new WeakMap();
57
+ const relTypes = ['IFCRELASSOCIATESMATERIAL', 'IFCRELDEFINESBYTYPE'];
58
+ function materialEdges(store, view) {
59
+ const revision = view.getMutationRevision?.();
60
+ const cached = edgesCache.get(store)?.get(view);
61
+ if (revision !== undefined && cached?.revision === revision)
62
+ return cached.data;
63
+ // Source relationship records feed the canonical schema-derived endpoint reader.
64
+ // @raw-entity-enumeration-ok canonical effective relationship inventory once per model/view revision
65
+ const ids = relTypes.flatMap(type => store.entityIndex.byType.get(type) ?? []);
66
+ for (const [id, mutation] of view.getTypeMutations?.() ?? []) {
67
+ const sourceType = store.entityIndex.byId.get(id)?.type ?? store.deferredEntityIndex?.get(id)?.type;
68
+ if (relTypes.includes(mutation.newType.toUpperCase()) || (sourceType && relTypes.includes(sourceType.toUpperCase())))
69
+ ids.push(id);
70
+ }
71
+ const sourceAvailable = Boolean(store.source?.length);
72
+ const overlay = resolveEffectiveRelationshipOverlay(sourceAvailable ? store : { ...store, getEntity: () => null }, {
73
+ createdEntities: () => view.getNewEntities().filter(row => row.attributes !== undefined)
74
+ .map(row => ({ ...row, attributes: [...row.attributes] })),
75
+ mutatedEntityIds: () => ids,
76
+ namedAttributes: id => view.getAttributeMutationsForEntity?.(id).map(edit => [edit.name, edit.value]) ?? [],
77
+ positionalAttributes: id => view.getPositionalMutationsForEntity?.(id) ?? [],
78
+ entityType: id => view.getTypeMutations?.().get(id)?.newType,
79
+ isDeleted: id => view.isDeleted(id),
80
+ });
81
+ const own = new Map(), types = new Map();
82
+ for (const relation of [...overlay.relationships].sort((a, b) => a.relationshipId - b.relationshipId)) {
83
+ const target = relation.relationshipType.toUpperCase() === relTypes[0] ? own
84
+ : relation.relationshipType.toUpperCase() === relTypes[1] ? types : null;
85
+ if (!target)
86
+ continue;
87
+ for (const recipient of relation.related) {
88
+ if (view.isDeleted(recipient))
89
+ continue;
90
+ const values = target.get(recipient) ?? [];
91
+ for (const id of relation.relating)
92
+ if (!view.isDeleted(id) && !values.includes(id))
93
+ values.push(id);
94
+ target.set(recipient, values);
95
+ }
96
+ }
97
+ const relevant = new Set(ids);
98
+ const unavailable = !sourceAvailable && (view.getEffectiveChanges?.().some(edit => relevant.has(edit.entityId))
99
+ ?? ids.some(id => view.isDeleted(id) || Boolean(view.getAttributeMutationsForEntity?.(id).length) || Boolean(view.getPositionalMutationsForEntity?.(id)?.size)));
100
+ const data = { own, types, unavailable };
101
+ if (revision !== undefined) {
102
+ let model = edgesCache.get(store);
103
+ if (!model) {
104
+ model = new WeakMap();
105
+ edgesCache.set(store, model);
106
+ }
107
+ model.set(view, { revision, data });
108
+ }
109
+ return data;
110
+ }
111
+ /** Known full membership requires a graph, or a proven overriding occurrence list. */
112
+ export function materialAssignmentState(store, entityId, view) {
113
+ const baseId = view?.resolveBaseEntityId?.(entityId) ?? entityId;
114
+ const subjects = [...new Set([baseId, entityId])];
115
+ const current = view ? materialEdges(store, view) : null;
116
+ const hasSource = Boolean(store.source?.length);
117
+ const original = (id, kind) => {
118
+ return kind === 'own' ? resolveOwnMaterialDefIds(store, id)
119
+ : store.relationships?.getRelated(id, RelationshipType.DefinesByType, 'inverse') ?? [];
120
+ };
121
+ const read = (id, kind) => {
122
+ const edited = current?.[kind].get(id) ?? [];
123
+ if (current && hasSource)
124
+ return edited;
125
+ return [...new Set([...original(id, kind), ...edited])];
126
+ };
127
+ let ownerId = baseId, defIds = [...new Set(subjects.flatMap(id => read(id, 'own')))];
128
+ if (!defIds.length) {
129
+ for (const typeId of subjects.flatMap(id => read(id, 'types'))) {
130
+ const associated = read(typeId, 'own');
131
+ if (associated.length) {
132
+ ownerId = typeId;
133
+ defIds = associated;
134
+ break;
135
+ }
136
+ }
137
+ }
138
+ const known = Boolean(store.relationships) || subjects.some(id => (store.onDemandMaterialMap?.get(id)?.length ?? 0) > 0)
139
+ || Boolean(current && hasSource);
140
+ return { ownerId, defIds, complete: known && !current?.unavailable };
141
+ }
142
+ /** Whether the supplied model can prove the selected element’s complete material membership. */
143
+ export function materialAssignmentsAvailable(store, entityId, view) {
144
+ return materialAssignmentState(store, entityId, view).complete;
145
+ }
146
+ //# sourceMappingURL=material-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-overlay.js","sourceRoot":"","sources":["../src/material-overlay.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type EffectiveEntityOverlay } from '@ifc-lite/data';
2
1
  import type { IfcDataStore } from './columnar-parser.js';
3
2
  import { type ExtractedProperty } from './property-value-parser.js';
3
+ import { type MaterialReadView } from './material-overlay.js';
4
4
  export interface MaterialPsetGroup {
5
5
  materialId: number;
6
6
  materialName: string;
@@ -10,16 +10,7 @@ export interface MaterialPsetGroup {
10
10
  }>;
11
11
  }
12
12
  /** Structural overlay shape accepted by live on-demand parser reads. */
13
- export interface MaterialPropertiesView extends EffectiveEntityOverlay {
14
- getNewEntity?(expressId: number): {
15
- readonly type: string;
16
- readonly attributes?: readonly unknown[];
17
- } | null;
18
- getPositionalMutationsForEntity?(expressId: number): ReadonlyMap<number, unknown> | null;
19
- getAttributeMutationsForEntity?(expressId: number): ReadonlyArray<{
20
- name: string;
21
- value: string;
22
- }>;
13
+ export interface MaterialPropertiesView extends MaterialReadView {
23
14
  }
24
15
  /**
25
16
  * Material property sets associated with a selected element, resolved through
@@ -1 +1 @@
1
- {"version":3,"file":"material-properties-extractor.d.ts","sourceRoot":"","sources":["../src/material-properties-extractor.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAuE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIzI,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;KAAE,CAAC,CAAC;CACxE;AAeD,wEAAwE;AACxE,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,YAAY,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7G,+BAA+B,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzF,8BAA8B,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtG;AA0KD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAUrK;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAG5K"}
1
+ {"version":3,"file":"material-properties-extractor.d.ts","sourceRoot":"","sources":["../src/material-properties-extractor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAuE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGzI,OAAO,EAAiD,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE7G,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;KAAE,CAAC,CAAC;CACxE;AAeD,wEAAwE;AACxE,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;CAAG;AA0JnE;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAUrK;AAED;;;;GAIG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,sBAAsB,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAG5K"}
@@ -2,10 +2,11 @@
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 { EntityExtractor } from './entity-extractor.js';
5
+ import { getReference } from './attribute-helpers.js';
5
6
  import { iterateEffectiveEntities } from '@ifc-lite/data';
6
- import { getAttributeNames, normalizeIfcTypeName } from './ifc-schema.js';
7
7
  import { copyParsedExtras, parsePropertyValue, parsePropertyValueWithComplex } from './property-value-parser.js';
8
- import { resolveAllMaterialDefIds, collectMaterialLeaves, getMaterialDisplay } from './material-resolver.js';
8
+ import { collectMaterialLeaves, getMaterialDisplay } from './material-resolver.js';
9
+ import { materialAssignmentState, materialRecordReader } from './material-overlay.js';
9
10
  const materialPropertyIndexCache = new WeakMap();
10
11
  const materialPropertyOverlayCache = new WeakMap();
11
12
  /** Resolve an entity ref from the primary index, falling back to deferred atoms. */
@@ -40,10 +41,11 @@ function readMaterialPropsEntity(typeKey, attrs, entityType) {
40
41
  else {
41
42
  return null; // typed IFC2x3 scalar subtype — no generic property list
42
43
  }
43
- if (typeof materialId !== 'number' || !Array.isArray(propsList))
44
+ const resolvedMaterialId = getReference(materialId);
45
+ if (resolvedMaterialId === undefined || !Array.isArray(propsList))
44
46
  return null;
45
47
  const psetName = typeof name === 'string' && name ? name : (entityType || 'Material Properties');
46
- return { materialId, propsList, psetName };
48
+ return { materialId: resolvedMaterialId, propsList, psetName };
47
49
  }
48
50
  /**
49
51
  * Build (and memoise) the model-wide map of materialId -> property sets defined
@@ -52,6 +54,7 @@ function readMaterialPropsEntity(typeKey, attrs, entityType) {
52
54
  * scanning every *MaterialProperties entity once.
53
55
  */
54
56
  function getMaterialPropertyIndex(store, view, revision) {
57
+ revision = view?.getMutationRevision?.() ?? revision;
55
58
  const overlayCache = view ? materialPropertyOverlayCache.get(store) : undefined;
56
59
  const cached = view
57
60
  ? revision === undefined ? undefined : overlayCache?.get(view)?.revision === revision
@@ -78,35 +81,14 @@ function getMaterialPropertyIndex(store, view, revision) {
78
81
  if (wantedTypes.includes(mutation.newType.toUpperCase()))
79
82
  sourceIds.add(id);
80
83
  }
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 };
84
+ const read = materialRecordReader(store, view);
85
+ const readEffective = (id) => {
86
+ const record = read(id);
87
+ return record ? { expressId: id, type: record.type, attributes: record.attributes } : undefined;
106
88
  };
107
89
  for (const row of iterateEffectiveEntities(store, view, wantedTypes, sourceIds)) {
108
90
  const matPropsId = row.expressId;
109
- const entity = readEffective(matPropsId, row.type);
91
+ const entity = readEffective(matPropsId);
110
92
  const attrs = entity?.attributes;
111
93
  if (!attrs)
112
94
  continue;
@@ -114,8 +96,9 @@ function getMaterialPropertyIndex(store, view, revision) {
114
96
  if (!parsed)
115
97
  continue;
116
98
  const properties = [];
117
- for (const propRef of parsed.propsList) {
118
- if (typeof propRef !== 'number')
99
+ for (const member of parsed.propsList) {
100
+ const propRef = getReference(member);
101
+ if (propRef === undefined)
119
102
  continue;
120
103
  if (view?.isDeleted(propRef))
121
104
  continue;
@@ -125,14 +108,14 @@ function getMaterialPropertyIndex(store, view, revision) {
125
108
  ?? view?.getNewEntity?.(propRef)?.type;
126
109
  if (!propType)
127
110
  continue;
128
- const propEntity = readEffective(propRef, propType);
111
+ const propEntity = readEffective(propRef);
129
112
  if (!propEntity)
130
113
  continue;
131
114
  const propAttrs = propEntity.attributes || [];
132
115
  const propName = typeof propAttrs[0] === 'string' ? propAttrs[0] : '';
133
116
  if (!propName)
134
117
  continue;
135
- const pv = propRefEntity
118
+ const pv = propRefEntity && store.source?.length
136
119
  ? parsePropertyValueWithComplex(store, extractor, propEntity)
137
120
  : parsePropertyValue(propEntity);
138
121
  const entry = {
@@ -178,7 +161,7 @@ function buildMaterialPsetGroups(store, materialIds, view, revision) {
178
161
  const entries = index.get(matId);
179
162
  if (!entries || entries.length === 0)
180
163
  continue;
181
- const { name } = getMaterialDisplay(store, matId);
164
+ const { name } = getMaterialDisplay(store, matId, view);
182
165
  groups.push({
183
166
  materialId: matId,
184
167
  materialName: name,
@@ -196,12 +179,12 @@ function buildMaterialPsetGroups(store, materialIds, view, revision) {
196
179
  export function extractMaterialPropertiesOnDemand(store, entityId, view, revision) {
197
180
  // Every association, not just the primary — psets on a second
198
181
  // IfcRelAssociatesMaterial's definition were previously invisible.
199
- const defIds = resolveAllMaterialDefIds(store, entityId);
182
+ const { defIds } = materialAssignmentState(store, entityId, view);
200
183
  if (defIds.length === 0)
201
184
  return [];
202
185
  const ids = [];
203
186
  for (const defId of defIds) {
204
- ids.push(defId, ...collectMaterialLeaves(store, defId).map((l) => l.id));
187
+ ids.push(defId, ...collectMaterialLeaves(store, defId, view).map((l) => l.id));
205
188
  }
206
189
  return buildMaterialPsetGroups(store, ids, view, revision);
207
190
  }
@@ -211,7 +194,7 @@ export function extractMaterialPropertiesOnDemand(store, entityId, view, revisio
211
194
  * definition, those of its member materials.
212
195
  */
213
196
  export function extractMaterialPropertiesForMaterialId(store, materialId, view, revision) {
214
- const leafIds = collectMaterialLeaves(store, materialId).map((l) => l.id);
197
+ const leafIds = collectMaterialLeaves(store, materialId, view).map((l) => l.id);
215
198
  return buildMaterialPsetGroups(store, [materialId, ...leafIds], view, revision);
216
199
  }
217
200
  //# sourceMappingURL=material-properties-extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"material-properties-extractor.js","sourceRoot":"","sources":["../src/material-properties-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material-properties-extractor.js","sourceRoot":"","sources":["../src/material-properties-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type MaterialReadView } from './material-overlay.js';
1
2
  import type { IfcDataStore } from './columnar-parser.js';
2
3
  export { resolveAllMaterialDefIds } from './material-associations.js';
3
4
  export interface MaterialInfo {
@@ -57,8 +58,9 @@ export interface MaterialConstituentInfo {
57
58
  * fallback IfcMaterial yield several. Order matches
58
59
  * {@link resolveAllMaterialDefIds}. Consumers that need a single value use
59
60
  * {@link extractMaterialsOnDemand} (=== element 0 here).
61
+ * An optional native view applies current assignments, aliases and material edits.
60
62
  */
61
- export declare function extractAllMaterialsOnDemand(store: IfcDataStore, entityId: number): MaterialInfo[];
63
+ export declare function extractAllMaterialsOnDemand(store: IfcDataStore, entityId: number, view?: MaterialReadView | null): MaterialInfo[];
62
64
  /**
63
65
  * Extract materials for a single entity ON-DEMAND.
64
66
  * Uses the onDemandMaterialMap built during parsing.
@@ -68,7 +70,7 @@ export declare function extractAllMaterialsOnDemand(store: IfcDataStore, entityI
68
70
  * Returns the entity's PRIMARY material (lowest-rel-express-id association);
69
71
  * use {@link extractAllMaterialsOnDemand} when every association matters.
70
72
  */
71
- export declare function extractMaterialsOnDemand(store: IfcDataStore, entityId: number): MaterialInfo | null;
73
+ export declare function extractMaterialsOnDemand(store: IfcDataStore, entityId: number, view?: MaterialReadView | null): MaterialInfo | null;
72
74
  /** A base IfcMaterial reachable from an element's material association. */
73
75
  export interface MaterialLeaf {
74
76
  /** Express id of the underlying IfcMaterial (or the definition itself when
@@ -109,7 +111,7 @@ export declare function resolveMaterialDefId(store: IfcDataStore, entityId: numb
109
111
  * leaf with weight 1. Results are memoised per (store, defId) — a type-shared
110
112
  * layer set is resolved once for the whole model.
111
113
  */
112
- export declare function collectMaterialLeaves(store: IfcDataStore, defId: number): MaterialLeaf[];
114
+ export declare function collectMaterialLeaves(store: IfcDataStore, defId: number, view?: MaterialReadView | null): MaterialLeaf[];
113
115
  /**
114
116
  * Build (and memoise) the model-wide index of base material → using elements,
115
117
  * with per-element volume weights. Element enumeration comes from the forward
@@ -123,7 +125,7 @@ export declare function collectMaterialLeaves(store: IfcDataStore, defId: number
123
125
  export declare function buildMaterialUsageIndex(store: IfcDataStore): Map<number, MaterialUsage>;
124
126
  /** Resolve a material entity's display name + IFC class for headers/labels.
125
127
  * Memoised per (store, materialId) — callers resolve many materials in a loop. */
126
- export declare function getMaterialDisplay(store: IfcDataStore, materialId: number): {
128
+ export declare function getMaterialDisplay(store: IfcDataStore, materialId: number, view?: MaterialReadView | null): {
127
129
  name: string;
128
130
  type: string;
129
131
  };
@@ -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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"}