@ifc-lite/parser 7.1.0 → 8.2.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/attribute-helpers.d.ts +23 -5
- package/dist/attribute-helpers.d.ts.map +1 -1
- package/dist/attribute-helpers.js +74 -13
- package/dist/attribute-helpers.js.map +1 -1
- package/dist/classification-resolver.d.ts.map +1 -1
- package/dist/classification-resolver.js +42 -6
- package/dist/classification-resolver.js.map +1 -1
- package/dist/columnar-parser-attributes.d.ts +1 -1
- package/dist/columnar-parser-attributes.d.ts.map +1 -1
- package/dist/columnar-parser-attributes.js +36 -1
- package/dist/columnar-parser-attributes.js.map +1 -1
- package/dist/columnar-parser-indexes.d.ts.map +1 -1
- package/dist/columnar-parser-indexes.js +24 -1
- package/dist/columnar-parser-indexes.js.map +1 -1
- package/dist/columnar-parser-relationships.d.ts +2 -1
- package/dist/columnar-parser-relationships.d.ts.map +1 -1
- package/dist/columnar-parser-relationships.js +2 -2
- package/dist/columnar-parser-relationships.js.map +1 -1
- package/dist/columnar-parser-root-attributes.d.ts.map +1 -1
- package/dist/columnar-parser-root-attributes.js +3 -0
- package/dist/columnar-parser-root-attributes.js.map +1 -1
- package/dist/columnar-parser.d.ts +4 -11
- package/dist/columnar-parser.d.ts.map +1 -1
- package/dist/columnar-parser.js +24 -11
- package/dist/columnar-parser.js.map +1 -1
- package/dist/cost-extractor.js +2 -2
- package/dist/cost-extractor.js.map +1 -1
- package/dist/cost-overlay.d.ts +34 -2
- package/dist/cost-overlay.d.ts.map +1 -1
- package/dist/cost-reader.d.ts +10 -0
- package/dist/cost-reader.d.ts.map +1 -1
- package/dist/cost-reader.js +82 -17
- package/dist/cost-reader.js.map +1 -1
- package/dist/cost.d.ts +1 -1
- package/dist/cost.d.ts.map +1 -1
- package/dist/data-store-transport.d.ts.map +1 -1
- package/dist/data-store-transport.js +8 -0
- package/dist/data-store-transport.js.map +1 -1
- package/dist/effective-entity-record.d.ts +35 -0
- package/dist/effective-entity-record.d.ts.map +1 -0
- package/dist/effective-entity-record.js +43 -0
- package/dist/effective-entity-record.js.map +1 -0
- package/dist/effective-relationship-overlay.d.ts +31 -0
- package/dist/effective-relationship-overlay.d.ts.map +1 -0
- package/dist/effective-relationship-overlay.js +111 -0
- package/dist/effective-relationship-overlay.js.map +1 -0
- package/dist/entity-extractor.d.ts.map +1 -1
- package/dist/entity-extractor.js +33 -15
- package/dist/entity-extractor.js.map +1 -1
- package/dist/exact-relationship-edges.d.ts +46 -0
- package/dist/exact-relationship-edges.d.ts.map +1 -0
- package/dist/exact-relationship-edges.js +89 -0
- package/dist/exact-relationship-edges.js.map +1 -0
- package/dist/identity-hints.d.ts +32 -0
- package/dist/identity-hints.d.ts.map +1 -0
- package/dist/identity-hints.js +131 -0
- package/dist/identity-hints.js.map +1 -0
- package/dist/ifc-schema.d.ts +9 -0
- package/dist/ifc-schema.d.ts.map +1 -1
- package/dist/ifc-schema.js +37 -2
- package/dist/ifc-schema.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/material-resolver.d.ts +3 -0
- package/dist/material-resolver.d.ts.map +1 -1
- package/dist/material-resolver.js +6 -2
- package/dist/material-resolver.js.map +1 -1
- package/dist/on-demand-extractors.d.ts +11 -37
- package/dist/on-demand-extractors.d.ts.map +1 -1
- package/dist/on-demand-extractors.js +13 -5
- package/dist/on-demand-extractors.js.map +1 -1
- package/dist/parser.worker.d.ts.map +1 -1
- package/dist/parser.worker.js +3 -1
- package/dist/parser.worker.js.map +1 -1
- package/dist/project-units.d.ts.map +1 -1
- package/dist/project-units.js +7 -0
- package/dist/project-units.js.map +1 -1
- package/dist/property-unit.d.ts.map +1 -1
- package/dist/property-unit.js +1 -0
- package/dist/property-unit.js.map +1 -1
- package/dist/property-value-parser.d.ts +14 -18
- package/dist/property-value-parser.d.ts.map +1 -1
- package/dist/property-value-parser.js +26 -11
- package/dist/property-value-parser.js.map +1 -1
- package/dist/quantity-collect.d.ts +2 -0
- package/dist/quantity-collect.d.ts.map +1 -1
- package/dist/quantity-collect.js +2 -1
- package/dist/quantity-collect.js.map +1 -1
- package/dist/quantity-extractor.d.ts.map +1 -1
- package/dist/quantity-extractor.js +7 -5
- package/dist/quantity-extractor.js.map +1 -1
- package/dist/query-backend-maps.d.ts +5 -8
- package/dist/query-backend-maps.d.ts.map +1 -1
- package/dist/query-backend-maps.js +8 -15
- package/dist/query-backend-maps.js.map +1 -1
- package/dist/relationship-extractor.d.ts.map +1 -1
- package/dist/relationship-extractor.js +6 -4
- package/dist/relationship-extractor.js.map +1 -1
- package/dist/relationship-schema-slots.d.ts +8 -8
- package/dist/relationship-schema-slots.d.ts.map +1 -1
- package/dist/relationship-schema-slots.js +31 -18
- package/dist/relationship-schema-slots.js.map +1 -1
- package/dist/schedule-calendar-types.d.ts +2 -3
- package/dist/schedule-calendar-types.d.ts.map +1 -1
- package/dist/schedule-calendar-types.js +12 -24
- package/dist/schedule-calendar-types.js.map +1 -1
- package/dist/schedule-control-extractor.d.ts +3 -4
- package/dist/schedule-control-extractor.d.ts.map +1 -1
- package/dist/schedule-control-extractor.js +4 -7
- package/dist/schedule-control-extractor.js.map +1 -1
- package/dist/schedule-extractor.d.ts +4 -1
- package/dist/schedule-extractor.d.ts.map +1 -1
- package/dist/schedule-extractor.js +26 -43
- package/dist/schedule-extractor.js.map +1 -1
- package/dist/schedule-types.d.ts +3 -4
- package/dist/schedule-types.d.ts.map +1 -1
- package/dist/schedule-types.js +4 -10
- package/dist/schedule-types.js.map +1 -1
- package/dist/spatial-hierarchy-attributes.d.ts.map +1 -1
- package/dist/spatial-hierarchy-attributes.js +3 -0
- package/dist/spatial-hierarchy-attributes.js.map +1 -1
- package/dist/spatial-hierarchy-builder.d.ts.map +1 -1
- package/dist/spatial-hierarchy-builder.js +1 -0
- package/dist/spatial-hierarchy-builder.js.map +1 -1
- package/dist/structural-load-extractor.d.ts.map +1 -1
- package/dist/structural-load-extractor.js +2 -0
- package/dist/structural-load-extractor.js.map +1 -1
- package/dist/structural-step-values.d.ts.map +1 -1
- package/dist/structural-step-values.js +1 -0
- package/dist/structural-step-values.js.map +1 -1
- package/dist/unit-extractor.d.ts.map +1 -1
- package/dist/unit-extractor.js +6 -0
- package/dist/unit-extractor.js.map +1 -1
- package/dist/worker-index-publication.d.ts.map +1 -1
- package/dist/worker-index-publication.js +7 -0
- package/dist/worker-index-publication.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-backend-maps.js","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-backend-maps.js","sourceRoot":"","sources":["../src/query-backend-maps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"relationship-extractor.d.ts","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK1D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAyB;gBAE7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAI5C;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA6B1D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAsBtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B,OAAO,CAAC,iBAAiB;CAM1B"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
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
|
+
import { createLogger } from '@ifc-lite/data';
|
|
5
|
+
const relationshipLog = createLogger('RelationshipExtractor');
|
|
4
6
|
export class RelationshipExtractor {
|
|
5
7
|
entities;
|
|
6
8
|
constructor(entities) {
|
|
@@ -28,8 +30,8 @@ export class RelationshipExtractor {
|
|
|
28
30
|
await new Promise(resolve => setTimeout(resolve, 0));
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
relationshipLog.debug('Relationship type counts:', Object.fromEntries(typeCounts));
|
|
34
|
+
relationshipLog.debug('Successfully extracted:', relationships.length);
|
|
33
35
|
return relationships;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
@@ -48,8 +50,8 @@ export class RelationshipExtractor {
|
|
|
48
50
|
relationships.push(rel);
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
relationshipLog.debug('Relationship type counts:', Object.fromEntries(typeCounts));
|
|
54
|
+
relationshipLog.debug('Successfully extracted:', relationships.length);
|
|
53
55
|
return relationships;
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-extractor.js","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"relationship-extractor.js","sourceRoot":"","sources":["../src/relationship-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
* at all (the hand-written gate sets in `columnar-parser-indexes.ts`).
|
|
11
11
|
*
|
|
12
12
|
* This module derives the same information from the codegen-generated
|
|
13
|
-
* schema registries instead:
|
|
14
|
-
*
|
|
15
|
-
* `RelatedY` (a single reference or a list)
|
|
16
|
-
*
|
|
13
|
+
* schema registries instead: EXPRESS `IfcRelationship` subtypes normally
|
|
14
|
+
* name their two graph-relevant attributes `RelatingX` (a single reference)
|
|
15
|
+
* and `RelatedY` (a single reference or a list). IFC2X3 IfcRelCoversSpaces
|
|
16
|
+
* predates that naming pair but still declares two ordered reference slots,
|
|
17
|
+
* which the same schema walk can derive. Walking
|
|
17
18
|
* `allAttributes` (root → leaf, the same order the STEP file writes them
|
|
18
19
|
* in) and picking out the first `Relating*`/`Related*` attribute whose
|
|
19
20
|
* EXPRESS type is an entity or a select (never an enum or a defined
|
|
@@ -45,11 +46,10 @@ export interface RelationshipSlotPlan {
|
|
|
45
46
|
* The relating/related attribute slots for a STEP relationship keyword
|
|
46
47
|
* (e.g. `'IFCRELASSIGNSTOACTOR'`), or `undefined` if the type is unknown to
|
|
47
48
|
* every bundled schema, or is an `IfcRelationship` subtype whose layout
|
|
48
|
-
* this convention-based walk cannot resolve (
|
|
49
|
-
*
|
|
50
|
-
* `relationship-schema-slots.test.ts`).
|
|
49
|
+
* this convention-based walk cannot resolve (only the non-binary, concrete
|
|
50
|
+
* IFC2X3 base IfcRelAssociates — see `relationship-schema-slots.test.ts`).
|
|
51
51
|
*/
|
|
52
|
-
export declare function getRelationshipSlotPlan(typeUpper: string): RelationshipSlotPlan | undefined;
|
|
52
|
+
export declare function getRelationshipSlotPlan(typeUpper: string, schemaVersion?: SchemaVersionWithRegistry | string): RelationshipSlotPlan | undefined;
|
|
53
53
|
/** Every concrete (non-abstract) `IfcRelationship` subtype STEP keyword in
|
|
54
54
|
* one schema version, upper-cased. */
|
|
55
55
|
export declare function getConcreteRelationshipTypes(version: SchemaVersionWithRegistry): ReadonlySet<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-schema-slots.d.ts","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"relationship-schema-slots.d.ts","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAEH,KAAK,yBAAyB,EAEjC,MAAM,2CAA2C,CAAC;AAEnD,iEAAiE;AACjE,MAAM,WAAW,gBAAgB;IAC7B;;iDAE6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;;;6DAGyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACnB;AAED;6EAC6E;AAC7E,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC7B;AAqGD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,yBAAyB,GAAG,MAAM,GACnD,oBAAoB,GAAG,SAAS,CAkBlC;AAeD;uCACuC;AACvC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,yBAAyB,GAAG,WAAW,CAAC,MAAM,CAAC,CAWpG;AAID;;;;;GAKG;AACH,wBAAgB,+BAA+B,IAAI,WAAW,CAAC,MAAM,CAAC,CAQrE"}
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
* at all (the hand-written gate sets in `columnar-parser-indexes.ts`).
|
|
14
14
|
*
|
|
15
15
|
* This module derives the same information from the codegen-generated
|
|
16
|
-
* schema registries instead:
|
|
17
|
-
*
|
|
18
|
-
* `RelatedY` (a single reference or a list)
|
|
19
|
-
*
|
|
16
|
+
* schema registries instead: EXPRESS `IfcRelationship` subtypes normally
|
|
17
|
+
* name their two graph-relevant attributes `RelatingX` (a single reference)
|
|
18
|
+
* and `RelatedY` (a single reference or a list). IFC2X3 IfcRelCoversSpaces
|
|
19
|
+
* predates that naming pair but still declares two ordered reference slots,
|
|
20
|
+
* which the same schema walk can derive. Walking
|
|
20
21
|
* `allAttributes` (root → leaf, the same order the STEP file writes them
|
|
21
22
|
* in) and picking out the first `Relating*`/`Related*` attribute whose
|
|
22
23
|
* EXPRESS type is an entity or a select (never an enum or a defined
|
|
@@ -99,8 +100,8 @@ function computeSlotPlan(registry, entityName) {
|
|
|
99
100
|
const allAttrs = meta?.allAttributes;
|
|
100
101
|
if (!allAttrs || allAttrs.length <= ROOT_ATTR_COUNT)
|
|
101
102
|
return undefined;
|
|
102
|
-
|
|
103
|
-
|
|
103
|
+
const relatingCandidates = [];
|
|
104
|
+
const relatedCandidates = [];
|
|
104
105
|
for (let i = ROOT_ATTR_COUNT; i < allAttrs.length; i++) {
|
|
105
106
|
const attr = allAttrs[i];
|
|
106
107
|
if (!isReferenceType(registry, attr.type))
|
|
@@ -109,10 +110,19 @@ function computeSlotPlan(registry, entityName) {
|
|
|
109
110
|
index: i - ROOT_ATTR_COUNT,
|
|
110
111
|
isList: attr.isList || attr.isSet || attr.isArray || resolvesToAggregate(registry, attr.type),
|
|
111
112
|
};
|
|
112
|
-
if (
|
|
113
|
-
|
|
114
|
-
else if (
|
|
115
|
-
|
|
113
|
+
if (attr.name.startsWith('Relating'))
|
|
114
|
+
relatingCandidates.push(slot);
|
|
115
|
+
else if (attr.name.startsWith('Related'))
|
|
116
|
+
relatedCandidates.push(slot);
|
|
117
|
+
}
|
|
118
|
+
let relating = relatingCandidates[0];
|
|
119
|
+
let related = relatedCandidates[0];
|
|
120
|
+
// IFC2X3 IfcRelCoversSpaces predates the Relating*/Related* naming pair:
|
|
121
|
+
// its two endpoints are RelatedSpace (single) and RelatedCoverings (set).
|
|
122
|
+
// Derive that exceptional shape from the schema's two reference slots,
|
|
123
|
+
// without a relationship-name table.
|
|
124
|
+
if (!relating && relatedCandidates.length >= 2) {
|
|
125
|
+
[relating, related] = relatedCandidates;
|
|
116
126
|
}
|
|
117
127
|
if (!relating || !related)
|
|
118
128
|
return undefined;
|
|
@@ -123,16 +133,19 @@ const PLAN_CACHE = new Map();
|
|
|
123
133
|
* The relating/related attribute slots for a STEP relationship keyword
|
|
124
134
|
* (e.g. `'IFCRELASSIGNSTOACTOR'`), or `undefined` if the type is unknown to
|
|
125
135
|
* every bundled schema, or is an `IfcRelationship` subtype whose layout
|
|
126
|
-
* this convention-based walk cannot resolve (
|
|
127
|
-
*
|
|
128
|
-
* `relationship-schema-slots.test.ts`).
|
|
136
|
+
* this convention-based walk cannot resolve (only the non-binary, concrete
|
|
137
|
+
* IFC2X3 base IfcRelAssociates — see `relationship-schema-slots.test.ts`).
|
|
129
138
|
*/
|
|
130
|
-
export function getRelationshipSlotPlan(typeUpper) {
|
|
131
|
-
const
|
|
132
|
-
|
|
139
|
+
export function getRelationshipSlotPlan(typeUpper, schemaVersion) {
|
|
140
|
+
const cacheKey = `${schemaVersion ?? '*'}:${typeUpper}`;
|
|
141
|
+
const cached = PLAN_CACHE.get(cacheKey);
|
|
142
|
+
if (cached !== undefined || PLAN_CACHE.has(cacheKey))
|
|
133
143
|
return cached;
|
|
134
144
|
let plan;
|
|
135
|
-
|
|
145
|
+
const versions = VERSIONS.includes(schemaVersion)
|
|
146
|
+
? [schemaVersion]
|
|
147
|
+
: VERSIONS;
|
|
148
|
+
for (const version of versions) {
|
|
136
149
|
const registry = getSchemaRegistryForVersion(version);
|
|
137
150
|
const canonical = Object.keys(registry.entities).find(n => n.toUpperCase() === typeUpper);
|
|
138
151
|
if (!canonical)
|
|
@@ -141,7 +154,7 @@ export function getRelationshipSlotPlan(typeUpper) {
|
|
|
141
154
|
if (plan)
|
|
142
155
|
break;
|
|
143
156
|
}
|
|
144
|
-
PLAN_CACHE.set(
|
|
157
|
+
PLAN_CACHE.set(cacheKey, plan);
|
|
145
158
|
return plan;
|
|
146
159
|
}
|
|
147
160
|
function isSubtypeOfIfcRelationship(registry, name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relationship-schema-slots.js","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D
|
|
1
|
+
{"version":3,"file":"relationship-schema-slots.js","sourceRoot":"","sources":["../src/relationship-schema-slots.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,7 @@
|
|
|
17
17
|
* only; a 2X3 file's IFCWORKCALENDAR entities are silently skipped by
|
|
18
18
|
* `schedule-extractor.ts`'s `byType.get('IFCWORKCALENDAR')` walk.
|
|
19
19
|
*/
|
|
20
|
-
import {
|
|
21
|
-
import type { IfcDataStore } from './columnar-parser.js';
|
|
20
|
+
import type { CostEntityReader } from './cost-reader.js';
|
|
22
21
|
/**
|
|
23
22
|
* IFC4/IFC4X3 STEP attribute indices for IfcWorkCalendar. Like
|
|
24
23
|
* IfcWorkSchedule/IfcWorkPlan it extends IfcControl < IfcObject <
|
|
@@ -85,5 +84,5 @@ export interface WorkCalendarInfo {
|
|
|
85
84
|
* typed record out, `undefined` when the express id doesn't resolve to an
|
|
86
85
|
* IFCWORKCALENDAR.
|
|
87
86
|
*/
|
|
88
|
-
export declare function extractWorkCalendar(
|
|
87
|
+
export declare function extractWorkCalendar(reader: CostEntityReader, calendarId: number): WorkCalendarInfo | undefined;
|
|
89
88
|
//# sourceMappingURL=schedule-calendar-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-calendar-types.d.ts","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"schedule-calendar-types.d.ts","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIzD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;CASrB,CAAC;AA8BX,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wHAAwH;IACxH,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AA0ED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,gBAAgB,GAAG,SAAS,CA6B9B"}
|
|
@@ -51,11 +51,8 @@ const TIME_PERIOD_ATTR = {
|
|
|
51
51
|
StartTime: 0,
|
|
52
52
|
EndTime: 1,
|
|
53
53
|
};
|
|
54
|
-
function extractTimePeriod(
|
|
55
|
-
const
|
|
56
|
-
if (!ref)
|
|
57
|
-
return undefined;
|
|
58
|
-
const entity = extractor.extractEntity(ref);
|
|
54
|
+
function extractTimePeriod(reader, timePeriodId) {
|
|
55
|
+
const entity = reader.get(timePeriodId);
|
|
59
56
|
if (!entity)
|
|
60
57
|
return undefined;
|
|
61
58
|
if (entity.type.toUpperCase() !== 'IFCTIMEPERIOD')
|
|
@@ -67,11 +64,8 @@ function extractTimePeriod(extractor, store, timePeriodId) {
|
|
|
67
64
|
return undefined;
|
|
68
65
|
return { start, end };
|
|
69
66
|
}
|
|
70
|
-
function extractRecurrencePattern(
|
|
71
|
-
const
|
|
72
|
-
if (!ref)
|
|
73
|
-
return undefined;
|
|
74
|
-
const entity = extractor.extractEntity(ref);
|
|
67
|
+
function extractRecurrencePattern(reader, patternId) {
|
|
68
|
+
const entity = reader.get(patternId);
|
|
75
69
|
if (!entity)
|
|
76
70
|
return undefined;
|
|
77
71
|
if (entity.type.toUpperCase() !== 'IFCRECURRENCEPATTERN')
|
|
@@ -86,7 +80,7 @@ function extractRecurrencePattern(extractor, store, patternId) {
|
|
|
86
80
|
const timePeriodIds = asRefList(a[RECURRENCE_PATTERN_ATTR.TimePeriods]);
|
|
87
81
|
const timePeriods = [];
|
|
88
82
|
for (const id of timePeriodIds) {
|
|
89
|
-
const tp = extractTimePeriod(
|
|
83
|
+
const tp = extractTimePeriod(reader, id);
|
|
90
84
|
if (tp)
|
|
91
85
|
timePeriods.push(tp);
|
|
92
86
|
}
|
|
@@ -106,11 +100,8 @@ function asNumberList(value) {
|
|
|
106
100
|
return [];
|
|
107
101
|
return value.map(asNumber).filter((n) => n !== undefined);
|
|
108
102
|
}
|
|
109
|
-
function extractWorkTime(
|
|
110
|
-
const
|
|
111
|
-
if (!ref)
|
|
112
|
-
return undefined;
|
|
113
|
-
const entity = extractor.extractEntity(ref);
|
|
103
|
+
function extractWorkTime(reader, workTimeId) {
|
|
104
|
+
const entity = reader.get(workTimeId);
|
|
114
105
|
if (!entity)
|
|
115
106
|
return undefined;
|
|
116
107
|
if (entity.type.toUpperCase() !== 'IFCWORKTIME')
|
|
@@ -122,7 +113,7 @@ function extractWorkTime(extractor, store, workTimeId) {
|
|
|
122
113
|
dataOrigin: asEnum(a[WORK_TIME_ATTR.DataOrigin]),
|
|
123
114
|
userDefinedDataOrigin: asString(a[WORK_TIME_ATTR.UserDefinedDataOrigin]),
|
|
124
115
|
recurrencePattern: recurrenceId !== undefined
|
|
125
|
-
? extractRecurrencePattern(
|
|
116
|
+
? extractRecurrencePattern(reader, recurrenceId)
|
|
126
117
|
: undefined,
|
|
127
118
|
start: asString(a[WORK_TIME_ATTR.Start]),
|
|
128
119
|
finish: asString(a[WORK_TIME_ATTR.Finish]),
|
|
@@ -135,11 +126,8 @@ function extractWorkTime(extractor, store, workTimeId) {
|
|
|
135
126
|
* typed record out, `undefined` when the express id doesn't resolve to an
|
|
136
127
|
* IFCWORKCALENDAR.
|
|
137
128
|
*/
|
|
138
|
-
export function extractWorkCalendar(
|
|
139
|
-
const
|
|
140
|
-
if (!ref)
|
|
141
|
-
return undefined;
|
|
142
|
-
const entity = extractor.extractEntity(ref);
|
|
129
|
+
export function extractWorkCalendar(reader, calendarId) {
|
|
130
|
+
const entity = reader.get(calendarId);
|
|
143
131
|
if (!entity)
|
|
144
132
|
return undefined;
|
|
145
133
|
if (entity.type.toUpperCase() !== 'IFCWORKCALENDAR')
|
|
@@ -149,13 +137,13 @@ export function extractWorkCalendar(extractor, store, calendarId) {
|
|
|
149
137
|
const exceptionTimeIds = asRefList(a[WORK_CALENDAR_ATTR.ExceptionTimes]);
|
|
150
138
|
const workingTimes = [];
|
|
151
139
|
for (const id of workingTimeIds) {
|
|
152
|
-
const wt = extractWorkTime(
|
|
140
|
+
const wt = extractWorkTime(reader, id);
|
|
153
141
|
if (wt)
|
|
154
142
|
workingTimes.push(wt);
|
|
155
143
|
}
|
|
156
144
|
const exceptionTimes = [];
|
|
157
145
|
for (const id of exceptionTimeIds) {
|
|
158
|
-
const wt = extractWorkTime(
|
|
146
|
+
const wt = extractWorkTime(reader, id);
|
|
159
147
|
if (wt)
|
|
160
148
|
exceptionTimes.push(wt);
|
|
161
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-calendar-types.js","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"schedule-calendar-types.js","sourceRoot":"","sources":["../src/schedule-calendar-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
* under the ~400-line module-size guideline (see AGENTS.md) — same reason
|
|
7
7
|
* `schedule-calendar-types.ts` was split from `schedule-types.ts`.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import type { IfcDataStore } from './columnar-parser.js';
|
|
9
|
+
import type { CostEntityReader } from './cost-reader.js';
|
|
11
10
|
import type { ScheduleTaskInfo, WorkScheduleInfo } from './schedule-types.js';
|
|
12
11
|
import type { WorkCalendarInfo } from './schedule-calendar-types.js';
|
|
13
12
|
/**
|
|
@@ -17,9 +16,9 @@ import type { WorkCalendarInfo } from './schedule-calendar-types.js';
|
|
|
17
16
|
* caller's shared express-id -> GlobalId map, recorded here so the later
|
|
18
17
|
* passes can resolve a schedule by either key.
|
|
19
18
|
*/
|
|
20
|
-
export declare function extractWorkScheduleInfo(
|
|
19
|
+
export declare function extractWorkScheduleInfo(reader: CostEntityReader, expressId: number, kind: 'WorkSchedule' | 'WorkPlan', globalIdByExpressId: Map<number, string>): WorkScheduleInfo | null;
|
|
21
20
|
/** Extract every IFCWORKCALENDAR express id into a WorkCalendarInfo, keyed both as a flat list and by express id (for the assignment walk below). */
|
|
22
|
-
export declare function extractWorkCalendars(
|
|
21
|
+
export declare function extractWorkCalendars(reader: CostEntityReader, workCalendarIds: readonly number[]): {
|
|
23
22
|
workCalendars: WorkCalendarInfo[];
|
|
24
23
|
calendarByExpressId: Map<number, WorkCalendarInfo>;
|
|
25
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-control-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"schedule-control-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,cAAc,GAAG,UAAU,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,gBAAgB,GAAG,IAAI,CAwBzB;AAED,qJAAqJ;AACrJ,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC;IAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAAC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAAE,CAW3F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAClD,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC9C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACjD,OAAO,CAiBT"}
|
|
@@ -10,11 +10,8 @@ import { extractWorkCalendar } from './schedule-calendar-types.js';
|
|
|
10
10
|
* caller's shared express-id -> GlobalId map, recorded here so the later
|
|
11
11
|
* passes can resolve a schedule by either key.
|
|
12
12
|
*/
|
|
13
|
-
export function extractWorkScheduleInfo(
|
|
14
|
-
const
|
|
15
|
-
if (!ref)
|
|
16
|
-
return null;
|
|
17
|
-
const entity = extractor.extractEntity(ref);
|
|
13
|
+
export function extractWorkScheduleInfo(reader, expressId, kind, globalIdByExpressId) {
|
|
14
|
+
const entity = reader.get(expressId);
|
|
18
15
|
if (!entity)
|
|
19
16
|
return null;
|
|
20
17
|
const a = entity.attributes || [];
|
|
@@ -41,11 +38,11 @@ export function extractWorkScheduleInfo(extractor, store, expressId, kind, globa
|
|
|
41
38
|
return info;
|
|
42
39
|
}
|
|
43
40
|
/** Extract every IFCWORKCALENDAR express id into a WorkCalendarInfo, keyed both as a flat list and by express id (for the assignment walk below). */
|
|
44
|
-
export function extractWorkCalendars(
|
|
41
|
+
export function extractWorkCalendars(reader, workCalendarIds) {
|
|
45
42
|
const workCalendars = [];
|
|
46
43
|
const calendarByExpressId = new Map();
|
|
47
44
|
for (const id of workCalendarIds) {
|
|
48
|
-
const info = extractWorkCalendar(
|
|
45
|
+
const info = extractWorkCalendar(reader, id);
|
|
49
46
|
if (info) {
|
|
50
47
|
workCalendars.push(info);
|
|
51
48
|
calendarByExpressId.set(id, info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-control-extractor.js","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"schedule-control-extractor.js","sourceRoot":"","sources":["../src/schedule-control-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CostMutationOverlay } from './cost-overlay.js';
|
|
1
2
|
import type { IfcDataStore } from './columnar-parser.js';
|
|
2
3
|
import { parseIso8601Duration } from './iso8601-duration.js';
|
|
3
4
|
import type { SequenceTypeEnum, TaskDurationType, ScheduleTaskTimeInfo, ScheduleTaskInfo, ScheduleSequenceInfo, WorkScheduleInfo, ScheduleExtraction } from './schedule-types.js';
|
|
@@ -11,5 +12,7 @@ export type { WorkCalendarInfo, WorkTimeInfo, RecurrencePatternInfo, TimePeriodI
|
|
|
11
12
|
* IfcRelAssignsToControl / IfcRelNests / IfcWorkSchedule / IfcWorkPlan entity
|
|
12
13
|
* and assembles a connected ScheduleExtraction.
|
|
13
14
|
*/
|
|
14
|
-
export declare function extractScheduleOnDemand(store: IfcDataStore
|
|
15
|
+
export declare function extractScheduleOnDemand(store: IfcDataStore, options?: {
|
|
16
|
+
overlay?: CostMutationOverlay;
|
|
17
|
+
}): ScheduleExtraction;
|
|
15
18
|
//# sourceMappingURL=schedule-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-extractor.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAkB7D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAKhC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1H;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"schedule-extractor.d.ts","sourceRoot":"","sources":["../src/schedule-extractor.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAkB7D,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAa7B,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAKhC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC;AAGF,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE1H;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAAE,GAAG,kBAAkB,CAsS5H"}
|