@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,50 @@
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 { asString } from './structural-step-values.js';
5
+ import { getInheritanceChain } from './ifc-schema.js';
6
+ /** Empty result shared by the parsed and live-overlay extractor paths. */
7
+ export function emptyStructuralExtraction() {
8
+ return {
9
+ analysisModels: [], members: [], connections: [], activities: [],
10
+ loadGroups: [], resultGroups: [], hasStructural: false, loadsTruncated: false,
11
+ };
12
+ }
13
+ /** Chain marker → role. Every marker is disjoint, so match order is not load-bearing. */
14
+ const ROLE_BY_SUPERTYPE = [
15
+ ['IFCSTRUCTURALANALYSISMODEL', 'analysisModel'],
16
+ ['IFCSTRUCTURALRESULTGROUP', 'resultGroup'],
17
+ ['IFCSTRUCTURALLOADGROUP', 'loadGroup'],
18
+ ['IFCSTRUCTURALMEMBER', 'member'],
19
+ ['IFCSTRUCTURALCONNECTION', 'connection'],
20
+ ['IFCSTRUCTURALACTIVITY', 'activity'],
21
+ ];
22
+ /**
23
+ * Classify by inheritance, not by name. Unrelated `IFCSTRUCTURAL*` entities
24
+ * such as load leaves and profile properties are intentionally skipped.
25
+ */
26
+ export function structuralRoleOf(type) {
27
+ const chain = getInheritanceChain(type).map((c) => c.toUpperCase());
28
+ for (const [marker, role] of ROLE_BY_SUPERTYPE) {
29
+ if (chain.includes(marker))
30
+ return role;
31
+ }
32
+ return undefined;
33
+ }
34
+ export function structuralActivityKind(type) {
35
+ const chain = getInheritanceChain(type).map((c) => c.toUpperCase());
36
+ if (chain.includes('IFCSTRUCTURALACTION'))
37
+ return 'Action';
38
+ if (chain.includes('IFCSTRUCTURALREACTION'))
39
+ return 'Reaction';
40
+ return 'Unknown';
41
+ }
42
+ /** IfcRoot attribute 2 is Name, 3 Description; IfcObject adds ObjectType at 4. */
43
+ export function structuralRootFields(e) {
44
+ return {
45
+ name: asString(e.attrs[2]),
46
+ description: asString(e.attrs[3]),
47
+ objectType: asString(e.attrs[4]),
48
+ };
49
+ }
50
+ //# sourceMappingURL=structural-extractor-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-extractor-values.js","sourceRoot":"","sources":["../src/structural-extractor-values.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,QAAQ,EAAkB,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAWtD,0EAA0E;AAC1E,MAAM,UAAU,yBAAyB;IACvC,OAAO;QACL,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE;QAChE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK;KAC9E,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,MAAM,iBAAiB,GAAqD;IAC1E,CAAC,4BAA4B,EAAE,eAAe,CAAC;IAC/C,CAAC,0BAA0B,EAAE,aAAa,CAAC;IAC3C,CAAC,wBAAwB,EAAE,WAAW,CAAC;IACvC,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IACjC,CAAC,yBAAyB,EAAE,YAAY,CAAC;IACzC,CAAC,uBAAuB,EAAE,UAAU,CAAC;CACtC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3D,IAAI,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,UAAU,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,CAAY;IAK/C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -1,9 +1,24 @@
1
+ import { type EffectiveEntityOverlay } from '@ifc-lite/data';
1
2
  import type { IfcDataStore } from './columnar-parser.js';
2
3
  import { type BoundaryConditionInfo, type StructuralLoadConfigurationEntry, type StructuralLoadConfigurationInfo, type StructuralLoadDropReason, type StructuralLoadInfo } from './structural-load-extractor.js';
4
+ import { type RawEntity } from './structural-step-values.js';
3
5
  import type { StructuralActivityInfo, StructuralAnalysisModelInfo, StructuralConnectionInfo, StructuralExtraction, StructuralLoadGroupInfo, StructuralMemberInfo, StructuralResultGroupInfo } from './structural-types.js';
4
6
  export type { BoundaryConditionInfo, StructuralActivityInfo, StructuralAnalysisModelInfo, StructuralConnectionInfo, StructuralExtraction, StructuralLoadConfigurationEntry, StructuralLoadConfigurationInfo, StructuralLoadDropReason, StructuralLoadGroupInfo, StructuralLoadInfo, StructuralMemberInfo, StructuralResultGroupInfo, };
7
+ /** Optional live-session view used when structural data is queried in the viewer. */
8
+ export interface StructuralExtractionView extends EffectiveEntityOverlay {
9
+ getNewEntity?(expressId: number): {
10
+ readonly type: string;
11
+ readonly attributes?: readonly unknown[];
12
+ } | null;
13
+ /**
14
+ * Resolve the attributes for an effective entity. `source` is absent for a
15
+ * session-created entity. Callers can merge positional/named edits without
16
+ * making parser depend on the mutations package.
17
+ */
18
+ readEntity?: (expressId: number, effectiveType: string, source?: RawEntity) => RawEntity | undefined;
19
+ }
5
20
  /**
6
21
  * Extract all structural analysis data from a parsed IFC store.
7
22
  */
8
- export declare function extractStructuralOnDemand(store: IfcDataStore): StructuralExtraction;
23
+ export declare function extractStructuralOnDemand(store: IfcDataStore, view?: StructuralExtractionView | null): StructuralExtraction;
9
24
  //# sourceMappingURL=structural-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"structural-extractor.d.ts","sourceRoot":"","sources":["../src/structural-extractor.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AAcxC,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EAChC,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC;AAmEF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,oBAAoB,CAkOnF"}
1
+ {"version":3,"file":"structural-extractor.d.ts","sourceRoot":"","sources":["../src/structural-extractor.ts"],"names":[],"mappings":"AAyCA,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAUL,KAAK,SAAS,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAS/B,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,EAChC,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,CAAC;AAEF,qFAAqF;AACrF,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,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;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC;CACtG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,EACnB,IAAI,CAAC,EAAE,wBAAwB,GAAG,IAAI,GACrC,oBAAoB,CA0QtB"}
@@ -37,92 +37,88 @@
37
37
  * here; a 2X3-only attribute reads as absent rather than as the wrong slot.
38
38
  */
39
39
  import { EntityExtractor } from './entity-extractor.js';
40
- import { getInheritanceChain } from './ifc-schema.js';
40
+ import { iterateEffectiveEntities } from '@ifc-lite/data';
41
+ import { normalizeIfcTypeName } from './ifc-schema.js';
41
42
  import { extractBoundaryCondition, extractStructuralLoad, } from './structural-load-extractor.js';
42
- import { addUnique, asBoolean, asEnum, asNumber, asNumberList, asRef, asRefList, asString, readAttr, readEntities, } from './structural-step-values.js';
43
- function emptyExtraction() {
44
- return {
45
- analysisModels: [],
46
- members: [],
47
- connections: [],
48
- activities: [],
49
- loadGroups: [],
50
- resultGroups: [],
51
- hasStructural: false,
52
- loadsTruncated: false,
53
- };
54
- }
55
- /** Chain marker → role. Every marker is disjoint, so match order is not load-bearing. */
56
- const ROLE_BY_SUPERTYPE = [
57
- ['IFCSTRUCTURALANALYSISMODEL', 'analysisModel'],
58
- ['IFCSTRUCTURALRESULTGROUP', 'resultGroup'],
59
- ['IFCSTRUCTURALLOADGROUP', 'loadGroup'],
60
- ['IFCSTRUCTURALMEMBER', 'member'],
61
- ['IFCSTRUCTURALCONNECTION', 'connection'],
62
- ['IFCSTRUCTURALACTIVITY', 'activity'],
63
- ];
64
- /**
65
- * Classify a concrete type by inheritance, not by name. Returns undefined for
66
- * an `IFCSTRUCTURAL*` type that is none of the six roles — `IfcStructuralLoad`
67
- * leaves and `IfcStructuralProfileProperties` reach here and are read through
68
- * their owners instead.
69
- */
70
- function roleOf(type) {
71
- const chain = getInheritanceChain(type).map((c) => c.toUpperCase());
72
- for (const [marker, role] of ROLE_BY_SUPERTYPE) {
73
- if (chain.includes(marker))
74
- return role;
75
- }
76
- return undefined;
77
- }
78
- function activityKind(type) {
79
- const chain = getInheritanceChain(type).map((c) => c.toUpperCase());
80
- if (chain.includes('IFCSTRUCTURALACTION'))
81
- return 'Action';
82
- if (chain.includes('IFCSTRUCTURALREACTION'))
83
- return 'Reaction';
84
- return 'Unknown';
85
- }
86
- /** IfcRoot attribute 2 is Name, 3 Description; IfcObject adds ObjectType at 4. */
87
- function rootFields(e) {
88
- return {
89
- name: asString(e.attrs[2]),
90
- description: asString(e.attrs[3]),
91
- objectType: asString(e.attrs[4]),
92
- };
93
- }
43
+ import { addUnique, asBoolean, asEnum, asNumber, asNumberList, asRef, asRefList, asString, readAttr, } from './structural-step-values.js';
44
+ import { emptyStructuralExtraction as emptyExtraction, structuralActivityKind as activityKind, structuralRoleOf as roleOf, structuralRootFields as rootFields, } from './structural-extractor-values.js';
94
45
  /**
95
46
  * Extract all structural analysis data from a parsed IFC store.
96
47
  */
97
- export function extractStructuralOnDemand(store) {
98
- if (!store.source?.length)
48
+ export function extractStructuralOnDemand(store, view) {
49
+ if (!store.source?.length && !view)
99
50
  return emptyExtraction();
51
+ // @raw-entity-enumeration-ok source buckets define the candidate domain; iterateEffectiveEntities below applies tombstones, creations and retypes
100
52
  const byType = store.entityIndex.byType;
101
- // Partition every IFCSTRUCTURAL* type present into the six roles.
102
- const idsByRole = new Map();
53
+ // Candidate source ids are the structural classes plus the three relation
54
+ // classes below. The effective iterator removes tombstones and folds in
55
+ // created and retyped records before the extractor reads their attributes.
56
+ const sourceIds = new Set();
103
57
  for (const [typeKey, ids] of byType) {
104
58
  if (!typeKey.startsWith('IFCSTRUCTURAL'))
105
59
  continue;
106
60
  const role = roleOf(typeKey);
107
61
  if (!role)
108
62
  continue;
109
- const bucket = idsByRole.get(role);
110
- if (bucket)
111
- bucket.push(...ids);
112
- else
113
- idsByRole.set(role, [...ids]);
63
+ for (const id of ids)
64
+ sourceIds.add(id);
65
+ }
66
+ const relationIds = new Set([
67
+ ...(byType.get('IFCRELCONNECTSSTRUCTURALMEMBER') ?? []),
68
+ ...(byType.get('IFCRELCONNECTSSTRUCTURALACTIVITY') ?? []),
69
+ ...(byType.get('IFCRELASSIGNSTOGROUP') ?? []),
70
+ ]);
71
+ for (const id of relationIds)
72
+ sourceIds.add(id);
73
+ for (const [id, mutation] of view?.getTypeMutations?.() ?? []) {
74
+ if (roleOf(mutation.newType) || mutation.newType.toUpperCase().startsWith('IFCRELCONNECTSSTRUCTURAL') || mutation.newType.toUpperCase() === 'IFCRELASSIGNSTOGROUP') {
75
+ sourceIds.add(id);
76
+ }
114
77
  }
115
- const relMemberIds = byType.get('IFCRELCONNECTSSTRUCTURALMEMBER') ?? [];
116
- const relActivityIds = byType.get('IFCRELCONNECTSSTRUCTURALACTIVITY') ?? [];
117
- const relGroupIds = byType.get('IFCRELASSIGNSTOGROUP') ?? [];
118
- // Behaviour-neutral early-out, not a guard: with no structural entity the
119
- // passes below already produce an empty extraction. It exists so the common
120
- // case — a model with no structural analysis at all — never constructs an
121
- // EntityExtractor over the whole source buffer.
122
- if (idsByRole.size === 0)
78
+ const effectiveRows = [...iterateEffectiveEntities(store, view, undefined, sourceIds)];
79
+ // Preserve the common no-structural-data path without setting up a source
80
+ // extractor. Created/retyped structural entities are already in this set.
81
+ if (!effectiveRows.some((row) => roleOf(row.type)))
123
82
  return emptyExtraction();
124
83
  const extractor = new EntityExtractor(store.source);
125
- const read = (role) => readEntities(extractor, store, idsByRole.get(role) ?? []);
84
+ const effectiveTypeById = new Map(effectiveRows.map((row) => [row.expressId, row.type]));
85
+ const readRaw = (id, effectiveType) => {
86
+ // @raw-entity-enumeration-ok the effective iterator chose this one record; source bytes supply its baseline attributes
87
+ const ref = store.entityIndex.byId.get(id) ?? store.deferredEntityIndex?.get(id);
88
+ const entity = ref ? extractor.extractEntity(ref) : undefined;
89
+ const created = !entity ? view?.getNewEntity?.(id) : null;
90
+ const source = entity ? {
91
+ expressId: id,
92
+ type: normalizeIfcTypeName(effectiveType),
93
+ attrs: entity.attributes ?? [],
94
+ globalId: asString(entity.attributes?.[0]) ?? '',
95
+ } : created ? {
96
+ expressId: id,
97
+ type: normalizeIfcTypeName(effectiveType),
98
+ attrs: [...(created.attributes ?? [])],
99
+ globalId: asString(created.attributes?.[0]) ?? '',
100
+ } : undefined;
101
+ return view?.readEntity?.(id, effectiveType, source) ?? source;
102
+ };
103
+ const activeByRole = new Map();
104
+ const relMemberIds = [];
105
+ const relActivityIds = [];
106
+ const relGroupIds = [];
107
+ for (const row of effectiveRows) {
108
+ const role = roleOf(row.type);
109
+ if (role) {
110
+ const ids = activeByRole.get(role) ?? [];
111
+ ids.push(row.expressId);
112
+ activeByRole.set(role, ids);
113
+ }
114
+ if (row.type === 'IFCRELCONNECTSSTRUCTURALMEMBER')
115
+ relMemberIds.push(row.expressId);
116
+ if (row.type === 'IFCRELCONNECTSSTRUCTURALACTIVITY')
117
+ relActivityIds.push(row.expressId);
118
+ if (row.type === 'IFCRELASSIGNSTOGROUP')
119
+ relGroupIds.push(row.expressId);
120
+ }
121
+ const read = (role) => (activeByRole.get(role) ?? []).map((id) => readRaw(id, effectiveTypeById.get(id))).filter((row) => !!row);
126
122
  const memberRaw = read('member');
127
123
  const connectionRaw = read('connection');
128
124
  const activityRaw = read('activity');
@@ -146,7 +142,7 @@ export function extractStructuralOnDemand(store) {
146
142
  // ── Relationship passes ────────────────────────────────────────────────
147
143
  const connectionsOfMember = new Map();
148
144
  const membersOfConnection = new Map();
149
- for (const rel of readEntities(extractor, store, relMemberIds)) {
145
+ for (const rel of relMemberIds.map((id) => readRaw(id, 'IFCRELCONNECTSSTRUCTURALMEMBER')).filter((row) => !!row)) {
150
146
  const memberId = asRef(readAttr(rel.type, rel.attrs, 'RelatingStructuralMember'));
151
147
  const connectionId = asRef(readAttr(rel.type, rel.attrs, 'RelatedStructuralConnection'));
152
148
  if (memberId === undefined || connectionId === undefined)
@@ -161,7 +157,7 @@ export function extractStructuralOnDemand(store) {
161
157
  const activitiesOfItem = new Map();
162
158
  /** activity expressId → the item globalId it applies to. */
163
159
  const itemOfActivity = new Map();
164
- for (const rel of readEntities(extractor, store, relActivityIds)) {
160
+ for (const rel of relActivityIds.map((id) => readRaw(id, 'IFCRELCONNECTSSTRUCTURALACTIVITY')).filter((row) => !!row)) {
165
161
  const itemId = asRef(readAttr(rel.type, rel.attrs, 'RelatingElement'));
166
162
  const activityId = asRef(readAttr(rel.type, rel.attrs, 'RelatedStructuralActivity'));
167
163
  if (itemId === undefined || activityId === undefined)
@@ -177,7 +173,7 @@ export function extractStructuralOnDemand(store) {
177
173
  // only the rows whose RelatingGroup is a structural group are read.
178
174
  const groupsOfObject = new Map();
179
175
  const objectsOfGroup = new Map();
180
- for (const rel of readEntities(extractor, store, relGroupIds)) {
176
+ for (const rel of relGroupIds.map((id) => readRaw(id, 'IFCRELASSIGNSTOGROUP')).filter((row) => !!row)) {
181
177
  const groupId = asRef(readAttr(rel.type, rel.attrs, 'RelatingGroup'));
182
178
  if (groupId === undefined)
183
179
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"structural-extractor.js","sourceRoot":"","sources":["../src/structural-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structural-extractor.js","sourceRoot":"","sources":["../src/structural-extractor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/parser",
3
- "version": "8.2.0",
3
+ "version": "9.1.0",
4
4
  "description": "IFC/STEP parser for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,15 +20,15 @@
20
20
  "decimal.js": "^10.6.0",
21
21
  "fflate": "^0.8.3",
22
22
  "jszip": "^3.10.2",
23
- "@ifc-lite/data": "^5.3.0",
24
- "@ifc-lite/encoding": "^2.2.0",
25
- "@ifc-lite/ifcx": "^4.2.0",
26
- "@ifc-lite/wasm": "^10.1.0",
23
+ "@ifc-lite/encoding": "^2.3.0",
24
+ "@ifc-lite/data": "^6.1.0",
25
+ "@ifc-lite/ifcx": "^4.3.0",
26
+ "@ifc-lite/wasm": "^10.2.0",
27
27
  "@ifc-lite/wasm-lifecycle": "^0.2.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "^6.0.3",
31
- "vitest": "^5.0.1"
31
+ "vitest": "^5.0.2"
32
32
  },
33
33
  "license": "MPL-2.0",
34
34
  "author": "Louis True",