@ifc-lite/sdk 8.0.0 → 9.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 +42 -0
- package/dist/cost-store-backend.d.ts +2 -0
- package/dist/cost-store-backend.d.ts.map +1 -1
- package/dist/cost-store-backend.js.map +1 -1
- package/dist/group-store-backend.d.ts +5 -0
- package/dist/group-store-backend.d.ts.map +1 -0
- package/dist/group-store-backend.js +43 -0
- package/dist/group-store-backend.js.map +1 -0
- package/dist/headless-mutate.d.ts +0 -10
- package/dist/headless-mutate.d.ts.map +1 -1
- package/dist/headless-mutate.js +8 -2
- package/dist/headless-mutate.js.map +1 -1
- package/dist/host.d.ts +2 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +34 -11
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/namespaces/ids-authoring.d.ts +74 -0
- package/dist/namespaces/ids-authoring.d.ts.map +1 -0
- package/dist/namespaces/ids-authoring.js +99 -0
- package/dist/namespaces/ids-authoring.js.map +1 -0
- package/dist/namespaces/ids.d.ts +4 -0
- package/dist/namespaces/ids.d.ts.map +1 -1
- package/dist/namespaces/ids.js +11 -0
- package/dist/namespaces/ids.js.map +1 -1
- package/dist/namespaces/mutate.d.ts +3 -3
- package/dist/namespaces/mutate.d.ts.map +1 -1
- package/dist/namespaces/mutate.js +7 -3
- package/dist/namespaces/mutate.js.map +1 -1
- package/dist/namespaces/store-group.d.ts +9 -0
- package/dist/namespaces/store-group.d.ts.map +1 -0
- package/dist/namespaces/store-group.js +31 -0
- package/dist/namespaces/store-group.js.map +1 -0
- package/dist/namespaces/store-modelling.d.ts +70 -0
- package/dist/namespaces/store-modelling.d.ts.map +1 -0
- package/dist/namespaces/store-modelling.js +173 -0
- package/dist/namespaces/store-modelling.js.map +1 -0
- package/dist/namespaces/store.d.ts +15 -34
- package/dist/namespaces/store.d.ts.map +1 -1
- package/dist/namespaces/store.js +10 -52
- package/dist/namespaces/store.js.map +1 -1
- package/dist/review/bcf.d.ts +10 -0
- package/dist/review/bcf.d.ts.map +1 -0
- package/dist/review/bcf.js +33 -0
- package/dist/review/bcf.js.map +1 -0
- package/dist/review/cards.d.ts +60 -0
- package/dist/review/cards.d.ts.map +1 -0
- package/dist/review/cards.js +90 -0
- package/dist/review/cards.js.map +1 -0
- package/dist/review/disciplines.d.ts +3 -0
- package/dist/review/disciplines.d.ts.map +1 -0
- package/dist/review/disciplines.js +10 -0
- package/dist/review/disciplines.js.map +1 -0
- package/dist/review/identity.d.ts +27 -0
- package/dist/review/identity.d.ts.map +1 -0
- package/dist/review/identity.js +42 -0
- package/dist/review/identity.js.map +1 -0
- package/dist/review/snapshot.d.ts +15 -0
- package/dist/review/snapshot.d.ts.map +1 -0
- package/dist/review/snapshot.js +25 -0
- package/dist/review/snapshot.js.map +1 -0
- package/dist/review/types.d.ts +167 -0
- package/dist/review/types.d.ts.map +1 -0
- package/dist/review/types.js +11 -0
- package/dist/review/types.js.map +1 -0
- package/dist/review/validation.d.ts +14 -0
- package/dist/review/validation.d.ts.map +1 -0
- package/dist/review/validation.js +57 -0
- package/dist/review/validation.js.map +1 -0
- package/dist/review.d.ts +11 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +12 -0
- package/dist/review.js.map +1 -0
- package/dist/schedule-types.d.ts +4 -0
- package/dist/schedule-types.d.ts.map +1 -1
- package/dist/store-align-command.d.ts +13 -0
- package/dist/store-align-command.d.ts.map +1 -0
- package/dist/store-align-command.js +31 -0
- package/dist/store-align-command.js.map +1 -0
- package/dist/store-authoring-exports.d.ts +10 -0
- package/dist/store-authoring-exports.d.ts.map +1 -0
- package/dist/store-authoring-exports.js +9 -0
- package/dist/store-authoring-exports.js.map +1 -0
- package/dist/store-authoring-types.d.ts +8 -0
- package/dist/store-authoring-types.d.ts.map +1 -0
- package/dist/store-authoring-types.js +2 -0
- package/dist/store-authoring-types.js.map +1 -0
- package/dist/store-group-types.d.ts +20 -0
- package/dist/store-group-types.d.ts.map +1 -0
- package/dist/store-group-types.js +2 -0
- package/dist/store-group-types.js.map +1 -0
- package/dist/store-modelling-backend.d.ts.map +1 -1
- package/dist/store-modelling-backend.js +73 -12
- package/dist/store-modelling-backend.js.map +1 -1
- package/dist/store-modelling-types.d.ts +33 -2
- package/dist/store-modelling-types.d.ts.map +1 -1
- package/dist/store-ordinary-backend.d.ts +10 -0
- package/dist/store-ordinary-backend.d.ts.map +1 -0
- package/dist/store-ordinary-backend.js +27 -0
- package/dist/store-ordinary-backend.js.map +1 -0
- package/dist/store-physical-backend.d.ts +5 -0
- package/dist/store-physical-backend.d.ts.map +1 -0
- package/dist/store-physical-backend.js +51 -0
- package/dist/store-physical-backend.js.map +1 -0
- package/dist/store-physical-types.d.ts +33 -0
- package/dist/store-physical-types.d.ts.map +1 -0
- package/dist/store-physical-types.js +5 -0
- package/dist/store-physical-types.js.map +1 -0
- package/dist/store-room-auto-all.d.ts +5 -0
- package/dist/store-room-auto-all.d.ts.map +1 -0
- package/dist/store-room-auto-all.js +94 -0
- package/dist/store-room-auto-all.js.map +1 -0
- package/dist/store-room-command.d.ts +91 -0
- package/dist/store-room-command.d.ts.map +1 -0
- package/dist/store-room-command.js +197 -0
- package/dist/store-room-command.js.map +1 -0
- package/dist/types.d.ts +12 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +22 -15
|
@@ -0,0 +1,99 @@
|
|
|
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
|
+
// Loaded on first use, like `@ifc-lite/ids` in `bim.ids`, so scripts that
|
|
5
|
+
// never author IDS do not pay for the schema tables.
|
|
6
|
+
async function load() {
|
|
7
|
+
const authoringName = '@ifc-lite/ids-authoring';
|
|
8
|
+
const idsName = '@ifc-lite/ids';
|
|
9
|
+
const [authoring, ids] = await Promise.all([
|
|
10
|
+
import(/* webpackIgnore: true */ authoringName),
|
|
11
|
+
import(/* webpackIgnore: true */ idsName),
|
|
12
|
+
]);
|
|
13
|
+
return { authoring, writer: ids.writeIdsXml };
|
|
14
|
+
}
|
|
15
|
+
/** One open IDS document. Every change goes through `apply`. */
|
|
16
|
+
export class IDSAuthoringDocument {
|
|
17
|
+
lib;
|
|
18
|
+
writer;
|
|
19
|
+
gate;
|
|
20
|
+
lintCtx;
|
|
21
|
+
state;
|
|
22
|
+
/** @internal Use `bim.ids.authoring.open` / `create`. */
|
|
23
|
+
constructor(lib, writer, gate, lintCtx, doc) {
|
|
24
|
+
this.lib = lib;
|
|
25
|
+
this.writer = writer;
|
|
26
|
+
this.gate = gate;
|
|
27
|
+
this.lintCtx = lintCtx;
|
|
28
|
+
this.state = lib.createStudioState(doc);
|
|
29
|
+
}
|
|
30
|
+
/** The current Studio document (IDS content plus node ids and sidecar). */
|
|
31
|
+
get doc() {
|
|
32
|
+
return this.state.doc;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validate, gate and apply a batch of ops. A refused batch changes
|
|
36
|
+
* nothing; `errors` says why, with candidates for each wrong name.
|
|
37
|
+
*/
|
|
38
|
+
apply(ops) {
|
|
39
|
+
const result = this.lib.applyOpsGated(this.state.doc, ops, this.gate);
|
|
40
|
+
if (!result.ok)
|
|
41
|
+
return { ok: false, applied: 0, errors: result.issues };
|
|
42
|
+
this.state = this.lib.commit(this.state, result.applied, { source: { by: 'user' } }).state;
|
|
43
|
+
return { ok: true, applied: result.applied.length, errors: [] };
|
|
44
|
+
}
|
|
45
|
+
/** Undo the last accepted batch. Returns false when there is nothing to undo. */
|
|
46
|
+
undo() {
|
|
47
|
+
if (!this.lib.canUndo(this.state))
|
|
48
|
+
return false;
|
|
49
|
+
this.state = this.lib.undo(this.state);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
/** Redo the last undone batch. Returns false when there is nothing to redo. */
|
|
53
|
+
redo() {
|
|
54
|
+
if (!this.lib.canRedo(this.state))
|
|
55
|
+
return false;
|
|
56
|
+
this.state = this.lib.redo(this.state);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
/** Lint diagnostics (IDSL rules) of the current document. */
|
|
60
|
+
lint(options = {}) {
|
|
61
|
+
return this.lib.lintDocument(this.state.doc, this.lintCtx, options).diagnostics;
|
|
62
|
+
}
|
|
63
|
+
/** The XML path of a node id, e.g. `specifications[0].requirements[1].baseName`. */
|
|
64
|
+
pathOf(nodeId) {
|
|
65
|
+
return this.lib.nodePath(this.state.doc, nodeId);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* IDS 1.0 XML of the current document. Throws when the writer cannot
|
|
69
|
+
* carry a value without loss (the message names each one) rather than
|
|
70
|
+
* returning XML with less content.
|
|
71
|
+
*/
|
|
72
|
+
write() {
|
|
73
|
+
const out = this.lib.writeStudioDocument(this.state.doc, this.writer);
|
|
74
|
+
if (out.ok)
|
|
75
|
+
return out.xml;
|
|
76
|
+
const lost = out.lost?.length ? `: ${out.lost.join(', ')}` : '';
|
|
77
|
+
throw new Error(`bim.ids.authoring: cannot write this document (${out.message})${lost}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** bim.ids.authoring — IDS documents edited through typed, grounded operations. */
|
|
81
|
+
export class IDSAuthoringNamespace {
|
|
82
|
+
async context() {
|
|
83
|
+
const { authoring, writer } = await load();
|
|
84
|
+
const gate = await authoring.createGateContext();
|
|
85
|
+
const lintCtx = await authoring.createLintContext({ gate });
|
|
86
|
+
return { lib: authoring, writer, gate, lintCtx };
|
|
87
|
+
}
|
|
88
|
+
/** Open IDS XML for editing. Node ids depend only on the content. */
|
|
89
|
+
async open(xml) {
|
|
90
|
+
const { lib, writer, gate, lintCtx } = await this.context();
|
|
91
|
+
return new IDSAuthoringDocument(lib, writer, gate, lintCtx, lib.readStudioDocument(xml));
|
|
92
|
+
}
|
|
93
|
+
/** Start an empty document. */
|
|
94
|
+
async create(title = '') {
|
|
95
|
+
const { lib, writer, gate, lintCtx } = await this.context();
|
|
96
|
+
return new IDSAuthoringDocument(lib, writer, gate, lintCtx, lib.createStudioDocument({ title }));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=ids-authoring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids-authoring.js","sourceRoot":"","sources":["../../src/namespaces/ids-authoring.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiC/D,0EAA0E;AAC1E,qDAAqD;AACrD,KAAK,UAAU,IAAI;IACjB,MAAM,aAAa,GAAG,yBAAyB,CAAC;IAChD,MAAM,OAAO,GAAG,eAAe,CAAC;IAChC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAA6B;QAC3E,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAA0B;KACnE,CAAC,CAAC;IACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;AAChD,CAAC;AAiBD,gEAAgE;AAChE,MAAM,OAAO,oBAAoB;IAKZ;IACA;IACA;IACA;IAPX,KAAK,CAAc;IAE3B,yDAAyD;IACzD,YACmB,GAAoB,EACpB,MAAmC,EACnC,IAAiB,EACjB,OAAoB,EACrC,GAAmB;QAJF,QAAG,GAAH,GAAG,CAAiB;QACpB,WAAM,GAAN,MAAM,CAA6B;QACnC,SAAI,GAAJ,IAAI,CAAa;QACjB,YAAO,GAAP,OAAO,CAAa;QAGrC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,2EAA2E;IAC3E,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAuB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACxE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,iFAAiF;IACjF,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC,UAAmC,EAAE;QACxC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC;IAClF,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,GAAG,CAAC,EAAE;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3F,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,OAAO,qBAAqB;IACxB,KAAK,CAAC,OAAO;QACnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5D,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;QACrB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5D,OAAO,IAAI,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACnG,CAAC;CACF"}
|
package/dist/namespaces/ids.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
* IDS documents. Includes facet checking, constraint matching, and
|
|
6
6
|
* multi-language translation (EN, DE, FR).
|
|
7
7
|
*/
|
|
8
|
+
import { IDSAuthoringNamespace } from './ids-authoring.js';
|
|
9
|
+
export { IDSAuthoringNamespace, IDSAuthoringDocument, type IDSAuthoringApplyResult, type IDSAuthoringLintOptions } from './ids-authoring.js';
|
|
8
10
|
export interface IDSValidationSummary {
|
|
9
11
|
totalSpecifications: number;
|
|
10
12
|
passedSpecifications: number;
|
|
@@ -61,6 +63,8 @@ export interface IDSValidateOptions {
|
|
|
61
63
|
}
|
|
62
64
|
/** bim.ids — IDS (Information Delivery Specification) parsing, validation, and reporting */
|
|
63
65
|
export declare class IDSNamespace {
|
|
66
|
+
/** IDS authoring: open, edit through grounded ops, lint and write IDS documents. */
|
|
67
|
+
readonly authoring: IDSAuthoringNamespace;
|
|
64
68
|
/** Parse an IDS XML document into an IDSDocument structure. */
|
|
65
69
|
parse(xmlContent: string): Promise<unknown>;
|
|
66
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/namespaces/ids.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/namespaces/ids.ts"],"names":[],"mappings":"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"}
|
package/dist/namespaces/ids.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* bim.ids — IDS (Information Delivery Specification) validation
|
|
6
|
+
*
|
|
7
|
+
* Full access to @ifc-lite/ids for parsing, validating, and reporting
|
|
8
|
+
* IDS documents. Includes facet checking, constraint matching, and
|
|
9
|
+
* multi-language translation (EN, DE, FR).
|
|
10
|
+
*/
|
|
11
|
+
import { IDSAuthoringNamespace } from './ids-authoring.js';
|
|
12
|
+
export { IDSAuthoringNamespace, IDSAuthoringDocument } from './ids-authoring.js';
|
|
4
13
|
// ============================================================================
|
|
5
14
|
// Dynamic import
|
|
6
15
|
// ============================================================================
|
|
@@ -13,6 +22,8 @@ async function loadIDS() {
|
|
|
13
22
|
// ============================================================================
|
|
14
23
|
/** bim.ids — IDS (Information Delivery Specification) parsing, validation, and reporting */
|
|
15
24
|
export class IDSNamespace {
|
|
25
|
+
/** IDS authoring: open, edit through grounded ops, lint and write IDS documents. */
|
|
26
|
+
authoring = new IDSAuthoringNamespace();
|
|
16
27
|
// --------------------------------------------------------------------------
|
|
17
28
|
// Parsing
|
|
18
29
|
// --------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/namespaces/ids.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/namespaces/ids.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,14 @@ import type { BimBackend, EntityRef } from '../types.js';
|
|
|
2
2
|
/** bim.mutate — Property editing with undo/redo */
|
|
3
3
|
export declare class MutateNamespace {
|
|
4
4
|
private backend;
|
|
5
|
-
constructor(backend: BimBackend);
|
|
5
|
+
constructor(backend: Pick<BimBackend, 'mutate'>);
|
|
6
6
|
/** Asynchronous batches in flight; the backend marker is held by the first and released by the last. */
|
|
7
7
|
private asyncDepth;
|
|
8
8
|
private asyncLabel;
|
|
9
9
|
/** Synchronous batches open right now (nested `batch` calls stack). */
|
|
10
10
|
private syncDepth;
|
|
11
|
-
/** Set a property
|
|
12
|
-
setProperty(ref: EntityRef, psetName: string, propName: string, value: string | number | boolean): void;
|
|
11
|
+
/** Set a property; an optional IFC IfcValue dataType is validated before the write. */
|
|
12
|
+
setProperty(ref: EntityRef, psetName: string, propName: string, value: string | number | boolean, dataType?: string): void;
|
|
13
13
|
/** Set a root IFC attribute on an entity */
|
|
14
14
|
setAttribute(ref: EntityRef, attrName: string, value: string): void;
|
|
15
15
|
/** Delete a property from an entity */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD,mDAAmD;AACnD,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;IAEvD,wGAAwG;IACxG,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAqB;IACvC,uEAAuE;IACvE,OAAO,CAAC,SAAS,CAAK;IAEtB,uFAAuF;IACvF,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAK1H,4CAA4C;IAC5C,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAInE,uCAAuC;IACvC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxE;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAW1C;;;;;;;;;;;;;;;;;OAiBG;IACG,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBpE,qCAAqC;IACrC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI9B,4CAA4C;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAG/B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
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 { validatePropertyDataType } from '@ifc-lite/export';
|
|
4
5
|
/** bim.mutate — Property editing with undo/redo */
|
|
5
6
|
export class MutateNamespace {
|
|
6
7
|
backend;
|
|
@@ -12,9 +13,12 @@ export class MutateNamespace {
|
|
|
12
13
|
asyncLabel;
|
|
13
14
|
/** Synchronous batches open right now (nested `batch` calls stack). */
|
|
14
15
|
syncDepth = 0;
|
|
15
|
-
/** Set a property
|
|
16
|
-
setProperty(ref, psetName, propName, value) {
|
|
17
|
-
|
|
16
|
+
/** Set a property; an optional IFC IfcValue dataType is validated before the write. */
|
|
17
|
+
setProperty(ref, psetName, propName, value, dataType) {
|
|
18
|
+
if (dataType === undefined)
|
|
19
|
+
this.backend.mutate.setProperty(ref, psetName, propName, value);
|
|
20
|
+
else
|
|
21
|
+
this.backend.mutate.setProperty(ref, psetName, propName, value, validatePropertyDataType(value, dataType).dataType);
|
|
18
22
|
}
|
|
19
23
|
/** Set a root IFC attribute on an entity */
|
|
20
24
|
setAttribute(ref, attrName, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/namespaces/mutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { StoreModellingNamespace } from './store-modelling.js';
|
|
2
|
+
import type { GroupStoreCreateParams, GroupStoreIdentity, GroupStorePatch, GroupStoreSnapshot } from '../store-group-types.js';
|
|
3
|
+
export declare class StoreGroupNamespace extends StoreModellingNamespace {
|
|
4
|
+
readGroup(target: GroupStoreIdentity): GroupStoreSnapshot;
|
|
5
|
+
addGroup(modelId: string, params: GroupStoreCreateParams): GroupStoreIdentity;
|
|
6
|
+
updateGroup(expected: GroupStoreSnapshot, patch: GroupStorePatch): GroupStoreIdentity;
|
|
7
|
+
removeGroup(expected: GroupStoreSnapshot): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=store-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-group.d.ts","sourceRoot":"","sources":["../../src/namespaces/store-group.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE/H,qBAAa,mBAAoB,SAAQ,uBAAuB;IAC9D,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB;IAKzD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,kBAAkB;IAK7E,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,GAAG,kBAAkB;IAKrF,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;CAKhD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { StoreModellingNamespace } from './store-modelling.js';
|
|
5
|
+
export class StoreGroupNamespace extends StoreModellingNamespace {
|
|
6
|
+
readGroup(target) {
|
|
7
|
+
const method = this.backend.store.readGroup;
|
|
8
|
+
if (!method)
|
|
9
|
+
throw new Error('bim.store.readGroup: native Group capability is unavailable');
|
|
10
|
+
return method.call(this.backend.store, target);
|
|
11
|
+
}
|
|
12
|
+
addGroup(modelId, params) {
|
|
13
|
+
const method = this.backend.store.addGroup;
|
|
14
|
+
if (!method)
|
|
15
|
+
throw new Error('bim.store.addGroup: native Group capability is unavailable');
|
|
16
|
+
return method.call(this.backend.store, modelId, params);
|
|
17
|
+
}
|
|
18
|
+
updateGroup(expected, patch) {
|
|
19
|
+
const method = this.backend.store.updateGroup;
|
|
20
|
+
if (!method)
|
|
21
|
+
throw new Error('bim.store.updateGroup: native Group capability is unavailable');
|
|
22
|
+
return method.call(this.backend.store, expected, patch);
|
|
23
|
+
}
|
|
24
|
+
removeGroup(expected) {
|
|
25
|
+
const method = this.backend.store.removeGroup;
|
|
26
|
+
if (!method)
|
|
27
|
+
throw new Error('bim.store.removeGroup: native Group capability is unavailable');
|
|
28
|
+
method.call(this.backend.store, expected);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=store-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-group.js","sourceRoot":"","sources":["../../src/namespaces/store-group.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAC9D,SAAS,CAAC,MAA0B;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC5F,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,QAAQ,CAAC,OAAe,EAAE,MAA8B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC3F,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IACD,WAAW,CAAC,QAA4B,EAAE,KAAsB;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC9F,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,WAAW,CAAC,QAA4B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Loaded-model modelling methods of bim.store (#6232 D5). */
|
|
2
|
+
import type { AlignMode, ElementTransformInput, ElementSplitRequest, ElementTrimExtendParams, CopyTransform, CopyArrayParams, HostedElementEdit, CurtainWallInStoreParams, GridInStoreParams, GridColumnBinding, ColumnInStoreParams, ProfiledColumnInStoreParams, HostedDoorInStoreParams, HostedWindowInStoreParams, OpeningInStoreParams, ElementTypeInStoreParams, MaterialInStoreParams, MaterialLayerSetInStoreParams, MaterialLayerSetUsageInStoreParams, WallJoinApplyOptions, StairInStoreParams, RailingInStoreParams, InStoreReplacementElement } from '@ifc-lite/create';
|
|
3
|
+
import type { RoomCommand, RoomCommandResult } from '../store-room-command.js';
|
|
4
|
+
import type { BimBackend, EntityRef } from '../types.js';
|
|
5
|
+
import type { PhysicalSizePatch } from '../store-physical-types.js';
|
|
6
|
+
export declare class StoreModellingNamespace {
|
|
7
|
+
protected backend: BimBackend;
|
|
8
|
+
constructor(backend: BimBackend);
|
|
9
|
+
roomCommand(modelId: string, storeyId: number, command: RoomCommand): Promise<RoomCommandResult>;
|
|
10
|
+
alignElements(modelId: string, reference: number, targets: readonly number[], mode: AlignMode): Promise<EntityRef[]>;
|
|
11
|
+
transformElements(modelId: string, expressIds: readonly number[], operation: ElementTransformInput['op']): EntityRef[];
|
|
12
|
+
setElementSize(ref: EntityRef, patch: PhysicalSizePatch): EntityRef[];
|
|
13
|
+
resizeWall(ref: EntityRef, start: [number, number, number], end: [number, number, number], options?: {
|
|
14
|
+
moveJoinedEnds?: boolean;
|
|
15
|
+
}): EntityRef[];
|
|
16
|
+
splitElements(modelId: string, requests: readonly ElementSplitRequest[]): {
|
|
17
|
+
source: EntityRef;
|
|
18
|
+
added: EntityRef;
|
|
19
|
+
left: EntityRef;
|
|
20
|
+
right: EntityRef;
|
|
21
|
+
}[];
|
|
22
|
+
trimExtendElement(ref: EntityRef, params: ElementTrimExtendParams): EntityRef[];
|
|
23
|
+
/** Paste a dependency-pruned selection in storey-local metres/radians. */
|
|
24
|
+
copyElements(modelId: string, expressIds: readonly number[], transforms: readonly CopyTransform[]): EntityRef[];
|
|
25
|
+
/** Duplicate with its hosted graph and a new GlobalId; offset is storey-local IFC XYZ metres. */
|
|
26
|
+
duplicateElement(ref: EntityRef, options: {
|
|
27
|
+
offset: [number, number, number];
|
|
28
|
+
Name?: string;
|
|
29
|
+
}): EntityRef;
|
|
30
|
+
/** Linear spacing/fit or polar span, sharing the viewer's placement planner. */
|
|
31
|
+
arrayElements(modelId: string, expressIds: readonly number[], params: CopyArrayParams): EntityRef[];
|
|
32
|
+
/** Move/resize the opening and its filling together. Lengths are metres in the host frame. */
|
|
33
|
+
editHostedElement(ref: EntityRef, patch: HostedElementEdit): EntityRef;
|
|
34
|
+
/** Create the curtain wall and all its members/panels in one undo batch. Metres, storey-local. */
|
|
35
|
+
addCurtainWall(modelId: string, storeyExpressId: number, params: CurtainWallInStoreParams): EntityRef;
|
|
36
|
+
/** Create straight tagged grid axes. Position and axis endpoints are metres in their local frame. */
|
|
37
|
+
addGrid(modelId: string, storeyExpressId: number, params: GridInStoreParams): EntityRef;
|
|
38
|
+
/** Create a column at the actual live crossing and retain its IfcGridPlacement binding. */
|
|
39
|
+
addColumnOnGrid(modelId: string, storeyExpressId: number, params: ColumnInStoreParams | ProfiledColumnInStoreParams, binding: GridColumnBinding): EntityRef;
|
|
40
|
+
/** Remove a single-flight stair and its flight; shared geometry, styles and materials are retained. */
|
|
41
|
+
removeStair(ref: EntityRef): boolean;
|
|
42
|
+
/** Add a storey-local straight-run stair and its aggregated flight; lengths are metres, Direction radians. */
|
|
43
|
+
addStair(modelId: string, storeyExpressId: number, params: StairInStoreParams): EntityRef;
|
|
44
|
+
/** Add a railing along Path in storey-local metres, including the handrail and its posts. */
|
|
45
|
+
addRailing(modelId: string, storeyExpressId: number, params: RailingInStoreParams): EntityRef;
|
|
46
|
+
/** Replace a product with canonical storey-local params; a refusal retains its old graph. */
|
|
47
|
+
replaceElement(ref: EntityRef, storeyExpressId: number, element: InStoreReplacementElement): EntityRef;
|
|
48
|
+
/** Cut an IfcOpeningElement (IfcRelVoidsElement) into a wall (`Offset`, `Sill`, `Width`, `Height`) or
|
|
49
|
+
* slab (`Position` [x, y], `Width`, `Depth`); the cut spans the host body + 50 mm per face unless `CutDepth`. */
|
|
50
|
+
addOpening(modelId: string, hostExpressId: number, params: OpeningInStoreParams): EntityRef;
|
|
51
|
+
/** Add an IfcDoor filling a new opening in a wall (IfcRelFillsElement). `Sill` defaults to 0. */
|
|
52
|
+
addHostedDoor(modelId: string, hostExpressId: number, params: HostedDoorInStoreParams): EntityRef;
|
|
53
|
+
/** Add an IfcWindow filling a new opening in a wall (IfcRelFillsElement), bottom edge at `Sill`. */
|
|
54
|
+
addHostedWindow(modelId: string, hostExpressId: number, params: HostedWindowInStoreParams): EntityRef;
|
|
55
|
+
/** Join two walls in the same placement frame; returns IfcRelConnectsPathElements. */
|
|
56
|
+
joinWalls(modelId: string, aExpressId: number, bExpressId: number, options?: WallJoinApplyOptions): EntityRef;
|
|
57
|
+
/** Add an IfcElementType subtype (e.g. `{ Type: 'IfcWallType', Name, PredefinedType }`), laid out for the model's schema. */
|
|
58
|
+
addElementType(modelId: string, params: ElementTypeInStoreParams): EntityRef;
|
|
59
|
+
/** Type objects via IfcRelDefinesByType; an object already typed moves to this type. Returns the relationship. */
|
|
60
|
+
assignType(modelId: string, typeExpressId: number, objectExpressIds: number[]): EntityRef;
|
|
61
|
+
/** Add an IfcMaterial. */
|
|
62
|
+
addMaterial(modelId: string, params: MaterialInStoreParams): EntityRef;
|
|
63
|
+
/** Add an IfcMaterialLayerSet of IfcMaterialLayers (`MaterialLayers[i].LayerThickness` in metres). */
|
|
64
|
+
addMaterialLayerSet(modelId: string, params: MaterialLayerSetInStoreParams): EntityRef;
|
|
65
|
+
/** Add an IfcMaterialLayerSetUsage (default AXIS2/POSITIVE; `OffsetFromReferenceLine` in metres). */
|
|
66
|
+
addMaterialLayerSetUsage(modelId: string, params: MaterialLayerSetUsageInStoreParams): EntityRef;
|
|
67
|
+
/** Associate a material with objects via IfcRelAssociatesMaterial, replacing their previous one. Returns the relationship. */
|
|
68
|
+
assignMaterial(modelId: string, materialExpressId: number, objectExpressIds: number[]): EntityRef;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=store-modelling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-modelling.d.ts","sourceRoot":"","sources":["../../src/namespaces/store-modelling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,173 @@
|
|
|
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 class StoreModellingNamespace {
|
|
5
|
+
backend;
|
|
6
|
+
constructor(backend) {
|
|
7
|
+
this.backend = backend;
|
|
8
|
+
}
|
|
9
|
+
async roomCommand(modelId, storeyId, command) {
|
|
10
|
+
const method = this.backend.store.roomCommand;
|
|
11
|
+
if (!method)
|
|
12
|
+
throw new Error('bim.store.roomCommand: native Room capability is unavailable on this backend');
|
|
13
|
+
return method.call(this.backend.store, modelId, storeyId, command);
|
|
14
|
+
}
|
|
15
|
+
async alignElements(modelId, reference, targets, mode) {
|
|
16
|
+
const method = this.backend.store.alignElements;
|
|
17
|
+
if (!method)
|
|
18
|
+
throw new Error('bim.store.alignElements: native Align capability is unavailable on this backend');
|
|
19
|
+
return method.call(this.backend.store, modelId, reference, targets, mode);
|
|
20
|
+
}
|
|
21
|
+
transformElements(modelId, expressIds, operation) {
|
|
22
|
+
const method = this.backend.store.transformElements;
|
|
23
|
+
if (!method)
|
|
24
|
+
throw new Error('bim.store.transformElements: not available on this backend');
|
|
25
|
+
return method.call(this.backend.store, modelId, expressIds, operation);
|
|
26
|
+
}
|
|
27
|
+
setElementSize(ref, patch) {
|
|
28
|
+
const method = this.backend.store.setElementSize;
|
|
29
|
+
if (!method)
|
|
30
|
+
throw new Error('bim.store.setElementSize: not available on this backend');
|
|
31
|
+
return method.call(this.backend.store, ref, patch);
|
|
32
|
+
}
|
|
33
|
+
resizeWall(ref, start, end, options) {
|
|
34
|
+
const method = this.backend.store.resizeWall;
|
|
35
|
+
if (!method)
|
|
36
|
+
throw new Error('bim.store.resizeWall: not available on this backend');
|
|
37
|
+
return method.call(this.backend.store, ref, start, end, options);
|
|
38
|
+
}
|
|
39
|
+
splitElements(modelId, requests) {
|
|
40
|
+
const method = this.backend.store.splitElements;
|
|
41
|
+
if (!method)
|
|
42
|
+
throw new Error('bim.store.splitElements: not available on this backend');
|
|
43
|
+
return method.call(this.backend.store, modelId, requests);
|
|
44
|
+
}
|
|
45
|
+
trimExtendElement(ref, params) {
|
|
46
|
+
const method = this.backend.store.trimExtendElement;
|
|
47
|
+
if (!method)
|
|
48
|
+
throw new Error('bim.store.trimExtendElement: not available on this backend');
|
|
49
|
+
return method.call(this.backend.store, ref, params);
|
|
50
|
+
}
|
|
51
|
+
/** Paste a dependency-pruned selection in storey-local metres/radians. */
|
|
52
|
+
copyElements(modelId, expressIds, transforms) {
|
|
53
|
+
const method = this.backend.store.copyElements;
|
|
54
|
+
if (!method)
|
|
55
|
+
throw new Error('bim.store.copyElements: not available on this backend');
|
|
56
|
+
return method.call(this.backend.store, modelId, expressIds, transforms);
|
|
57
|
+
}
|
|
58
|
+
/** Duplicate with its hosted graph and a new GlobalId; offset is storey-local IFC XYZ metres. */
|
|
59
|
+
duplicateElement(ref, options) {
|
|
60
|
+
const method = this.backend.store.duplicateElement;
|
|
61
|
+
if (!method)
|
|
62
|
+
throw new Error('bim.store.duplicateElement: not available on this backend');
|
|
63
|
+
return method.call(this.backend.store, ref, options);
|
|
64
|
+
}
|
|
65
|
+
/** Linear spacing/fit or polar span, sharing the viewer's placement planner. */
|
|
66
|
+
arrayElements(modelId, expressIds, params) {
|
|
67
|
+
const method = this.backend.store.arrayElements;
|
|
68
|
+
if (!method)
|
|
69
|
+
throw new Error('bim.store.arrayElements: not available on this backend');
|
|
70
|
+
return method.call(this.backend.store, modelId, expressIds, params);
|
|
71
|
+
}
|
|
72
|
+
/** Move/resize the opening and its filling together. Lengths are metres in the host frame. */
|
|
73
|
+
editHostedElement(ref, patch) {
|
|
74
|
+
const method = this.backend.store.editHostedElement;
|
|
75
|
+
if (!method)
|
|
76
|
+
throw new Error('bim.store.editHostedElement: not available on this backend');
|
|
77
|
+
return method.call(this.backend.store, ref, patch);
|
|
78
|
+
}
|
|
79
|
+
/** Create the curtain wall and all its members/panels in one undo batch. Metres, storey-local. */
|
|
80
|
+
addCurtainWall(modelId, storeyExpressId, params) {
|
|
81
|
+
const method = this.backend.store.addCurtainWall;
|
|
82
|
+
if (!method)
|
|
83
|
+
throw new Error('bim.store.addCurtainWall: not available on this backend');
|
|
84
|
+
return method.call(this.backend.store, modelId, storeyExpressId, params);
|
|
85
|
+
}
|
|
86
|
+
/** Create straight tagged grid axes. Position and axis endpoints are metres in their local frame. */
|
|
87
|
+
addGrid(modelId, storeyExpressId, params) {
|
|
88
|
+
const method = this.backend.store.addGrid;
|
|
89
|
+
if (!method)
|
|
90
|
+
throw new Error('bim.store.addGrid: not available on this backend');
|
|
91
|
+
return method.call(this.backend.store, modelId, storeyExpressId, params);
|
|
92
|
+
}
|
|
93
|
+
/** Create a column at the actual live crossing and retain its IfcGridPlacement binding. */
|
|
94
|
+
addColumnOnGrid(modelId, storeyExpressId, params, binding) {
|
|
95
|
+
const method = this.backend.store.addColumnOnGrid;
|
|
96
|
+
if (!method)
|
|
97
|
+
throw new Error('bim.store.addColumnOnGrid: not available on this backend');
|
|
98
|
+
return method.call(this.backend.store, modelId, storeyExpressId, params, binding);
|
|
99
|
+
}
|
|
100
|
+
/** Remove a single-flight stair and its flight; shared geometry, styles and materials are retained. */
|
|
101
|
+
removeStair(ref) {
|
|
102
|
+
const remove = this.backend.store.removeStair;
|
|
103
|
+
if (!remove)
|
|
104
|
+
throw new Error('bim.store.removeStair is not supported by this backend');
|
|
105
|
+
return remove.call(this.backend.store, ref);
|
|
106
|
+
}
|
|
107
|
+
/** Add a storey-local straight-run stair and its aggregated flight; lengths are metres, Direction radians. */
|
|
108
|
+
addStair(modelId, storeyExpressId, params) {
|
|
109
|
+
const create = this.backend.store.addStair;
|
|
110
|
+
if (!create)
|
|
111
|
+
throw new Error('bim.store.addStair is not supported by this backend');
|
|
112
|
+
return create.call(this.backend.store, modelId, storeyExpressId, params);
|
|
113
|
+
}
|
|
114
|
+
/** Add a railing along Path in storey-local metres, including the handrail and its posts. */
|
|
115
|
+
addRailing(modelId, storeyExpressId, params) {
|
|
116
|
+
const create = this.backend.store.addRailing;
|
|
117
|
+
if (!create)
|
|
118
|
+
throw new Error('bim.store.addRailing is not supported by this backend');
|
|
119
|
+
return create.call(this.backend.store, modelId, storeyExpressId, params);
|
|
120
|
+
}
|
|
121
|
+
/** Replace a product with canonical storey-local params; a refusal retains its old graph. */
|
|
122
|
+
replaceElement(ref, storeyExpressId, element) {
|
|
123
|
+
const replace = this.backend.store.replaceElement;
|
|
124
|
+
if (!replace)
|
|
125
|
+
throw new Error('bim.store.replaceElement is not supported by this backend');
|
|
126
|
+
return replace.call(this.backend.store, ref, storeyExpressId, element);
|
|
127
|
+
}
|
|
128
|
+
// -- Openings, hosted fillings, types and materials (#6232 M3) -------------
|
|
129
|
+
// Hosts are existing IfcWall/IfcSlab; params are metres in the host's frame.
|
|
130
|
+
/** Cut an IfcOpeningElement (IfcRelVoidsElement) into a wall (`Offset`, `Sill`, `Width`, `Height`) or
|
|
131
|
+
* slab (`Position` [x, y], `Width`, `Depth`); the cut spans the host body + 50 mm per face unless `CutDepth`. */
|
|
132
|
+
addOpening(modelId, hostExpressId, params) {
|
|
133
|
+
return this.backend.store.addOpening(modelId, hostExpressId, params);
|
|
134
|
+
}
|
|
135
|
+
/** Add an IfcDoor filling a new opening in a wall (IfcRelFillsElement). `Sill` defaults to 0. */
|
|
136
|
+
addHostedDoor(modelId, hostExpressId, params) {
|
|
137
|
+
return this.backend.store.addHostedDoor(modelId, hostExpressId, params);
|
|
138
|
+
}
|
|
139
|
+
/** Add an IfcWindow filling a new opening in a wall (IfcRelFillsElement), bottom edge at `Sill`. */
|
|
140
|
+
addHostedWindow(modelId, hostExpressId, params) {
|
|
141
|
+
return this.backend.store.addHostedWindow(modelId, hostExpressId, params);
|
|
142
|
+
}
|
|
143
|
+
/** Join two walls in the same placement frame; returns IfcRelConnectsPathElements. */
|
|
144
|
+
joinWalls(modelId, aExpressId, bExpressId, options) {
|
|
145
|
+
return this.backend.store.joinWalls(modelId, aExpressId, bExpressId, options);
|
|
146
|
+
}
|
|
147
|
+
// IFC4 practice: IfcMaterialLayerSet on the type, a usage of it on each occurrence.
|
|
148
|
+
/** Add an IfcElementType subtype (e.g. `{ Type: 'IfcWallType', Name, PredefinedType }`), laid out for the model's schema. */
|
|
149
|
+
addElementType(modelId, params) {
|
|
150
|
+
return this.backend.store.addElementType(modelId, params);
|
|
151
|
+
}
|
|
152
|
+
/** Type objects via IfcRelDefinesByType; an object already typed moves to this type. Returns the relationship. */
|
|
153
|
+
assignType(modelId, typeExpressId, objectExpressIds) {
|
|
154
|
+
return this.backend.store.assignType(modelId, typeExpressId, objectExpressIds);
|
|
155
|
+
}
|
|
156
|
+
/** Add an IfcMaterial. */
|
|
157
|
+
addMaterial(modelId, params) {
|
|
158
|
+
return this.backend.store.addMaterial(modelId, params);
|
|
159
|
+
}
|
|
160
|
+
/** Add an IfcMaterialLayerSet of IfcMaterialLayers (`MaterialLayers[i].LayerThickness` in metres). */
|
|
161
|
+
addMaterialLayerSet(modelId, params) {
|
|
162
|
+
return this.backend.store.addMaterialLayerSet(modelId, params);
|
|
163
|
+
}
|
|
164
|
+
/** Add an IfcMaterialLayerSetUsage (default AXIS2/POSITIVE; `OffsetFromReferenceLine` in metres). */
|
|
165
|
+
addMaterialLayerSetUsage(modelId, params) {
|
|
166
|
+
return this.backend.store.addMaterialLayerSetUsage(modelId, params);
|
|
167
|
+
}
|
|
168
|
+
/** Associate a material with objects via IfcRelAssociatesMaterial, replacing their previous one. Returns the relationship. */
|
|
169
|
+
assignMaterial(modelId, materialExpressId, objectExpressIds) {
|
|
170
|
+
return this.backend.store.assignMaterial(modelId, materialExpressId, objectExpressIds);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=store-modelling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-modelling.js","sourceRoot":"","sources":["../../src/namespaces/store-modelling.ts"],"names":[],"mappings":"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"}
|