@ifc-lite/sdk 6.0.0 → 6.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/README.md +5 -0
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +4 -1
- package/dist/context.js.map +1 -1
- package/dist/cost-backend.d.ts +9 -0
- package/dist/cost-backend.d.ts.map +1 -0
- package/dist/cost-backend.js +163 -0
- package/dist/cost-backend.js.map +1 -0
- package/dist/cost-types.d.ts +159 -0
- package/dist/cost-types.d.ts.map +1 -0
- package/dist/cost-types.js +5 -0
- package/dist/cost-types.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/namespaces/bcf.d.ts +24 -1
- package/dist/namespaces/bcf.d.ts.map +1 -1
- package/dist/namespaces/bcf.js +33 -2
- package/dist/namespaces/bcf.js.map +1 -1
- package/dist/namespaces/cost.d.ts +15 -0
- package/dist/namespaces/cost.d.ts.map +1 -0
- package/dist/namespaces/cost.js +19 -0
- package/dist/namespaces/cost.js.map +1 -0
- package/dist/namespaces/viewer.d.ts +1 -1
- package/dist/namespaces/viewer.d.ts.map +1 -1
- package/dist/namespaces/viewer.js +3 -1
- package/dist/namespaces/viewer.js.map +1 -1
- package/dist/schedule-types.d.ts +136 -0
- package/dist/schedule-types.d.ts.map +1 -0
- package/dist/schedule-types.js +5 -0
- package/dist/schedule-types.js.map +1 -0
- package/dist/transport/remote-backend.d.ts +2 -1
- package/dist/transport/remote-backend.d.ts.map +1 -1
- package/dist/transport/remote-backend.js +11 -2
- package/dist/transport/remote-backend.js.map +1 -1
- package/dist/types.d.ts +18 -81
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcf.d.ts","sourceRoot":"","sources":["../../src/namespaces/bcf.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bcf.d.ts","sourceRoot":"","sources":["../../src/namespaces/bcf.ts"],"names":[],"mappings":"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"}
|
package/dist/namespaces/bcf.js
CHANGED
|
@@ -12,6 +12,22 @@ export { IncompleteCameraStateError, MissingSectionBoundsError };
|
|
|
12
12
|
* The GUID and color utility methods live in `bcf-guid-color.ts`'s base
|
|
13
13
|
* class (module-size split, #4294). */
|
|
14
14
|
export class BCFNamespace extends BCFGuidColorBase {
|
|
15
|
+
backend;
|
|
16
|
+
/**
|
|
17
|
+
* `backend` supplies the viewer's render-frame offset
|
|
18
|
+
* (`viewer.getRenderFrameOffset`). Without one (`new BCFNamespace()`, as
|
|
19
|
+
* the CLI's `bcf` command uses it) viewpoints are taken as already being in
|
|
20
|
+
* world coordinates.
|
|
21
|
+
*/
|
|
22
|
+
constructor(backend) {
|
|
23
|
+
super();
|
|
24
|
+
this.backend = backend;
|
|
25
|
+
}
|
|
26
|
+
/** Render frame -> IFC world translation, IFC Z-up; zero when unknown. */
|
|
27
|
+
worldOffset() {
|
|
28
|
+
const offset = this.backend?.viewer.getRenderFrameOffset?.();
|
|
29
|
+
return offset ? toVec3(offset) : { x: 0, y: 0, z: 0 };
|
|
30
|
+
}
|
|
15
31
|
// --------------------------------------------------------------------------
|
|
16
32
|
// Project management
|
|
17
33
|
// --------------------------------------------------------------------------
|
|
@@ -73,6 +89,13 @@ export class BCFNamespace extends BCFGuidColorBase {
|
|
|
73
89
|
* `IncompleteCameraStateError` for a camera missing position/target/up,
|
|
74
90
|
* and `MissingSectionBoundsError` for an enabled section plane with no
|
|
75
91
|
* `bounds` — see #4251.
|
|
92
|
+
*
|
|
93
|
+
* `camera`, `sectionPlane` and `bounds` are read in the viewer's frame,
|
|
94
|
+
* the one `bim.viewer.getCamera()`/`getSection()` return. The viewpoint is
|
|
95
|
+
* written in IFC world coordinates, as BCF requires: for a georeferenced
|
|
96
|
+
* model the viewer draws shifted towards the origin, the backend's
|
|
97
|
+
* render-frame offset is added to the camera and clipping-plane positions
|
|
98
|
+
* (#4879). With no viewer (or no shift) the offset is zero.
|
|
76
99
|
*/
|
|
77
100
|
async createViewpoint(options) {
|
|
78
101
|
const mod = await loadBCF();
|
|
@@ -130,7 +153,8 @@ export class BCFNamespace extends BCFGuidColorBase {
|
|
|
130
153
|
guids: g.components.map(c => c.GlobalId),
|
|
131
154
|
}));
|
|
132
155
|
}
|
|
133
|
-
|
|
156
|
+
const viewpoint = mod.createViewpoint(bcfOptions);
|
|
157
|
+
return mod.translateViewpoint(viewpoint, this.worldOffset());
|
|
134
158
|
}
|
|
135
159
|
/** Add a viewpoint to a topic. */
|
|
136
160
|
async addViewpoint(topic, viewpoint) {
|
|
@@ -148,13 +172,20 @@ export class BCFNamespace extends BCFGuidColorBase {
|
|
|
148
172
|
* model's AABB) to also recover `sectionPlane`; without it
|
|
149
173
|
* `@ifc-lite/bcf` cannot place a clipping plane and `sectionPlane` is
|
|
150
174
|
* omitted, matching `createViewpoint()`'s own bounds requirement.
|
|
175
|
+
*
|
|
176
|
+
* The viewpoint is read as IFC world coordinates and the result is in the
|
|
177
|
+
* viewer's frame, ready for `setCamera()`: the backend's render-frame
|
|
178
|
+
* offset is subtracted (#4879). A viewpoint written by ifc-lite before
|
|
179
|
+
* #4806, still in the render frame, is recognised against `bounds` and
|
|
180
|
+
* kept as it is.
|
|
151
181
|
*/
|
|
152
182
|
async extractViewpointState(viewpoint, bounds) {
|
|
153
183
|
const mod = await loadBCF();
|
|
154
184
|
const bcfBounds = bounds
|
|
155
185
|
? { min: toVec3(bounds.min), max: toVec3(bounds.max) }
|
|
156
186
|
: undefined;
|
|
157
|
-
const
|
|
187
|
+
const local = mod.viewpointFromWorld(viewpoint, this.worldOffset(), bcfBounds);
|
|
188
|
+
const raw = mod.extractViewpointState(local, bcfBounds);
|
|
158
189
|
return {
|
|
159
190
|
camera: raw.camera
|
|
160
191
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcf.js","sourceRoot":"","sources":["../../src/namespaces/bcf.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAW/D,OAAO,EAKL,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,MAAM,EACN,OAAO,EACP,eAAe,EAEf,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAc,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,CAAC;AAmCjE,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E;;uCAEuC;AACvC,MAAM,OAAO,YAAa,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"bcf.js","sourceRoot":"","sources":["../../src/namespaces/bcf.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BimBackend, EntityRef } from '../types.js';
|
|
2
|
+
import type { CostEvaluationOptions } from '../cost-types.js';
|
|
3
|
+
/** Read-only 5D cost data from the loaded IFC source snapshot. */
|
|
4
|
+
export declare class CostNamespace {
|
|
5
|
+
private backend;
|
|
6
|
+
constructor(backend: BimBackend);
|
|
7
|
+
private methods;
|
|
8
|
+
data(modelId?: string): import("../cost-types.js").CostGraphData;
|
|
9
|
+
schedules(modelId?: string): import("../cost-types.js").CostScheduleData[];
|
|
10
|
+
items(modelId?: string): import("../cost-types.js").CostItemData[];
|
|
11
|
+
values(modelId?: string): import("../cost-types.js").CostValueData[];
|
|
12
|
+
evaluateItem(ref: EntityRef, options?: CostEvaluationOptions): import("../cost-types.js").CostEvaluationData;
|
|
13
|
+
evaluateValue(ref: EntityRef, options?: CostEvaluationOptions): import("../cost-types.js").CostEvaluationData;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=cost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.d.ts","sourceRoot":"","sources":["../../src/namespaces/cost.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,kEAAkE;AAClE,qBAAa,aAAa;IACZ,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IACvC,OAAO,CAAC,OAAO;IACf,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM;IACrB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM;IAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IACtB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM;IACvB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAC5D,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB;CAC9D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
/** Read-only 5D cost data from the loaded IFC source snapshot. */
|
|
5
|
+
export class CostNamespace {
|
|
6
|
+
backend;
|
|
7
|
+
constructor(backend) {
|
|
8
|
+
this.backend = backend;
|
|
9
|
+
}
|
|
10
|
+
methods() { const value = this.backend.cost; if (!value)
|
|
11
|
+
throw new Error('bim.cost is not supported by this backend'); return value; }
|
|
12
|
+
data(modelId) { return this.methods().data(modelId); }
|
|
13
|
+
schedules(modelId) { return this.methods().schedules(modelId); }
|
|
14
|
+
items(modelId) { return this.methods().items(modelId); }
|
|
15
|
+
values(modelId) { return this.methods().values(modelId); }
|
|
16
|
+
evaluateItem(ref, options) { return this.methods().evaluateItem(ref, options); }
|
|
17
|
+
evaluateValue(ref, options) { return this.methods().evaluateValue(ref, options); }
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost.js","sourceRoot":"","sources":["../../src/namespaces/cost.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAK/D,kEAAkE;AAClE,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IACnC,OAAO,KAAK,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;IAC9I,IAAI,CAAC,OAAgB,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,SAAS,CAAC,OAAgB,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,OAAgB,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,CAAC,OAAgB,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnE,YAAY,CAAC,GAAc,EAAE,OAA+B,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnH,aAAa,CAAC,GAAc,EAAE,OAA+B,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACtH"}
|
|
@@ -12,7 +12,7 @@ export declare class ViewerNamespace {
|
|
|
12
12
|
refs: EntityRef[];
|
|
13
13
|
color: string;
|
|
14
14
|
}>): void;
|
|
15
|
-
/** Reset color overrides */
|
|
15
|
+
/** Reset color overrides. Omit refs for all; an explicit empty list is a no-op. */
|
|
16
16
|
resetColors(refs?: EntityRef[]): void;
|
|
17
17
|
/** Hide entities */
|
|
18
18
|
hide(refs: EntityRef[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/namespaces/viewer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG/G,4DAA4D;AAC5D,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAIvC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD,qCAAqC;IACrC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvD,yEAAyE;IACzE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAKvE,
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/namespaces/viewer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG/G,4DAA4D;AAC5D,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAIvC,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhD,qCAAqC;IACrC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAIvD,yEAAyE;IACzE,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAKvE,mFAAmF;IACnF,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI;IAOrC,oBAAoB;IACpB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAI7B,sCAAsC;IACtC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAI7B,8CAA8C;IAC9C,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAIhC,sCAAsC;IACtC,eAAe,IAAI,IAAI;IAMvB,0CAA0C;IAC1C,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAI/B,sBAAsB;IACtB,QAAQ,IAAI,IAAI;IAIhB,4BAA4B;IAC5B,YAAY,IAAI,SAAS,EAAE;IAM3B,6CAA6C;IAC7C,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI;IAI9B,uBAAuB;IACvB,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAI5C,+BAA+B;IAC/B,SAAS,IAAI,WAAW;IAIxB,6BAA6B;IAC7B,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAMzC,0BAA0B;IAC1B,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIvC,gCAAgC;IAChC,UAAU,IAAI,YAAY,GAAG,IAAI;IAIjC,2BAA2B;IAC3B,YAAY,IAAI,IAAI;CAGrB"}
|
|
@@ -23,8 +23,10 @@ export class ViewerNamespace {
|
|
|
23
23
|
const resolved = batches.map(b => ({ refs: b.refs, color: hexToRgba(b.color, 1.0) }));
|
|
24
24
|
this.backend.viewer.colorizeAll(resolved);
|
|
25
25
|
}
|
|
26
|
-
/** Reset color overrides */
|
|
26
|
+
/** Reset color overrides. Omit refs for all; an explicit empty list is a no-op. */
|
|
27
27
|
resetColors(refs) {
|
|
28
|
+
if (refs?.length === 0)
|
|
29
|
+
return;
|
|
28
30
|
this.backend.viewer.resetColors(refs);
|
|
29
31
|
}
|
|
30
32
|
// ── Visibility ─────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/namespaces/viewer.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,4DAA4D;AAC5D,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAE3C,8DAA8D;IAE9D,gDAAgD;IAChD,QAAQ,CAAC,IAAiB,EAAE,KAAa;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,qCAAqC;IACrC,YAAY,CAAC,IAAiB,EAAE,KAAgB;QAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,yEAAyE;IACzE,WAAW,CAAC,OAAoD;QAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/namespaces/viewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schedule (4D) data shapes — IfcTask, IfcRelSequence, IfcWorkSchedule /
|
|
3
|
+
* IfcWorkPlan, and IfcWorkCalendar with the IfcWorkTime /
|
|
4
|
+
* IfcRecurrencePattern / IfcTimePeriod entities it owns.
|
|
5
|
+
*
|
|
6
|
+
* Shapes mirror `@ifc-lite/parser`'s `ScheduleExtraction` struct so the SDK
|
|
7
|
+
* layer stays serializable across the sandbox/transport boundary without
|
|
8
|
+
* pulling the parser into consumer bundles.
|
|
9
|
+
*
|
|
10
|
+
* A sibling of `types.ts` (like `structural-types.ts` next door) rather than
|
|
11
|
+
* a section inside it, so that file stays under its recorded module-size
|
|
12
|
+
* budget. `types.ts` re-exports everything here, so no import path changes.
|
|
13
|
+
*/
|
|
14
|
+
export type ScheduleSequenceType = 'START_START' | 'START_FINISH' | 'FINISH_START' | 'FINISH_FINISH' | 'USERDEFINED' | 'NOTDEFINED';
|
|
15
|
+
export type ScheduleTaskDurationType = 'WORKTIME' | 'ELAPSEDTIME' | 'NOTDEFINED';
|
|
16
|
+
export interface ScheduleTaskTimeData {
|
|
17
|
+
scheduleStart?: string;
|
|
18
|
+
scheduleFinish?: string;
|
|
19
|
+
scheduleDuration?: string;
|
|
20
|
+
actualStart?: string;
|
|
21
|
+
actualFinish?: string;
|
|
22
|
+
actualDuration?: string;
|
|
23
|
+
earlyStart?: string;
|
|
24
|
+
earlyFinish?: string;
|
|
25
|
+
lateStart?: string;
|
|
26
|
+
lateFinish?: string;
|
|
27
|
+
freeFloat?: string;
|
|
28
|
+
totalFloat?: string;
|
|
29
|
+
remainingTime?: string;
|
|
30
|
+
statusTime?: string;
|
|
31
|
+
durationType?: ScheduleTaskDurationType;
|
|
32
|
+
isCritical?: boolean;
|
|
33
|
+
completion?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface ScheduleTaskData {
|
|
36
|
+
expressId: number;
|
|
37
|
+
globalId: string;
|
|
38
|
+
name: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
objectType?: string;
|
|
41
|
+
identification?: string;
|
|
42
|
+
longDescription?: string;
|
|
43
|
+
status?: string;
|
|
44
|
+
workMethod?: string;
|
|
45
|
+
isMilestone: boolean;
|
|
46
|
+
priority?: number;
|
|
47
|
+
predefinedType?: string;
|
|
48
|
+
taskTime?: ScheduleTaskTimeData;
|
|
49
|
+
parentGlobalId?: string;
|
|
50
|
+
childGlobalIds: string[];
|
|
51
|
+
productExpressIds: number[];
|
|
52
|
+
productGlobalIds: string[];
|
|
53
|
+
controllingScheduleGlobalIds: string[];
|
|
54
|
+
/** IfcWorkCalendar globalIds assigned to this task via IfcRelAssignsToControl. */
|
|
55
|
+
calendarGlobalIds?: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface ScheduleSequenceData {
|
|
58
|
+
globalId: string;
|
|
59
|
+
relatingTaskGlobalId: string;
|
|
60
|
+
relatedTaskGlobalId: string;
|
|
61
|
+
sequenceType: ScheduleSequenceType;
|
|
62
|
+
userDefinedSequenceType?: string;
|
|
63
|
+
timeLagSeconds?: number;
|
|
64
|
+
timeLagDuration?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface WorkScheduleData {
|
|
67
|
+
expressId: number;
|
|
68
|
+
globalId: string;
|
|
69
|
+
kind: 'WorkSchedule' | 'WorkPlan';
|
|
70
|
+
name: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
identification?: string;
|
|
73
|
+
creationDate?: string;
|
|
74
|
+
purpose?: string;
|
|
75
|
+
duration?: string;
|
|
76
|
+
startTime?: string;
|
|
77
|
+
finishTime?: string;
|
|
78
|
+
predefinedType?: string;
|
|
79
|
+
taskGlobalIds: string[];
|
|
80
|
+
/** IfcWorkCalendar globalIds assigned to this schedule/plan via IfcRelAssignsToControl. */
|
|
81
|
+
calendarGlobalIds?: string[];
|
|
82
|
+
}
|
|
83
|
+
/** One StartTime/EndTime pair from an IfcRecurrencePattern's TimePeriods list. */
|
|
84
|
+
export interface TimePeriodData {
|
|
85
|
+
start: string;
|
|
86
|
+
end: string;
|
|
87
|
+
}
|
|
88
|
+
/** IfcRecurrencePattern — the repeat rule an IfcWorkTime may carry. */
|
|
89
|
+
export interface RecurrencePatternData {
|
|
90
|
+
recurrenceType?: string;
|
|
91
|
+
dayComponent: number[];
|
|
92
|
+
weekdayComponent: number[];
|
|
93
|
+
monthComponent: number[];
|
|
94
|
+
position?: number;
|
|
95
|
+
interval?: number;
|
|
96
|
+
occurrences?: number;
|
|
97
|
+
timePeriods: TimePeriodData[];
|
|
98
|
+
}
|
|
99
|
+
/** IfcWorkTime — one working or exception period on an IfcWorkCalendar. */
|
|
100
|
+
export interface WorkTimeData {
|
|
101
|
+
name?: string;
|
|
102
|
+
dataOrigin?: string;
|
|
103
|
+
userDefinedDataOrigin?: string;
|
|
104
|
+
recurrencePattern?: RecurrencePatternData;
|
|
105
|
+
start?: string;
|
|
106
|
+
finish?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface WorkCalendarData {
|
|
109
|
+
expressId: number;
|
|
110
|
+
globalId: string;
|
|
111
|
+
name: string;
|
|
112
|
+
description?: string;
|
|
113
|
+
objectType?: string;
|
|
114
|
+
identification?: string;
|
|
115
|
+
predefinedType?: string;
|
|
116
|
+
workingTimes: WorkTimeData[];
|
|
117
|
+
exceptionTimes: WorkTimeData[];
|
|
118
|
+
}
|
|
119
|
+
export interface ScheduleExtractionData {
|
|
120
|
+
workSchedules: WorkScheduleData[];
|
|
121
|
+
tasks: ScheduleTaskData[];
|
|
122
|
+
sequences: ScheduleSequenceData[];
|
|
123
|
+
workCalendars: WorkCalendarData[];
|
|
124
|
+
hasSchedule: boolean;
|
|
125
|
+
}
|
|
126
|
+
export interface ScheduleBackendMethods {
|
|
127
|
+
/** Extract the full schedule graph from the active or specified model. */
|
|
128
|
+
data(modelId?: string): ScheduleExtractionData;
|
|
129
|
+
/** Convenience — just the task list. */
|
|
130
|
+
tasks(modelId?: string): ScheduleTaskData[];
|
|
131
|
+
/** Convenience — just the work schedules / work plans. */
|
|
132
|
+
workSchedules(modelId?: string): WorkScheduleData[];
|
|
133
|
+
/** Convenience — just the task dependency edges. */
|
|
134
|
+
sequences(modelId?: string): ScheduleSequenceData[];
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=schedule-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-types.d.ts","sourceRoot":"","sources":["../src/schedule-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-types.js","sourceRoot":"","sources":["../src/schedule-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Each typed namespace is a Proxy that throws synchronously, since the remote transport
|
|
6
6
|
* requires async implementation (future iteration).
|
|
7
7
|
*/
|
|
8
|
-
import type { BimBackend, Transport, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods, StructuralBackendMethods } from '../types.js';
|
|
8
|
+
import type { BimBackend, Transport, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods, StructuralBackendMethods, CostBackendMethods } from '../types.js';
|
|
9
9
|
export declare class RemoteBackend implements BimBackend {
|
|
10
10
|
private transport;
|
|
11
11
|
readonly model: ModelBackendMethods;
|
|
@@ -21,6 +21,7 @@ export declare class RemoteBackend implements BimBackend {
|
|
|
21
21
|
readonly files: FilesBackendMethods;
|
|
22
22
|
readonly schedule: ScheduleBackendMethods;
|
|
23
23
|
readonly structural: StructuralBackendMethods;
|
|
24
|
+
readonly cost: CostBackendMethods;
|
|
24
25
|
constructor(transport: Transport);
|
|
25
26
|
subscribe(event: BimEventType, handler: (data: unknown) => void): () => void;
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../../src/transport/remote-backend.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"remote-backend.d.ts","sourceRoot":"","sources":["../../src/transport/remote-backend.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAsBrB,qBAAa,aAAc,YAAW,UAAU;IAgBlC,OAAO,CAAC,SAAS;IAf7B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAA4B;IAC/D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAA4B;IAC/D,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAgC;IAC3E,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAiC;IAC9E,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAuD;IAC5F,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAA6B;IAClE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAA4B;IAC/D,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAA8B;IACrE,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAA6B;IAClE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAA2B;IAC5D,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAA4B;IAC/D,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAA+B;IACxE,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAiC;IAC9E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAA2B;gBAExC,SAAS,EAAE,SAAS;IAExC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;CAO7E"}
|
|
@@ -1,9 +1,17 @@
|
|
|
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
|
-
|
|
4
|
+
/**
|
|
5
|
+
* `optional` names methods the backend contract marks optional and a remote
|
|
6
|
+
* backend does not provide: they read as absent, so a namespace that probes
|
|
7
|
+
* them (`backend.viewer.getRenderFrameOffset?.()`) falls back instead of
|
|
8
|
+
* throwing.
|
|
9
|
+
*/
|
|
10
|
+
function makeRemoteProxy(namespace, optional = []) {
|
|
5
11
|
return new Proxy(Object.create(null), {
|
|
6
12
|
get(_, method) {
|
|
13
|
+
if (optional.includes(method))
|
|
14
|
+
return undefined;
|
|
7
15
|
return (..._args) => {
|
|
8
16
|
throw new Error(`RemoteBackend: Cannot call ${namespace}.${method}() synchronously. ` +
|
|
9
17
|
`Remote transport requires async implementation.`);
|
|
@@ -17,7 +25,7 @@ export class RemoteBackend {
|
|
|
17
25
|
query = makeRemoteProxy('query');
|
|
18
26
|
selection = makeRemoteProxy('selection');
|
|
19
27
|
visibility = makeRemoteProxy('visibility');
|
|
20
|
-
viewer = makeRemoteProxy('viewer');
|
|
28
|
+
viewer = makeRemoteProxy('viewer', ['getRenderFrameOffset']);
|
|
21
29
|
mutate = makeRemoteProxy('mutate');
|
|
22
30
|
store = makeRemoteProxy('store');
|
|
23
31
|
spatial = makeRemoteProxy('spatial');
|
|
@@ -26,6 +34,7 @@ export class RemoteBackend {
|
|
|
26
34
|
files = makeRemoteProxy('files');
|
|
27
35
|
schedule = makeRemoteProxy('schedule');
|
|
28
36
|
structural = makeRemoteProxy('structural');
|
|
37
|
+
cost = makeRemoteProxy('cost');
|
|
29
38
|
constructor(transport) {
|
|
30
39
|
this.transport = transport;
|
|
31
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-backend.js","sourceRoot":"","sources":["../../src/transport/remote-backend.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"remote-backend.js","sourceRoot":"","sources":["../../src/transport/remote-backend.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA8B/D;;;;;GAKG;AACH,SAAS,eAAe,CAAmB,SAAiB,EAAE,WAA8B,EAAE;IAC5F,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAM,EAAE;QACzC,GAAG,CAAC,CAAC,EAAE,MAAc;YACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAC;YAChD,OAAO,CAAC,GAAG,KAAgB,EAAS,EAAE;gBACpC,MAAM,IAAI,KAAK,CACb,8BAA8B,SAAS,IAAI,MAAM,oBAAoB;oBACrE,iDAAiD,CAClD,CAAC;YACJ,CAAC,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,aAAa;IAgBJ;IAfX,KAAK,GAAwB,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,KAAK,GAAwB,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,SAAS,GAA4B,eAAe,CAAC,WAAW,CAAC,CAAC;IAClE,UAAU,GAA6B,eAAe,CAAC,YAAY,CAAC,CAAC;IACrE,MAAM,GAAyB,eAAe,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnF,MAAM,GAAyB,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzD,KAAK,GAAwB,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,GAA0B,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,GAAyB,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,GAAuB,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,KAAK,GAAwB,eAAe,CAAC,OAAO,CAAC,CAAC;IACtD,QAAQ,GAA2B,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/D,UAAU,GAA6B,eAAe,CAAC,YAAY,CAAC,CAAC;IACrE,IAAI,GAAuB,eAAe,CAAC,MAAM,CAAC,CAAC;IAE5D,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C,SAAS,CAAC,KAAmB,EAAE,OAAgC;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* External tools (ifc-scripts, ifc-flow) depend on these types.
|
|
6
6
|
*/
|
|
7
7
|
import type { StructuralBackendMethods } from './structural-types.js';
|
|
8
|
+
import type { ScheduleBackendMethods } from './schedule-types.js';
|
|
9
|
+
import type { CostBackendMethods } from './cost-types.js';
|
|
8
10
|
import type { SpacesBackendMethods, StyleBackendMethods } from './backend-extension-types.js';
|
|
9
11
|
/** Reference to a specific entity within a federated model set */
|
|
10
12
|
export interface EntityRef {
|
|
@@ -295,12 +297,24 @@ export interface ViewerBackendMethods {
|
|
|
295
297
|
refs: EntityRef[];
|
|
296
298
|
color: RGBAColor;
|
|
297
299
|
}>): void;
|
|
300
|
+
/** Omitted refs reset all overrides; an explicit empty list is a no-op. */
|
|
298
301
|
resetColors(refs?: EntityRef[]): void;
|
|
299
302
|
flyTo(refs: EntityRef[]): void;
|
|
300
303
|
setSection(section: SectionPlane | null): void;
|
|
301
304
|
getSection(): SectionPlane | null;
|
|
302
305
|
setCamera(state: Partial<CameraState>): void;
|
|
303
306
|
getCamera(): CameraState;
|
|
307
|
+
/**
|
|
308
|
+
* Translation from the frame `getCamera()`/`setCamera()` work in to the
|
|
309
|
+
* IFC world coordinates of the loaded model(s), `[x, y, z]` in IFC Z-up
|
|
310
|
+
* metres. A viewer shifts large-coordinate (georeferenced) models towards
|
|
311
|
+
* the origin before drawing them, so its camera is not in world
|
|
312
|
+
* coordinates; `bim.bcf.createViewpoint()` adds this offset and
|
|
313
|
+
* `bim.bcf.extractViewpointState()` subtracts it, so BCF viewpoints are in
|
|
314
|
+
* world coordinates as the BCF standard requires (#4879). Optional: a
|
|
315
|
+
* backend without a shifted frame omits it, which means no offset.
|
|
316
|
+
*/
|
|
317
|
+
getRenderFrameOffset?(): [number, number, number];
|
|
304
318
|
}
|
|
305
319
|
export interface MutateBackendMethods {
|
|
306
320
|
setProperty(ref: EntityRef, psetName: string, propName: string, value: string | number | boolean): void;
|
|
@@ -540,89 +554,10 @@ export interface FilesBackendMethods {
|
|
|
540
554
|
csv(name: string): Record<string, string>[] | null;
|
|
541
555
|
csvColumns(name: string): string[];
|
|
542
556
|
}
|
|
543
|
-
export
|
|
544
|
-
export type ScheduleTaskDurationType = 'WORKTIME' | 'ELAPSEDTIME' | 'NOTDEFINED';
|
|
545
|
-
export interface ScheduleTaskTimeData {
|
|
546
|
-
scheduleStart?: string;
|
|
547
|
-
scheduleFinish?: string;
|
|
548
|
-
scheduleDuration?: string;
|
|
549
|
-
actualStart?: string;
|
|
550
|
-
actualFinish?: string;
|
|
551
|
-
actualDuration?: string;
|
|
552
|
-
earlyStart?: string;
|
|
553
|
-
earlyFinish?: string;
|
|
554
|
-
lateStart?: string;
|
|
555
|
-
lateFinish?: string;
|
|
556
|
-
freeFloat?: string;
|
|
557
|
-
totalFloat?: string;
|
|
558
|
-
remainingTime?: string;
|
|
559
|
-
statusTime?: string;
|
|
560
|
-
durationType?: ScheduleTaskDurationType;
|
|
561
|
-
isCritical?: boolean;
|
|
562
|
-
completion?: number;
|
|
563
|
-
}
|
|
564
|
-
export interface ScheduleTaskData {
|
|
565
|
-
expressId: number;
|
|
566
|
-
globalId: string;
|
|
567
|
-
name: string;
|
|
568
|
-
description?: string;
|
|
569
|
-
objectType?: string;
|
|
570
|
-
identification?: string;
|
|
571
|
-
longDescription?: string;
|
|
572
|
-
status?: string;
|
|
573
|
-
workMethod?: string;
|
|
574
|
-
isMilestone: boolean;
|
|
575
|
-
priority?: number;
|
|
576
|
-
predefinedType?: string;
|
|
577
|
-
taskTime?: ScheduleTaskTimeData;
|
|
578
|
-
parentGlobalId?: string;
|
|
579
|
-
childGlobalIds: string[];
|
|
580
|
-
productExpressIds: number[];
|
|
581
|
-
productGlobalIds: string[];
|
|
582
|
-
controllingScheduleGlobalIds: string[];
|
|
583
|
-
}
|
|
584
|
-
export interface ScheduleSequenceData {
|
|
585
|
-
globalId: string;
|
|
586
|
-
relatingTaskGlobalId: string;
|
|
587
|
-
relatedTaskGlobalId: string;
|
|
588
|
-
sequenceType: ScheduleSequenceType;
|
|
589
|
-
userDefinedSequenceType?: string;
|
|
590
|
-
timeLagSeconds?: number;
|
|
591
|
-
timeLagDuration?: string;
|
|
592
|
-
}
|
|
593
|
-
export interface WorkScheduleData {
|
|
594
|
-
expressId: number;
|
|
595
|
-
globalId: string;
|
|
596
|
-
kind: 'WorkSchedule' | 'WorkPlan';
|
|
597
|
-
name: string;
|
|
598
|
-
description?: string;
|
|
599
|
-
identification?: string;
|
|
600
|
-
creationDate?: string;
|
|
601
|
-
purpose?: string;
|
|
602
|
-
duration?: string;
|
|
603
|
-
startTime?: string;
|
|
604
|
-
finishTime?: string;
|
|
605
|
-
predefinedType?: string;
|
|
606
|
-
taskGlobalIds: string[];
|
|
607
|
-
}
|
|
608
|
-
export interface ScheduleExtractionData {
|
|
609
|
-
workSchedules: WorkScheduleData[];
|
|
610
|
-
tasks: ScheduleTaskData[];
|
|
611
|
-
sequences: ScheduleSequenceData[];
|
|
612
|
-
hasSchedule: boolean;
|
|
613
|
-
}
|
|
614
|
-
export interface ScheduleBackendMethods {
|
|
615
|
-
/** Extract the full schedule graph from the active or specified model. */
|
|
616
|
-
data(modelId?: string): ScheduleExtractionData;
|
|
617
|
-
/** Convenience — just the task list. */
|
|
618
|
-
tasks(modelId?: string): ScheduleTaskData[];
|
|
619
|
-
/** Convenience — just the work schedules / work plans. */
|
|
620
|
-
workSchedules(modelId?: string): WorkScheduleData[];
|
|
621
|
-
/** Convenience — just the task dependency edges. */
|
|
622
|
-
sequences(modelId?: string): ScheduleSequenceData[];
|
|
623
|
-
}
|
|
557
|
+
export * from './schedule-types.js';
|
|
624
558
|
/** Why one `Values` slot of a load configuration carries no nested load. */
|
|
625
559
|
export * from './structural-types.js';
|
|
560
|
+
export * from './cost-types.js';
|
|
626
561
|
export * from './backend-extension-types.js';
|
|
627
562
|
/**
|
|
628
563
|
* Abstraction over the viewer's internal state — SDK namespaces use this.
|
|
@@ -646,6 +581,8 @@ export interface BimBackend {
|
|
|
646
581
|
readonly lens: LensBackendMethods;
|
|
647
582
|
readonly files: FilesBackendMethods;
|
|
648
583
|
readonly schedule: ScheduleBackendMethods;
|
|
584
|
+
/** IFC 5D cost reads, when the backend retains loaded source bytes. */
|
|
585
|
+
readonly cost?: CostBackendMethods;
|
|
649
586
|
/** Structural analysis reads, when supported by the backend. */
|
|
650
587
|
readonly structural?: StructuralBackendMethods;
|
|
651
588
|
/** Space derivation — present only on local backends with store access. */
|