@ifc-lite/sdk 6.4.0 → 7.1.3
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 +12 -4
- package/dist/cost-backend.d.ts.map +1 -1
- package/dist/cost-backend.js +2 -28
- package/dist/cost-backend.js.map +1 -1
- package/dist/cost-owner-history.d.ts +10 -0
- package/dist/cost-owner-history.d.ts.map +1 -0
- package/dist/cost-owner-history.js +18 -0
- package/dist/cost-owner-history.js.map +1 -0
- package/dist/cost-reference-scan.d.ts.map +1 -1
- package/dist/cost-reference-scan.js +1 -0
- package/dist/cost-reference-scan.js.map +1 -1
- package/dist/cost-store-backend.d.ts +0 -2
- package/dist/cost-store-backend.d.ts.map +1 -1
- package/dist/cost-store-backend.js +0 -5
- package/dist/cost-store-backend.js.map +1 -1
- package/dist/effective-record-overlay.d.ts +5 -0
- package/dist/effective-record-overlay.d.ts.map +1 -0
- package/dist/effective-record-overlay.js +27 -0
- package/dist/effective-record-overlay.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/namespaces/export.d.ts +5 -0
- package/dist/namespaces/export.d.ts.map +1 -1
- package/dist/namespaces/export.js.map +1 -1
- package/dist/namespaces/mutate.d.ts +24 -0
- package/dist/namespaces/mutate.d.ts.map +1 -1
- package/dist/namespaces/mutate.js +45 -0
- package/dist/namespaces/mutate.js.map +1 -1
- package/dist/namespaces/store.d.ts +29 -1
- package/dist/namespaces/store.d.ts.map +1 -1
- package/dist/namespaces/store.js +49 -0
- package/dist/namespaces/store.js.map +1 -1
- package/dist/store-structural-backend.d.ts +10 -0
- package/dist/store-structural-backend.d.ts.map +1 -0
- package/dist/store-structural-backend.js +102 -0
- package/dist/store-structural-backend.js.map +1 -0
- package/dist/store-structural-types.d.ts +36 -0
- package/dist/store-structural-types.d.ts.map +1 -0
- package/dist/store-structural-types.js +5 -0
- package/dist/store-structural-types.js.map +1 -0
- package/dist/types.d.ts +29 -69
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +14 -13
|
@@ -7,6 +7,11 @@ export class MutateNamespace {
|
|
|
7
7
|
constructor(backend) {
|
|
8
8
|
this.backend = backend;
|
|
9
9
|
}
|
|
10
|
+
/** Asynchronous batches in flight; the backend marker is held by the first and released by the last. */
|
|
11
|
+
asyncDepth = 0;
|
|
12
|
+
asyncLabel;
|
|
13
|
+
/** Synchronous batches open right now (nested `batch` calls stack). */
|
|
14
|
+
syncDepth = 0;
|
|
10
15
|
/** Set a property on an entity */
|
|
11
16
|
setProperty(ref, psetName, propName, value) {
|
|
12
17
|
this.backend.mutate.setProperty(ref, psetName, propName, value);
|
|
@@ -26,13 +31,53 @@ export class MutateNamespace {
|
|
|
26
31
|
*/
|
|
27
32
|
batch(label, fn) {
|
|
28
33
|
this.backend.mutate.batchBegin(label);
|
|
34
|
+
this.syncDepth += 1;
|
|
29
35
|
try {
|
|
30
36
|
fn();
|
|
31
37
|
}
|
|
32
38
|
finally {
|
|
39
|
+
this.syncDepth -= 1;
|
|
33
40
|
this.backend.mutate.batchEnd(label);
|
|
34
41
|
}
|
|
35
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* `batch` for asynchronous work (a flow run, a fetch-then-write): the
|
|
45
|
+
* batch stays open across awaits and closes when the promise settles.
|
|
46
|
+
* Other writers on the same backend meanwhile land inside the batch.
|
|
47
|
+
*
|
|
48
|
+
* A `batchAsync` started while another is in flight — nested inside its
|
|
49
|
+
* callback or independent of it — JOINS that batch: no second marker is
|
|
50
|
+
* opened, and the one marker closes when the last of them settles. The
|
|
51
|
+
* two cases cannot be told apart without async context, and both need the
|
|
52
|
+
* same answer: their mutations interleave on the same undo stacks, so one
|
|
53
|
+
* undo step is the only grouping that leaves the model consistent. A
|
|
54
|
+
* second marker would close out of order (label mismatch) or, queued
|
|
55
|
+
* behind its parent, never open.
|
|
56
|
+
*
|
|
57
|
+
* Starting one INSIDE a synchronous `batch` is refused: the sync batch
|
|
58
|
+
* closes before the async work resumes, so its marker would be popped
|
|
59
|
+
* while the async one sits on top — a label mismatch that leaves both open.
|
|
60
|
+
*/
|
|
61
|
+
async batchAsync(label, fn) {
|
|
62
|
+
if (this.asyncDepth === 0) {
|
|
63
|
+
if (this.syncDepth > 0)
|
|
64
|
+
throw new Error(`bim.mutate.batchAsync("${label}") cannot start inside a synchronous batch`);
|
|
65
|
+
this.backend.mutate.batchBegin(label);
|
|
66
|
+
this.asyncLabel = label;
|
|
67
|
+
}
|
|
68
|
+
this.asyncDepth += 1;
|
|
69
|
+
try {
|
|
70
|
+
return await fn();
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
this.asyncDepth -= 1;
|
|
74
|
+
if (this.asyncDepth === 0) {
|
|
75
|
+
const open = this.asyncLabel;
|
|
76
|
+
this.asyncLabel = undefined;
|
|
77
|
+
this.backend.mutate.batchEnd(open);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
36
81
|
/** Undo last mutation for a model */
|
|
37
82
|
undo(modelId) {
|
|
38
83
|
return this.backend.mutate.undo(modelId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,mDAAmD;AACnD,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAE3C,kCAAkC;IAClC,WAAW,CAAC,GAAc,EAAE,QAAgB,EAAE,QAAgB,EAAE,KAAgC;QAC9F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,4CAA4C;IAC5C,YAAY,CAAC,GAAc,EAAE,QAAgB,EAAE,KAAa;QAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,uCAAuC;IACvC,cAAc,CAAC,GAAc,EAAE,QAAgB,EAAE,QAAgB;QAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAa,EAAE,EAAc;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,EAAE,EAAE,CAAC;QACP,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,mDAAmD;AACnD,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAE3C,wGAAwG;IAChG,UAAU,GAAG,CAAC,CAAC;IACf,UAAU,CAAqB;IACvC,uEAAuE;IAC/D,SAAS,GAAG,CAAC,CAAC;IAEtB,kCAAkC;IAClC,WAAW,CAAC,GAAc,EAAE,QAAgB,EAAE,QAAgB,EAAE,KAAgC;QAC9F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,4CAA4C;IAC5C,YAAY,CAAC,GAAc,EAAE,QAAgB,EAAE,KAAa;QAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,uCAAuC;IACvC,cAAc,CAAC,GAAc,EAAE,QAAgB,EAAE,QAAgB;QAC/D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAa,EAAE,EAAc;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,EAAE,EAAE,CAAC;QACP,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,UAAU,CAAI,KAAa,EAAE,EAAoB;QACrD,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,4CAA4C,CAAC,CAAC;YACrH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CostItemParams, CostQuantityParams, CostScheduleParams, CostValueParams } from '@ifc-lite/create';
|
|
1
|
+
import type { CostItemParams, CostQuantityParams, CostScheduleParams, CostValueParams, StructuralAnalysisModelInStoreParams, StructuralCurveMemberInStoreParams, StructuralLinearActionInStoreParams, StructuralLoadGroupInStoreParams, StructuralPointActionInStoreParams, StructuralPointConnectionInStoreParams } from '@ifc-lite/create';
|
|
2
2
|
import type { AddBeamInStoreParams, AddColumnInStoreParams, AddDoorInStoreParams, AddMemberInStoreParams, AddPlateInStoreParams, AddRoofInStoreParams, AddSlabInStoreParams, AddSpaceInStoreParams, AddWallInStoreParams, AddWindowInStoreParams, BimBackend, EntityRef } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* `bim.store` — document-level edits on a parsed model.
|
|
@@ -168,5 +168,33 @@ export declare class StoreNamespace {
|
|
|
168
168
|
removeCostEntity(modelId: string, expressId: number, options?: {
|
|
169
169
|
detach?: boolean;
|
|
170
170
|
}): void;
|
|
171
|
+
/** Add an IfcStructuralAnalysisModel. Not storey-anchored (IfcGroup, no geometry). */
|
|
172
|
+
addStructuralAnalysisModel(modelId: string, params: StructuralAnalysisModelInStoreParams): EntityRef;
|
|
173
|
+
/**
|
|
174
|
+
* Add an IfcStructuralCurveMember between `params.Start` and `params.End`,
|
|
175
|
+
* anchored to a storey for its ObjectPlacement. Emits an
|
|
176
|
+
* IfcTopologyRepresentation (IfcEdge between two IfcVertexPoints) as its
|
|
177
|
+
* analytical line geometry.
|
|
178
|
+
*/
|
|
179
|
+
addStructuralCurveMember(modelId: string, storeyExpressId: number, params: StructuralCurveMemberInStoreParams): EntityRef;
|
|
180
|
+
/** Add an IfcStructuralPointConnection at `params.Position`, optionally with an IfcBoundaryNodeCondition. */
|
|
181
|
+
addStructuralPointConnection(modelId: string, storeyExpressId: number, params: StructuralPointConnectionInStoreParams): EntityRef;
|
|
182
|
+
/** Add an IfcStructuralLoadGroup, or an IfcStructuralLoadCase when `params.SelfWeightCoefficients` is given. */
|
|
183
|
+
addStructuralLoadGroup(modelId: string, params: StructuralLoadGroupInStoreParams): EntityRef;
|
|
184
|
+
/** Add an IfcStructuralPointAction carrying an IfcStructuralLoadSingleForce. */
|
|
185
|
+
addStructuralPointAction(modelId: string, params: StructuralPointActionInStoreParams): EntityRef;
|
|
186
|
+
/** Add an IfcStructuralLinearAction carrying an IfcStructuralLoadLinearForce. */
|
|
187
|
+
addStructuralLinearAction(modelId: string, params: StructuralLinearActionInStoreParams): EntityRef;
|
|
188
|
+
/** Link a structural member to a structural connection via IfcRelConnectsStructuralMember. */
|
|
189
|
+
connectStructuralMemberToConnection(modelId: string, memberExpressId: number, connectionExpressId: number): EntityRef;
|
|
190
|
+
/** Apply a structural action/reaction to the member or connection it acts on via IfcRelConnectsStructuralActivity. */
|
|
191
|
+
connectStructuralActivityToItem(modelId: string, itemExpressId: number, activityExpressId: number): EntityRef;
|
|
192
|
+
/**
|
|
193
|
+
* Assign members/connections into an analysis model, or activities into a
|
|
194
|
+
* load group, via IfcRelAssignsToGroup — the relationship
|
|
195
|
+
* `bim.structural.analysisModels()[i].itemGlobalIds` and
|
|
196
|
+
* `bim.structural.loadGroups()[i].activityGlobalIds` read back.
|
|
197
|
+
*/
|
|
198
|
+
assignToStructuralGroup(modelId: string, groupExpressId: number, objectExpressIds: number[]): EntityRef;
|
|
171
199
|
}
|
|
172
200
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/namespaces/store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/namespaces/store.ts"],"names":[],"mappings":"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"}
|
package/dist/namespaces/store.js
CHANGED
|
@@ -237,5 +237,54 @@ export class StoreNamespace {
|
|
|
237
237
|
removeCostEntity(modelId, expressId, options) {
|
|
238
238
|
this.backend.store.removeCostEntity(modelId, expressId, options);
|
|
239
239
|
}
|
|
240
|
+
// -- Structural analysis authoring on a loaded model (#5167 task S.1) ------
|
|
241
|
+
// `bim.structural.*` is read-only; these methods are the write side, for
|
|
242
|
+
// scripts (SDK / CLI / MCP / sandbox) that author an analytical model.
|
|
243
|
+
/** Add an IfcStructuralAnalysisModel. Not storey-anchored (IfcGroup, no geometry). */
|
|
244
|
+
addStructuralAnalysisModel(modelId, params) {
|
|
245
|
+
return this.backend.store.addStructuralAnalysisModel(modelId, params);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Add an IfcStructuralCurveMember between `params.Start` and `params.End`,
|
|
249
|
+
* anchored to a storey for its ObjectPlacement. Emits an
|
|
250
|
+
* IfcTopologyRepresentation (IfcEdge between two IfcVertexPoints) as its
|
|
251
|
+
* analytical line geometry.
|
|
252
|
+
*/
|
|
253
|
+
addStructuralCurveMember(modelId, storeyExpressId, params) {
|
|
254
|
+
return this.backend.store.addStructuralCurveMember(modelId, storeyExpressId, params);
|
|
255
|
+
}
|
|
256
|
+
/** Add an IfcStructuralPointConnection at `params.Position`, optionally with an IfcBoundaryNodeCondition. */
|
|
257
|
+
addStructuralPointConnection(modelId, storeyExpressId, params) {
|
|
258
|
+
return this.backend.store.addStructuralPointConnection(modelId, storeyExpressId, params);
|
|
259
|
+
}
|
|
260
|
+
/** Add an IfcStructuralLoadGroup, or an IfcStructuralLoadCase when `params.SelfWeightCoefficients` is given. */
|
|
261
|
+
addStructuralLoadGroup(modelId, params) {
|
|
262
|
+
return this.backend.store.addStructuralLoadGroup(modelId, params);
|
|
263
|
+
}
|
|
264
|
+
/** Add an IfcStructuralPointAction carrying an IfcStructuralLoadSingleForce. */
|
|
265
|
+
addStructuralPointAction(modelId, params) {
|
|
266
|
+
return this.backend.store.addStructuralPointAction(modelId, params);
|
|
267
|
+
}
|
|
268
|
+
/** Add an IfcStructuralLinearAction carrying an IfcStructuralLoadLinearForce. */
|
|
269
|
+
addStructuralLinearAction(modelId, params) {
|
|
270
|
+
return this.backend.store.addStructuralLinearAction(modelId, params);
|
|
271
|
+
}
|
|
272
|
+
/** Link a structural member to a structural connection via IfcRelConnectsStructuralMember. */
|
|
273
|
+
connectStructuralMemberToConnection(modelId, memberExpressId, connectionExpressId) {
|
|
274
|
+
return this.backend.store.connectStructuralMemberToConnection(modelId, memberExpressId, connectionExpressId);
|
|
275
|
+
}
|
|
276
|
+
/** Apply a structural action/reaction to the member or connection it acts on via IfcRelConnectsStructuralActivity. */
|
|
277
|
+
connectStructuralActivityToItem(modelId, itemExpressId, activityExpressId) {
|
|
278
|
+
return this.backend.store.connectStructuralActivityToItem(modelId, itemExpressId, activityExpressId);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Assign members/connections into an analysis model, or activities into a
|
|
282
|
+
* load group, via IfcRelAssignsToGroup — the relationship
|
|
283
|
+
* `bim.structural.analysisModels()[i].itemGlobalIds` and
|
|
284
|
+
* `bim.structural.loadGroups()[i].activityGlobalIds` read back.
|
|
285
|
+
*/
|
|
286
|
+
assignToStructuralGroup(modelId, groupExpressId, objectExpressIds) {
|
|
287
|
+
return this.backend.store.assignToStructuralGroup(modelId, groupExpressId, objectExpressIds);
|
|
288
|
+
}
|
|
240
289
|
}
|
|
241
290
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/namespaces/store.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/namespaces/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CostStoreModelResolution } from './cost-store-backend.js';
|
|
2
|
+
import type { StructuralStoreBackendMethods } from './store-structural-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Same per-call resolution the cost backend takes. Aliased rather than
|
|
5
|
+
* redeclared so a host can pass one closure to both factories; named for this
|
|
6
|
+
* surface so the structural call sites do not read as cost ones.
|
|
7
|
+
*/
|
|
8
|
+
export type StructuralStoreModelResolver = (modelId?: string) => CostStoreModelResolution;
|
|
9
|
+
export declare function createStructuralStoreBackend(resolve: StructuralStoreModelResolver): StructuralStoreBackendMethods;
|
|
10
|
+
//# sourceMappingURL=store-structural-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-structural-backend.d.ts","sourceRoot":"","sources":["../src/store-structural-backend.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAGjF;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,wBAAwB,CAAC;AAoC1F,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,4BAA4B,GACpC,6BAA6B,CA8D/B"}
|
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* Builds `bim.store`'s structural-analysis authoring methods (#5167 task S.1).
|
|
6
|
+
*
|
|
7
|
+
* This exists for the same reason `createCostStoreBackend` does: every host
|
|
8
|
+
* that implements `StoreBackendMethods` — the CLI's `HeadlessBackend` and the
|
|
9
|
+
* viewer's store adapter — would otherwise have to re-derive the anchor and
|
|
10
|
+
* re-wire nine builders identically, and the two copies would drift.
|
|
11
|
+
*
|
|
12
|
+
* Declaring the methods on the interface without a factory would not have made
|
|
13
|
+
* them callable: `StoreBackendMethods` is structural, so the interface alone
|
|
14
|
+
* only breaks every host's typecheck. Spreading this in is what makes
|
|
15
|
+
* `bim.store.addStructural*` actually reach `@ifc-lite/create`.
|
|
16
|
+
*/
|
|
17
|
+
import { addStructuralAnalysisModelToStore, addStructuralCurveMemberToStore, addStructuralLinearActionToStore, addStructuralLoadGroupToStore, addStructuralPointActionToStore, addStructuralPointConnectionToStore, assignToStructuralGroupInStore, connectStructuralActivityToItemInStore, connectStructuralMemberToConnectionInStore, resolveSpatialAnchor, } from '@ifc-lite/create';
|
|
18
|
+
function ref(modelId, expressId) {
|
|
19
|
+
return { modelId, expressId };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* `IfcStructuralAnalysisModel` and friends do not exist before IFC4, and the
|
|
23
|
+
* builders each refuse IFC2X3 individually. Refusing here as well keeps the
|
|
24
|
+
* message at the call the caller actually made, and refuses IFC5 — which no
|
|
25
|
+
* builder checks, and which `extractStructuralOnDemand` cannot read back.
|
|
26
|
+
*/
|
|
27
|
+
const SUPPORTED_STRUCTURAL_SCHEMAS = new Set(['IFC4', 'IFC4X3']);
|
|
28
|
+
function assertStructuralSchema(resolved) {
|
|
29
|
+
const raw = resolved.store.schemaVersion;
|
|
30
|
+
if (raw !== undefined && !SUPPORTED_STRUCTURAL_SCHEMAS.has(raw)) {
|
|
31
|
+
throw new Error(`bim.store structural authoring: schema '${raw}' is not supported; use IFC4 or IFC4X3.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The storey-less anchor the group/action builders take. They are `IfcGroup`
|
|
36
|
+
* and `IfcStructuralActivity` subtypes with no `ObjectPlacement`, so resolving
|
|
37
|
+
* a spatial anchor for them would be inventing a containment they do not have.
|
|
38
|
+
*/
|
|
39
|
+
function groupAnchor(resolved) {
|
|
40
|
+
return {
|
|
41
|
+
ownerHistoryId: resolved.ownerHistoryId,
|
|
42
|
+
guidRandom: undefined,
|
|
43
|
+
schema: resolved.store.schemaVersion,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function createStructuralStoreBackend(resolve) {
|
|
47
|
+
const resolved = (modelId) => {
|
|
48
|
+
const model = resolve(modelId);
|
|
49
|
+
assertStructuralSchema(model);
|
|
50
|
+
return model;
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
addStructuralAnalysisModel(modelId, params) {
|
|
54
|
+
const model = resolved(modelId);
|
|
55
|
+
const result = addStructuralAnalysisModelToStore(model.editor, groupAnchor(model), params);
|
|
56
|
+
return ref(model.modelId, result.analysisModelId);
|
|
57
|
+
},
|
|
58
|
+
addStructuralCurveMember(modelId, storeyExpressId, params) {
|
|
59
|
+
const model = resolved(modelId);
|
|
60
|
+
const anchor = resolveSpatialAnchor(model.store, storeyExpressId);
|
|
61
|
+
const result = addStructuralCurveMemberToStore(model.editor, anchor, params);
|
|
62
|
+
return ref(model.modelId, result.memberId);
|
|
63
|
+
},
|
|
64
|
+
addStructuralPointConnection(modelId, storeyExpressId, params) {
|
|
65
|
+
const model = resolved(modelId);
|
|
66
|
+
const anchor = resolveSpatialAnchor(model.store, storeyExpressId);
|
|
67
|
+
const result = addStructuralPointConnectionToStore(model.editor, anchor, params);
|
|
68
|
+
return ref(model.modelId, result.connectionId);
|
|
69
|
+
},
|
|
70
|
+
addStructuralLoadGroup(modelId, params) {
|
|
71
|
+
const model = resolved(modelId);
|
|
72
|
+
const result = addStructuralLoadGroupToStore(model.editor, groupAnchor(model), params);
|
|
73
|
+
return ref(model.modelId, result.loadGroupId);
|
|
74
|
+
},
|
|
75
|
+
addStructuralPointAction(modelId, params) {
|
|
76
|
+
const model = resolved(modelId);
|
|
77
|
+
const result = addStructuralPointActionToStore(model.editor, groupAnchor(model), params);
|
|
78
|
+
return ref(model.modelId, result.activityId);
|
|
79
|
+
},
|
|
80
|
+
addStructuralLinearAction(modelId, params) {
|
|
81
|
+
const model = resolved(modelId);
|
|
82
|
+
const result = addStructuralLinearActionToStore(model.editor, groupAnchor(model), params);
|
|
83
|
+
return ref(model.modelId, result.activityId);
|
|
84
|
+
},
|
|
85
|
+
connectStructuralMemberToConnection(modelId, memberExpressId, connectionExpressId) {
|
|
86
|
+
const model = resolved(modelId);
|
|
87
|
+
const relId = connectStructuralMemberToConnectionInStore(model.editor, model.ownerHistoryId, memberExpressId, connectionExpressId);
|
|
88
|
+
return ref(model.modelId, relId);
|
|
89
|
+
},
|
|
90
|
+
connectStructuralActivityToItem(modelId, itemExpressId, activityExpressId) {
|
|
91
|
+
const model = resolved(modelId);
|
|
92
|
+
const relId = connectStructuralActivityToItemInStore(model.editor, model.ownerHistoryId, itemExpressId, activityExpressId);
|
|
93
|
+
return ref(model.modelId, relId);
|
|
94
|
+
},
|
|
95
|
+
assignToStructuralGroup(modelId, groupExpressId, objectExpressIds) {
|
|
96
|
+
const model = resolved(modelId);
|
|
97
|
+
const relId = assignToStructuralGroupInStore(model.editor, model.ownerHistoryId, groupExpressId, objectExpressIds);
|
|
98
|
+
return ref(model.modelId, relId);
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=store-structural-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-structural-backend.js","sourceRoot":"","sources":["../src/store-structural-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `bim.store.addStructural*` / `connectStructural*` / `assignToStructuralGroup`
|
|
3
|
+
* — loaded-model structural-analysis authoring (#5167 task S.1). Split out
|
|
4
|
+
* of `types.ts` (allowlisted at 743 lines, already at budget) so this
|
|
5
|
+
* surface doesn't grow that file — same reason `store-cost-types.ts` is
|
|
6
|
+
* its own module.
|
|
7
|
+
*
|
|
8
|
+
* Param shapes are imported straight from `@ifc-lite/create` rather than
|
|
9
|
+
* re-declared here, matching `store-cost-types.ts`'s
|
|
10
|
+
* `CostItemParams`/`CostScheduleParams` (not the separately-mirrored
|
|
11
|
+
* `AddColumnInStoreParams`-style physical-element params in `types.ts`) —
|
|
12
|
+
* there is no SDK-specific divergence to justify a second copy.
|
|
13
|
+
*/
|
|
14
|
+
import type { StructuralAnalysisModelInStoreParams, StructuralCurveMemberInStoreParams, StructuralLinearActionInStoreParams, StructuralLoadGroupInStoreParams, StructuralPointActionInStoreParams, StructuralPointConnectionInStoreParams } from '@ifc-lite/create';
|
|
15
|
+
import type { EntityRef } from './types.js';
|
|
16
|
+
export interface StructuralStoreBackendMethods {
|
|
17
|
+
/** `IfcStructuralAnalysisModel` — no storey anchor (`IfcGroup`, not `IfcProduct`). */
|
|
18
|
+
addStructuralAnalysisModel(modelId: string, params: StructuralAnalysisModelInStoreParams): EntityRef;
|
|
19
|
+
/** `IfcStructuralCurveMember`, anchored to a storey for its `ObjectPlacement`. */
|
|
20
|
+
addStructuralCurveMember(modelId: string, storeyExpressId: number, params: StructuralCurveMemberInStoreParams): EntityRef;
|
|
21
|
+
/** `IfcStructuralPointConnection`, anchored to a storey for its `ObjectPlacement`. */
|
|
22
|
+
addStructuralPointConnection(modelId: string, storeyExpressId: number, params: StructuralPointConnectionInStoreParams): EntityRef;
|
|
23
|
+
/** `IfcStructuralLoadGroup` or `IfcStructuralLoadCase` (picked by `params.SelfWeightCoefficients`) — no storey anchor. */
|
|
24
|
+
addStructuralLoadGroup(modelId: string, params: StructuralLoadGroupInStoreParams): EntityRef;
|
|
25
|
+
/** `IfcStructuralPointAction` + its `IfcStructuralLoadSingleForce` — no storey anchor (see `structural-action.ts`). */
|
|
26
|
+
addStructuralPointAction(modelId: string, params: StructuralPointActionInStoreParams): EntityRef;
|
|
27
|
+
/** `IfcStructuralLinearAction` + its `IfcStructuralLoadLinearForce` — no storey anchor. */
|
|
28
|
+
addStructuralLinearAction(modelId: string, params: StructuralLinearActionInStoreParams): EntityRef;
|
|
29
|
+
/** `IfcRelConnectsStructuralMember` linking a curve member to a point connection. */
|
|
30
|
+
connectStructuralMemberToConnection(modelId: string, memberExpressId: number, connectionExpressId: number): EntityRef;
|
|
31
|
+
/** `IfcRelConnectsStructuralActivity` applying an action/reaction to the member or connection it acts on. */
|
|
32
|
+
connectStructuralActivityToItem(modelId: string, itemExpressId: number, activityExpressId: number): EntityRef;
|
|
33
|
+
/** `IfcRelAssignsToGroup` — members/connections into an analysis model, or activities into a load group. */
|
|
34
|
+
assignToStructuralGroup(modelId: string, groupExpressId: number, objectExpressIds: number[]): EntityRef;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=store-structural-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-structural-types.d.ts","sourceRoot":"","sources":["../src/store-structural-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,oCAAoC,EACpC,kCAAkC,EAClC,mCAAmC,EACnC,gCAAgC,EAChC,kCAAkC,EAClC,sCAAsC,EACvC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,6BAA6B;IAC5C,sFAAsF;IACtF,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,oCAAoC,GAAG,SAAS,CAAC;IACrG,kFAAkF;IAClF,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,kCAAkC,GAAG,SAAS,CAAC;IAC1H,sFAAsF;IACtF,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,sCAAsC,GAAG,SAAS,CAAC;IAClI,0HAA0H;IAC1H,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gCAAgC,GAAG,SAAS,CAAC;IAC7F,uHAAuH;IACvH,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,kCAAkC,GAAG,SAAS,CAAC;IACjG,2FAA2F;IAC3F,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mCAAmC,GAAG,SAAS,CAAC;IACnG,qFAAqF;IACrF,mCAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtH,6GAA6G;IAC7G,+BAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9G,4GAA4G;IAC5G,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACzG"}
|
|
@@ -0,0 +1,5 @@
|
|
|
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
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=store-structural-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-structural-types.js","sourceRoot":"","sources":["../src/store-structural-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { ScheduleBackendMethods } from './schedule-types.js';
|
|
|
9
9
|
import type { CostBackendMethods } from './cost-types.js';
|
|
10
10
|
import type { SpacesBackendMethods, StyleBackendMethods } from './backend-extension-types.js';
|
|
11
11
|
import type { CostStoreBackendMethods } from './store-cost-types.js';
|
|
12
|
+
import type { StructuralStoreBackendMethods } from './store-structural-types.js';
|
|
12
13
|
/** Reference to a specific entity within a federated model set */
|
|
13
14
|
export interface EntityRef {
|
|
14
15
|
modelId: string;
|
|
@@ -348,40 +349,41 @@ export interface MutateBackendMethods {
|
|
|
348
349
|
* the underlying store buffer is never mutated; changes materialise on
|
|
349
350
|
* the next `bim.export.ifc()`.
|
|
350
351
|
*/
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
352
|
+
/**
|
|
353
|
+
* The `IfcRoot` + `IfcElement` header every in-store element builder takes:
|
|
354
|
+
* naming, and the optional explicit `GlobalId` a re-runnable author (a flow
|
|
355
|
+
* graph) derives from a stable key so a re-run updates the element instead
|
|
356
|
+
* of duplicating it. A malformed GlobalId is refused by the builder.
|
|
357
|
+
*/
|
|
358
|
+
export interface AddElementCommonParams {
|
|
356
359
|
Name?: string;
|
|
357
360
|
Description?: string;
|
|
358
361
|
ObjectType?: string;
|
|
359
362
|
Tag?: string;
|
|
363
|
+
GlobalId?: string;
|
|
364
|
+
}
|
|
365
|
+
export interface AddColumnInStoreParams extends AddElementCommonParams {
|
|
366
|
+
Position: [number, number, number];
|
|
367
|
+
Width: number;
|
|
368
|
+
Depth: number;
|
|
369
|
+
Height: number;
|
|
360
370
|
}
|
|
361
|
-
export interface AddWallInStoreParams {
|
|
371
|
+
export interface AddWallInStoreParams extends AddElementCommonParams {
|
|
362
372
|
Start: [number, number, number];
|
|
363
373
|
End: [number, number, number];
|
|
364
374
|
Thickness: number;
|
|
365
375
|
Height: number;
|
|
366
|
-
Name?: string;
|
|
367
|
-
Description?: string;
|
|
368
|
-
ObjectType?: string;
|
|
369
|
-
Tag?: string;
|
|
370
376
|
}
|
|
371
377
|
export type AddSlabInStoreParams = AddSlabRectangleParams | AddSlabPolygonParams;
|
|
372
|
-
export interface AddSlabRectangleParams {
|
|
378
|
+
export interface AddSlabRectangleParams extends AddElementCommonParams {
|
|
373
379
|
Position: [number, number, number];
|
|
374
380
|
Width: number;
|
|
375
381
|
Depth: number;
|
|
376
382
|
Thickness: number;
|
|
377
383
|
/** `'rectangle'` (or omit) selects the IfcRectangleProfileDef path. */
|
|
378
384
|
Profile?: 'rectangle';
|
|
379
|
-
Name?: string;
|
|
380
|
-
Description?: string;
|
|
381
|
-
ObjectType?: string;
|
|
382
|
-
Tag?: string;
|
|
383
385
|
}
|
|
384
|
-
export interface AddSlabPolygonParams {
|
|
386
|
+
export interface AddSlabPolygonParams extends AddElementCommonParams {
|
|
385
387
|
/** `'polygon'` selects the IfcArbitraryClosedProfileDef path. */
|
|
386
388
|
Profile: 'polygon';
|
|
387
389
|
/** Closed outline as 2D storey-local points (≥3). Auto-closed at emit time. */
|
|
@@ -389,125 +391,83 @@ export interface AddSlabPolygonParams {
|
|
|
389
391
|
/** Local placement origin (metres). Defaults to `[0, 0, 0]`. */
|
|
390
392
|
Position?: [number, number, number];
|
|
391
393
|
Thickness: number;
|
|
392
|
-
Name?: string;
|
|
393
|
-
Description?: string;
|
|
394
|
-
ObjectType?: string;
|
|
395
|
-
Tag?: string;
|
|
396
394
|
}
|
|
397
|
-
export interface AddBeamInStoreParams {
|
|
395
|
+
export interface AddBeamInStoreParams extends AddElementCommonParams {
|
|
398
396
|
Start: [number, number, number];
|
|
399
397
|
End: [number, number, number];
|
|
400
398
|
Width: number;
|
|
401
399
|
Height: number;
|
|
402
|
-
Name?: string;
|
|
403
|
-
Description?: string;
|
|
404
|
-
ObjectType?: string;
|
|
405
|
-
Tag?: string;
|
|
406
400
|
}
|
|
407
|
-
export interface AddDoorInStoreParams {
|
|
401
|
+
export interface AddDoorInStoreParams extends AddElementCommonParams {
|
|
408
402
|
Position: [number, number, number];
|
|
409
403
|
Width: number;
|
|
410
404
|
Height: number;
|
|
411
405
|
FrameThickness?: number;
|
|
412
406
|
PredefinedType?: 'DOOR' | 'GATE' | 'TRAPDOOR' | 'USERDEFINED' | 'NOTDEFINED';
|
|
413
407
|
OperationType?: string;
|
|
414
|
-
Name?: string;
|
|
415
|
-
Description?: string;
|
|
416
|
-
ObjectType?: string;
|
|
417
|
-
Tag?: string;
|
|
418
408
|
}
|
|
419
|
-
export interface AddWindowInStoreParams {
|
|
409
|
+
export interface AddWindowInStoreParams extends AddElementCommonParams {
|
|
420
410
|
Position: [number, number, number];
|
|
421
411
|
Width: number;
|
|
422
412
|
Height: number;
|
|
423
413
|
FrameThickness?: number;
|
|
424
414
|
PredefinedType?: 'WINDOW' | 'SKYLIGHT' | 'LIGHTDOME' | 'USERDEFINED' | 'NOTDEFINED';
|
|
425
415
|
PartitioningType?: string;
|
|
426
|
-
Name?: string;
|
|
427
|
-
Description?: string;
|
|
428
|
-
ObjectType?: string;
|
|
429
|
-
Tag?: string;
|
|
430
416
|
}
|
|
431
417
|
export type AddSpaceInStoreParams = AddSpaceRectangleParams | AddSpacePolygonParams;
|
|
432
|
-
export interface AddSpaceRectangleParams {
|
|
418
|
+
export interface AddSpaceRectangleParams extends Omit<AddElementCommonParams, 'Tag'> {
|
|
433
419
|
Position: [number, number, number];
|
|
434
420
|
Width: number;
|
|
435
421
|
Depth: number;
|
|
436
422
|
Height: number;
|
|
437
423
|
Profile?: 'rectangle';
|
|
438
|
-
Name?: string;
|
|
439
424
|
LongName?: string;
|
|
440
|
-
Description?: string;
|
|
441
|
-
ObjectType?: string;
|
|
442
425
|
}
|
|
443
|
-
export interface AddSpacePolygonParams {
|
|
426
|
+
export interface AddSpacePolygonParams extends Omit<AddElementCommonParams, 'Tag'> {
|
|
444
427
|
Profile: 'polygon';
|
|
445
428
|
OuterCurve: Array<[number, number]>;
|
|
446
429
|
Position?: [number, number, number];
|
|
447
430
|
Height: number;
|
|
448
|
-
Name?: string;
|
|
449
431
|
LongName?: string;
|
|
450
|
-
Description?: string;
|
|
451
|
-
ObjectType?: string;
|
|
452
432
|
}
|
|
453
433
|
export type AddRoofInStoreParams = AddRoofRectangleParams | AddRoofPolygonParams;
|
|
454
|
-
export interface AddRoofRectangleParams {
|
|
434
|
+
export interface AddRoofRectangleParams extends AddElementCommonParams {
|
|
455
435
|
Position: [number, number, number];
|
|
456
436
|
Width: number;
|
|
457
437
|
Depth: number;
|
|
458
438
|
Thickness: number;
|
|
459
439
|
Profile?: 'rectangle';
|
|
460
|
-
Name?: string;
|
|
461
|
-
Description?: string;
|
|
462
|
-
ObjectType?: string;
|
|
463
|
-
Tag?: string;
|
|
464
440
|
}
|
|
465
|
-
export interface AddRoofPolygonParams {
|
|
441
|
+
export interface AddRoofPolygonParams extends AddElementCommonParams {
|
|
466
442
|
Profile: 'polygon';
|
|
467
443
|
OuterCurve: Array<[number, number]>;
|
|
468
444
|
Position?: [number, number, number];
|
|
469
445
|
Thickness: number;
|
|
470
|
-
Name?: string;
|
|
471
|
-
Description?: string;
|
|
472
|
-
ObjectType?: string;
|
|
473
|
-
Tag?: string;
|
|
474
446
|
}
|
|
475
447
|
export type AddPlateInStoreParams = AddPlateRectangleParams | AddPlatePolygonParams;
|
|
476
|
-
export interface AddPlateRectangleParams {
|
|
448
|
+
export interface AddPlateRectangleParams extends AddElementCommonParams {
|
|
477
449
|
Position: [number, number, number];
|
|
478
450
|
Width: number;
|
|
479
451
|
Depth: number;
|
|
480
452
|
Thickness: number;
|
|
481
453
|
Profile?: 'rectangle';
|
|
482
454
|
PredefinedType?: 'CURTAIN_PANEL' | 'SHEET' | 'USERDEFINED' | 'NOTDEFINED';
|
|
483
|
-
Name?: string;
|
|
484
|
-
Description?: string;
|
|
485
|
-
ObjectType?: string;
|
|
486
|
-
Tag?: string;
|
|
487
455
|
}
|
|
488
|
-
export interface AddPlatePolygonParams {
|
|
456
|
+
export interface AddPlatePolygonParams extends AddElementCommonParams {
|
|
489
457
|
Profile: 'polygon';
|
|
490
458
|
OuterCurve: Array<[number, number]>;
|
|
491
459
|
Position?: [number, number, number];
|
|
492
460
|
Thickness: number;
|
|
493
461
|
PredefinedType?: 'CURTAIN_PANEL' | 'SHEET' | 'USERDEFINED' | 'NOTDEFINED';
|
|
494
|
-
Name?: string;
|
|
495
|
-
Description?: string;
|
|
496
|
-
ObjectType?: string;
|
|
497
|
-
Tag?: string;
|
|
498
462
|
}
|
|
499
|
-
export interface AddMemberInStoreParams {
|
|
463
|
+
export interface AddMemberInStoreParams extends AddElementCommonParams {
|
|
500
464
|
Start: [number, number, number];
|
|
501
465
|
End: [number, number, number];
|
|
502
466
|
Width: number;
|
|
503
467
|
Height: number;
|
|
504
468
|
PredefinedType?: 'BRACE' | 'CHORD' | 'COLLAR' | 'MEMBER' | 'MULLION' | 'PLATE' | 'POST' | 'PURLIN' | 'RAFTER' | 'STRINGER' | 'STRUT' | 'STUD' | 'USERDEFINED' | 'NOTDEFINED';
|
|
505
|
-
Name?: string;
|
|
506
|
-
Description?: string;
|
|
507
|
-
ObjectType?: string;
|
|
508
|
-
Tag?: string;
|
|
509
469
|
}
|
|
510
|
-
export interface StoreBackendMethods extends CostStoreBackendMethods {
|
|
470
|
+
export interface StoreBackendMethods extends CostStoreBackendMethods, StructuralStoreBackendMethods {
|
|
511
471
|
addEntity(modelId: string, def: {
|
|
512
472
|
type: string;
|
|
513
473
|
attributes: unknown[];
|