@pilotdev/pilot-bim-dataprovider 24.0.1 → 24.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 CHANGED
@@ -32,7 +32,7 @@ const elements = modelPart.getAllElements();
32
32
  const properties = modelPart.getElementProperties(elements[5].guid, BimDataBigIntMaxValue);
33
33
 
34
34
  // Get all tessellations
35
- const tesselations = modelPart.getTessellations();
35
+ const tesselations = modelPart.getAllTessellations();
36
36
 
37
37
  // Close model part after end
38
38
  modelPart.close();
@@ -1,6 +1,6 @@
1
1
  export declare class BimDataElement {
2
2
  guid: string;
3
- objectState: unknown;
3
+ objectState: BimDataNodeState;
4
4
  revision: bigint;
5
5
  parentGuid: string;
6
6
  name: string;
@@ -24,3 +24,13 @@ export declare class BimDataGridAxis {
24
24
  data: number[];
25
25
  label: string;
26
26
  }
27
+ export declare enum BimDataNodeState {
28
+ Undefined = 0,
29
+ Added = 1,
30
+ Removed = 2,
31
+ AttributesModified = 3,
32
+ AttributesQuantitiesModified = 4,
33
+ PlacementModified = 8,
34
+ PlacementAndAttributesModified = 11,
35
+ PlacementAndAttributesQuantitiesModified = 12
36
+ }
@@ -22,4 +22,15 @@ export class BimDataGridAxis {
22
22
  this.data = [];
23
23
  }
24
24
  }
25
+ export var BimDataNodeState;
26
+ (function (BimDataNodeState) {
27
+ BimDataNodeState[BimDataNodeState["Undefined"] = 0] = "Undefined";
28
+ BimDataNodeState[BimDataNodeState["Added"] = 1] = "Added";
29
+ BimDataNodeState[BimDataNodeState["Removed"] = 2] = "Removed";
30
+ BimDataNodeState[BimDataNodeState["AttributesModified"] = 3] = "AttributesModified";
31
+ BimDataNodeState[BimDataNodeState["AttributesQuantitiesModified"] = 4] = "AttributesQuantitiesModified";
32
+ BimDataNodeState[BimDataNodeState["PlacementModified"] = 8] = "PlacementModified";
33
+ BimDataNodeState[BimDataNodeState["PlacementAndAttributesModified"] = 11] = "PlacementAndAttributesModified";
34
+ BimDataNodeState[BimDataNodeState["PlacementAndAttributesQuantitiesModified"] = 12] = "PlacementAndAttributesQuantitiesModified";
35
+ })(BimDataNodeState || (BimDataNodeState = {}));
25
36
  //# sourceMappingURL=BimDataElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataElement.js","sourceRoot":"","sources":["../../../src/model/BimDataElement.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,OAAO,cAAc;IAA3B;QAGE,aAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QAQ7B,qBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;IACnE,CAAC;CAAA;AAED,MAAM,OAAO,mBAAmB;IAAhC;QACE,cAAS,GAAW,CAAC,CAAC;QACtB,kBAAa,GAAa,EAAE,CAAC;IAC/B,CAAC;CAAA;AAED,MAAM,OAAO,iBAAiB;IAA9B;QACE,kBAAa,GAAa,EAAE,CAAC;QAC7B,aAAQ,GAAsB,EAAE,CAAC;IACnC,CAAC;CAAA;AAED,MAAM,OAAO,eAAe;IAA5B;QAGE,SAAI,GAAa,EAAE,CAAC;IAEtB,CAAC;CAAA"}
1
+ {"version":3,"file":"BimDataElement.js","sourceRoot":"","sources":["../../../src/model/BimDataElement.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,OAAO,cAAc;IAA3B;QAGE,aAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QAQ7B,qBAAgB,GAAuC,IAAI,GAAG,EAAE,CAAC;IACnE,CAAC;CAAA;AAED,MAAM,OAAO,mBAAmB;IAAhC;QACE,cAAS,GAAW,CAAC,CAAC;QACtB,kBAAa,GAAa,EAAE,CAAC;IAC/B,CAAC;CAAA;AAED,MAAM,OAAO,iBAAiB;IAA9B;QACE,kBAAa,GAAa,EAAE,CAAC;QAC7B,aAAQ,GAAsB,EAAE,CAAC;IACnC,CAAC;CAAA;AAED,MAAM,OAAO,eAAe;IAA5B;QAGE,SAAI,GAAa,EAAE,CAAC;IAEtB,CAAC;CAAA;AAED,MAAM,CAAN,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAE1B,iEAAa,CAAA;IACb,yDAAS,CAAA;IACT,6DAAW,CAAA;IACX,mFAAsB,CAAA;IACtB,uGAAgC,CAAA;IAChC,iFAAqB,CAAA;IACrB,4GAAuE,CAAA;IACvE,gIAA2F,CAAA;AAC7F,CAAC,EAVW,gBAAgB,KAAhB,gBAAgB,QAU3B"}
@@ -21,3 +21,4 @@ export declare class BimDataElementPropertyValue {
21
21
  bool_value?: boolean;
22
22
  get value(): unknown;
23
23
  }
24
+ export declare function isEqualBimValues(a: BimDataElementPropertyValue, b: BimDataElementPropertyValue): boolean;
@@ -27,4 +27,35 @@ export class BimDataElementPropertyValue {
27
27
  return this.double_value;
28
28
  }
29
29
  }
30
+ export function isEqualBimValues(a, b) {
31
+ if (!a && !b)
32
+ return true;
33
+ if (!a || !b)
34
+ return false;
35
+ return a.str_value == b.str_value &&
36
+ a.int_value == b.int_value &&
37
+ a.double_value == b.double_value &&
38
+ a.date_value == b.date_value &&
39
+ a.decimal_value == b.decimal_value &&
40
+ a.guid_value == b.guid_value &&
41
+ a.bool_value == b.bool_value &&
42
+ isEqualArrays(a.array_int_value, b.array_int_value) &&
43
+ isEqualArrays(a.array_value, b.array_value);
44
+ }
45
+ function isEqualArrays(a, b) {
46
+ if (!a && !b)
47
+ return true;
48
+ if (!a || !b)
49
+ return false;
50
+ if (a === b)
51
+ return true;
52
+ if (a.length != b.length)
53
+ return false;
54
+ for (let i = 0, l = a.length; i < l; i++) {
55
+ if (a[i] != b[i]) {
56
+ return false;
57
+ }
58
+ }
59
+ return true;
60
+ }
30
61
  //# sourceMappingURL=BimDataElementPropertySet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataElementPropertySet.js","sourceRoot":"","sources":["../../../src/model/BimDataElementPropertySet.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;CAIrC;AAED,MAAM,OAAO,sBAAsB;IAAnC;QAEE,SAAI,GAAW,CAAC,CAAC;IAEnB,CAAC;CAAA;AAED,MAAM,OAAO,2BAA2B;IAAxC;QAKE,gBAAW,GAAkB,EAAE,CAAC;QAGhC,oBAAe,GAAkB,EAAE,CAAC;IAmBtC,CAAC;IAhBC,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"BimDataElementPropertySet.js","sourceRoot":"","sources":["../../../src/model/BimDataElementPropertySet.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;CAIrC;AAED,MAAM,OAAO,sBAAsB;IAAnC;QAEE,SAAI,GAAW,CAAC,CAAC;IAEnB,CAAC;CAAA;AAED,MAAM,OAAO,2BAA2B;IAAxC;QAKE,gBAAW,GAAkB,EAAE,CAAC;QAGhC,oBAAe,GAAkB,EAAE,CAAC;IAmBtC,CAAC;IAhBC,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,aAAa;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU;YACjB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,CAA8B,EAAE,CAA8B;IAC7F,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,KAAK,CAAC;IAEf,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;QAC/B,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS;QAC1B,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY;QAChC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa;QAClC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;QAC5B,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,eAAe,CAAC;QACnD,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,aAAa,CAAI,CAAM,EAAE,CAAM;IACtC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC,KAAK,CAAC;QACT,OAAO,IAAI,CAAC;IAEd,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;QACtB,OAAO,KAAK,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -5,25 +5,34 @@ import { BimDataTessellation } from "./BimDataTessellation.js";
5
5
  export interface IBimDataModelPart {
6
6
  id: string;
7
7
  open(buffer: ArrayBuffer): void;
8
+ reload(buffer: ArrayBuffer): void;
8
9
  close(): void;
9
10
  dispose(): void;
10
- getTessellations(): Map<string, BimDataTessellation>;
11
+ getAllTessellations(): Map<string, BimDataTessellation>;
12
+ getTessellations(versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
11
13
  getAllElements(): BimDataElement[];
14
+ getElements(versionFrom: bigint, versionTo: bigint): BimDataElement[];
12
15
  getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
16
+ getAllVersions(): bigint[];
17
+ getLatestVersion(): bigint;
13
18
  }
14
19
  export declare class BimDataModelPart implements IBimDataModelPart {
20
+ readonly id: string;
15
21
  private _module;
16
- private _id;
17
22
  private _isOpen;
18
23
  private _isDisposed;
19
24
  constructor(id: string, module: IWasmBimModule);
20
- get id(): string;
21
25
  dispose(): void;
22
26
  open(buffer: ArrayBuffer): void;
27
+ reload(buffer: ArrayBuffer): void;
23
28
  close(): void;
24
- getTessellations(): Map<string, BimDataTessellation>;
29
+ getAllTessellations(): Map<string, BimDataTessellation>;
30
+ getTessellations(versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
25
31
  getAllElements(): BimDataElement[];
32
+ getElements(versionFrom: bigint, versionTo: bigint): BimDataElement[];
26
33
  getElementProperties(elementId: string, version: bigint): BimDataElementPropertySet[];
34
+ getAllVersions(): bigint[];
35
+ getLatestVersion(): bigint;
27
36
  private get _path();
28
37
  private checkIsOpen;
29
38
  }
@@ -1,15 +1,14 @@
1
1
  import { BimDataConverter } from "../utils/ViewerTools.js";
2
2
  import { WasmTools } from "../utils/WasmTools.js";
3
+ import { BimDataNodeState } from "./BimDataElement.js";
4
+ import { BimNodeComparer } from "./BimNodeComparer.js";
3
5
  export class BimDataModelPart {
4
6
  constructor(id, module) {
7
+ this.id = id;
5
8
  this._module = module;
6
- this._id = id;
7
9
  this._isOpen = false;
8
10
  this._isDisposed = false;
9
11
  }
10
- get id() {
11
- return this._id;
12
- }
13
12
  dispose() {
14
13
  this.close();
15
14
  this._isDisposed = true;
@@ -20,9 +19,20 @@ export class BimDataModelPart {
20
19
  const data = new Uint8Array(buffer);
21
20
  if (WasmTools.isFileExists(this._path, this._module))
22
21
  return;
23
- this._module.FS.createDataFile("/", this._id, data, true, true, true);
22
+ this._module.FS.createDataFile("/", this.id, data, true, true, true);
24
23
  this._isOpen = true;
25
24
  }
25
+ reload(buffer) {
26
+ if (this._isDisposed)
27
+ return;
28
+ const data = new Uint8Array(buffer);
29
+ if (WasmTools.isFileExists(this._path, this._module)) {
30
+ this._module.FS.writeFile(this._path, data);
31
+ }
32
+ else {
33
+ this._module.FS.createDataFile("/", this.id, data, true, true, true);
34
+ }
35
+ }
26
36
  close() {
27
37
  if (this._isDisposed)
28
38
  return;
@@ -31,23 +41,78 @@ export class BimDataModelPart {
31
41
  }
32
42
  this._isOpen = false;
33
43
  }
34
- getTessellations() {
44
+ getAllTessellations() {
45
+ this.checkIsOpen();
46
+ const vts = this._module.getAllTessellations(this.id);
47
+ return BimDataConverter.toBimDataTessellations(vts, true);
48
+ }
49
+ getTessellations(versionFrom, versionTo) {
35
50
  this.checkIsOpen();
36
- const vts = this._module.getTessellations(this._id);
51
+ const vts = this._module.getTessellations(this.id, versionFrom, versionTo);
37
52
  return BimDataConverter.toBimDataTessellations(vts, true);
38
53
  }
39
54
  getAllElements() {
40
55
  this.checkIsOpen();
41
- const nds = this._module.getAllNodes(this._id);
56
+ const nds = this._module.getAllNodes(this.id);
42
57
  return BimDataConverter.toToBimDataElements(nds, true);
43
58
  }
59
+ getElements(versionFrom, versionTo) {
60
+ this.checkIsOpen();
61
+ const isReverse = versionTo < versionFrom;
62
+ if (isReverse) {
63
+ const tmp = versionFrom;
64
+ versionFrom = versionTo;
65
+ versionTo = tmp;
66
+ }
67
+ const pairsVector = this._module.getNodesToCompare(this.id, versionFrom, versionTo);
68
+ const bimDataPairs = BimDataConverter.toToBimDataPairs(pairsVector, true);
69
+ const result = new Array();
70
+ for (let i = 0; i < bimDataPairs.length; i++) {
71
+ const oldNode = isReverse ? bimDataPairs[i].newNode : bimDataPairs[i].oldNode;
72
+ const newNode = isReverse ? bimDataPairs[i].oldNode : bimDataPairs[i].newNode;
73
+ if (oldNode.objectState == BimDataNodeState.Removed && newNode.objectState == BimDataNodeState.Removed)
74
+ continue;
75
+ if (newNode.objectState == BimDataNodeState.Removed) {
76
+ result.push(newNode);
77
+ continue;
78
+ }
79
+ if (oldNode.objectState == BimDataNodeState.Removed || oldNode.objectState == BimDataNodeState.Undefined) {
80
+ newNode.objectState == BimDataNodeState.Added;
81
+ result.push(newNode);
82
+ continue;
83
+ }
84
+ if (versionFrom != versionTo) {
85
+ const oldProps = this.getElementProperties(oldNode.guid, oldNode.revision);
86
+ const newProps = this.getElementProperties(newNode.guid, newNode.revision);
87
+ const nodeState = BimNodeComparer.compareNodes(oldNode, oldProps, newNode, newProps);
88
+ newNode.objectState = nodeState;
89
+ result.push(newNode);
90
+ }
91
+ }
92
+ return result;
93
+ }
44
94
  getElementProperties(elementId, version) {
45
95
  this.checkIsOpen();
46
- const set = this._module.getProperties(this._id, elementId, version);
96
+ const set = this._module.getProperties(this.id, elementId, version);
47
97
  return BimDataConverter.toModelElementPropertySet(set, true);
48
98
  }
99
+ getAllVersions() {
100
+ this.checkIsOpen();
101
+ const versions = new Array();
102
+ const bimVersions = this._module.getAllVersions(this.id);
103
+ for (let index = 0; index < bimVersions.size(); index++) {
104
+ const version = bimVersions.get(index);
105
+ versions.push(version);
106
+ }
107
+ bimVersions.delete();
108
+ return versions;
109
+ }
110
+ getLatestVersion() {
111
+ this.checkIsOpen();
112
+ return this._module.getLatestVersion(this._path);
113
+ }
49
114
  get _path() {
50
- return "/" + this._id;
115
+ return "/" + this.id;
51
116
  }
52
117
  checkIsOpen() {
53
118
  if (!this._isOpen)
@@ -1 +1 @@
1
- {"version":3,"file":"BimDataModelPart.js","sourceRoot":"","sources":["../../../src/model/BimDataModelPart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAgBlD,MAAM,OAAO,gBAAgB;IAM3B,YAAY,EAAU,EAAE,MAAsB;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC,MAAoB;QACvB,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO;QAET,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;YAClD,OAAO;QAET,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO;QAET,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,OAAe;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,IAAY,KAAK;QACf,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACxB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC9E,CAAC;CACF"}
1
+ {"version":3,"file":"BimDataModelPart.js","sourceRoot":"","sources":["../../../src/model/BimDataModelPart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { BimDataMeshProperty, BimDataNodeState, BimDataElement } from "./BimDataElement.js";
2
+ import { BimDataElementPropertySet } from "./BimDataElementPropertySet.js";
3
+ export declare class BimNodeComparer {
4
+ static compareNodes(oldNode: BimDataElement, oldProps: BimDataElementPropertySet[], newNode: BimDataElement, newProps: BimDataElementPropertySet[]): BimDataNodeState;
5
+ static compareProperties(first: BimDataElementPropertySet[], second: BimDataElementPropertySet[]): BimDataElementPropertySet[];
6
+ static comparePropertiesSet(first: BimDataElementPropertySet, second: BimDataElementPropertySet): boolean;
7
+ static compareMeshProperties(first: Map<string, BimDataMeshProperty[]>, second: Map<string, BimDataMeshProperty[]>): boolean;
8
+ static compareMeshPropertyArr(first: BimDataMeshProperty[] | undefined, second: BimDataMeshProperty[] | undefined): boolean;
9
+ private static compareArrays;
10
+ }
@@ -0,0 +1,71 @@
1
+ import { BimDataNodeState } from "./BimDataElement.js";
2
+ import { isEqualBimValues } from "./BimDataElementPropertySet.js";
3
+ import { BimDataIfcType } from "./BimDataIfcType.js";
4
+ export class BimNodeComparer {
5
+ static compareNodes(oldNode, oldProps, newNode, newProps) {
6
+ let state = BimDataNodeState.Undefined;
7
+ if (!this.compareMeshProperties(oldNode.meshesProperties, newNode.meshesProperties)) {
8
+ state = BimDataNodeState.PlacementModified;
9
+ }
10
+ const changedProperties = this.compareProperties(oldProps, newProps);
11
+ if (changedProperties.length > 0) {
12
+ const isQuantityProp = changedProperties.every(prop => prop.type == BimDataIfcType.IfcElementQuantity);
13
+ state |= isQuantityProp ? BimDataNodeState.AttributesQuantitiesModified : BimDataNodeState.AttributesModified;
14
+ }
15
+ return state;
16
+ }
17
+ static compareProperties(first, second) {
18
+ const result = new Array();
19
+ this.compareArrays(first, second, (a, b) => {
20
+ const isEqual = BimNodeComparer.comparePropertiesSet(a, b);
21
+ if (!isEqual)
22
+ result.push(a);
23
+ return false;
24
+ });
25
+ return result;
26
+ }
27
+ static comparePropertiesSet(first, second) {
28
+ return first.name == second.name &&
29
+ first.type == second.type &&
30
+ this.compareArrays(first.properties, second.properties, (c, d) => {
31
+ return c.name == d.name &&
32
+ c.unit == d.unit &&
33
+ isEqualBimValues(c.value, d.value);
34
+ });
35
+ }
36
+ static compareMeshProperties(first, second) {
37
+ if (first == null || second == null)
38
+ return true;
39
+ if (first.size != second.size)
40
+ return false;
41
+ for (const key of first.keys()) {
42
+ const firstVal = first.get(key);
43
+ const secondVal = second.get(key);
44
+ if (!this.compareMeshPropertyArr(firstVal, secondVal))
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ static compareMeshPropertyArr(first, second) {
50
+ if (!first && !second)
51
+ return true;
52
+ if (!second || !first || second.length != first.length) {
53
+ return false;
54
+ }
55
+ return this.compareArrays(first, second, (a, b) => {
56
+ return a.meshColor == b.meshColor && this.compareArrays(a.meshPlacement, b.meshPlacement, (c, d) => c == d);
57
+ });
58
+ }
59
+ static compareArrays(a, b, comparer) {
60
+ if (!a && !b)
61
+ return true;
62
+ if (!a || !b || a.length != b.length)
63
+ return false;
64
+ for (let i = 0; i < a.length; i++) {
65
+ if (!comparer(a[i], b[i]))
66
+ return false;
67
+ }
68
+ return true;
69
+ }
70
+ }
71
+ //# sourceMappingURL=BimNodeComparer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BimNodeComparer.js","sourceRoot":"","sources":["../../../src/model/BimNodeComparer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,gBAAgB,EAAkB,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAA6B,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,eAAe;IAE1B,MAAM,CAAC,YAAY,CAAC,OAAuB,EACzC,QAAqC,EACrC,OAAuB,EACvB,QAAqC;QAErC,IAAI,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACnF,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC;SAC5C;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAEvG,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;SAC/G;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAkC,EAAE,MAAmC;QAC9F,MAAM,MAAM,GAAG,IAAI,KAAK,EAA6B,CAAC;QAEtD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAEzC,MAAM,OAAO,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3D,IAAI,CAAC,OAAO;gBACV,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEjB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,KAAgC,EAAE,MAAiC;QAC7F,OAAO,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YAC9B,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YACzB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/D,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;oBACrB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI;oBAChB,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,KAAyC,EAAE,MAA0C;QAChH,IAAI,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;YACjC,OAAO,IAAI,CAAC;QAEd,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YAC3B,OAAO,KAAK,CAAC;QAEf,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACnD,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,sBAAsB,CAAC,KAAwC,EAAE,MAAwC;QAC9G,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;YACnB,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;YACtD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC,aAAa,CAAsB,KAAK,EAAE,MAAM,EAAE,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE;YAC/G,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7G,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,aAAa,CAAI,CAAe,EAAE,CAAe,EAAE,QAAiC;QACjG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACV,OAAO,IAAI,CAAC;QAEd,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM;YAClC,OAAO,KAAK,CAAC;QAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvB,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CAEF"}
@@ -1,3 +1,3 @@
1
- export const BimDataBigIntMaxValue = BigInt(3155378975999999999);
2
- export const BimDataBigIntMinValue = BigInt(0);
1
+ export const BimDataBigIntMaxValue = BigInt('3155378975999999999');
2
+ export const BimDataBigIntMinValue = BigInt('0');
3
3
  //# sourceMappingURL=Consts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../../src/model/Consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Consts.js","sourceRoot":"","sources":["../../../src/model/Consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC"}
@@ -1,9 +1,13 @@
1
1
  import { BimDataElement } from "../model/BimDataElement.js";
2
2
  import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
3
3
  import { BimDataTessellation } from "../model/BimDataTessellation.js";
4
- import { VectorOf, WasmElementPropertySet, WasmIfcNode, WasmTessellation } from "../wasm/pilot_bim_dataprovider.js";
4
+ import { VectorOf, WasmElementPropertySet, WasmIfcNode, WasmTessellation, WasmIfcNodePair } from "../wasm/pilot_bim_dataprovider.js";
5
5
  export declare class BimDataConverter {
6
6
  static toToBimDataElements(ifcNodes: VectorOf<WasmIfcNode>, dispose: boolean): BimDataElement[];
7
+ static toToBimDataPairs(ifcNodePairs: VectorOf<WasmIfcNodePair>, dispose: boolean): {
8
+ oldNode: BimDataElement;
9
+ newNode: BimDataElement;
10
+ }[];
7
11
  static toBimDataTessellations(tessellations: VectorOf<WasmTessellation>, dispose: boolean): Map<string, BimDataTessellation>;
8
12
  static toModelElementPropertySet(wasmPropertySets: VectorOf<WasmElementPropertySet>, dispose: boolean): BimDataElementPropertySet[];
9
13
  private static toModelElementProperties;
@@ -15,6 +15,21 @@ export class BimDataConverter {
15
15
  ifcNodes.delete();
16
16
  return props;
17
17
  }
18
+ static toToBimDataPairs(ifcNodePairs, dispose) {
19
+ const bimDataPairs = new Array();
20
+ for (let index = 0; index < ifcNodePairs.size(); index++) {
21
+ const pair = ifcNodePairs.get(index);
22
+ bimDataPairs.push({ oldNode: this.toBimDataElement(pair.oldNode), newNode: this.toBimDataElement(pair.newNode) });
23
+ if (dispose) {
24
+ pair.oldNode.delete();
25
+ pair.newNode.delete();
26
+ pair.delete();
27
+ }
28
+ }
29
+ if (dispose)
30
+ ifcNodePairs.delete();
31
+ return bimDataPairs;
32
+ }
18
33
  static toBimDataTessellations(tessellations, dispose) {
19
34
  const map = new Map();
20
35
  for (let index = 0; index < tessellations.size(); index++) {
@@ -77,7 +92,7 @@ export class BimDataConverter {
77
92
  node.name = ifcNode.name;
78
93
  node.parentGuid = ifcNode.parent_guid;
79
94
  node.type = ifcNode.type;
80
- node.objectState = ifcNode.object_state;
95
+ node.objectState = ifcNode.object_state.value;
81
96
  node.representationStatus = ifcNode.representation_status;
82
97
  node.representationType = ifcNode.representation_type;
83
98
  node.revision = ifcNode.revision;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewerTools.js","sourceRoot":"","sources":["../../../src/utils/ViewerTools.ts"],"names":[],"mappings":"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"}
@@ -1,95 +1,105 @@
1
1
  /// <reference types="emscripten" />
2
2
  export interface IWasmBimModule extends EmscriptenModule {
3
- get FS(): typeof FS;
4
- getTessellations(filename: string): VectorOf<WasmTessellation>;
5
- getAllNodes(filename: string): VectorOf<WasmIfcNode>;
6
- getProperties(filename: string, elementId:string, version: bigint): VectorOf<WasmElementPropertySet>;
7
- doLeakCheck(): void;
3
+ get FS(): typeof FS;
4
+ getAllTessellations(filename: string): VectorOf<WasmTessellation>;
5
+ getAllNodes(filename: string): VectorOf<WasmIfcNode>;
6
+ getAllAttributes(filename: string): VectorOf<WasmElementPropertySet>;
7
+ getTessellations(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmTessellation>;
8
+ getNodes(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmIfcNode>;
9
+ getProperties(filename: string, elementId: string, version: bigint): VectorOf<WasmElementPropertySet>;
10
+ getNodesToCompare(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmIfcNodePair>;
11
+ getTessellationsToCompare(filename: string, versionFrom: bigint, versionTo: bigint): VectorOf<WasmTessellation>;
12
+ getLatestVersion(filename: string): bigint;
13
+ getAllVersions(filename: string): VectorOf<bigint>;
14
+ doLeakCheck(): void;
8
15
  }
9
16
 
10
17
  export interface VectorOf<T> extends IDisposable {
11
- get(index: number): T;
12
- size(): number;
18
+ get(index: number): T;
19
+ size(): number;
13
20
  }
14
21
 
15
22
  export interface WasmModelMesh extends IDisposable {
16
- vertices: VectorOf<number>;
17
- normals: VectorOf<number>;
18
- indices: VectorOf<number>;
19
- edge_indices: VectorOf<number>;
20
- color: number;
23
+ vertices: VectorOf<number>;
24
+ normals: VectorOf<number>;
25
+ indices: VectorOf<number>;
26
+ edge_indices: VectorOf<number>;
27
+ color: number;
21
28
  }
22
29
 
23
30
  export interface WasmTessellation extends IDisposable {
24
- id: string;
25
- node_id: string;
26
- revision: number;
27
- model_mesh: WasmModelMesh;
28
- }
29
-
30
- export interface WasmIfcNode extends IDisposable{
31
- id: string;
32
- object_state: object;
33
- revision: bigint;
34
- parent_guid: string;
35
- name: string;
36
- type: string;
37
- representation_type: string;
38
- representation_status: string;
39
- representation_status_flag: WasmIfcRepresentationStatus;
40
- grid_object: WasmGridObject;
41
- mesh_properties: VectorOf<WasmMeshPropertyPair>;
31
+ id: string;
32
+ node_id: string;
33
+ revision: number;
34
+ model_mesh: WasmModelMesh;
35
+ }
36
+
37
+ export interface WasmIfcNode extends IDisposable {
38
+ id: string;
39
+ object_state: WasmIfcNodeState;
40
+ revision: bigint;
41
+ parent_guid: string;
42
+ name: string;
43
+ type: string;
44
+ representation_type: string;
45
+ representation_status: string;
46
+ representation_status_flag: WasmIfcRepresentationStatus;
47
+ grid_object: WasmGridObject;
48
+ mesh_properties: VectorOf<WasmMeshPropertyPair>;
49
+ }
50
+
51
+ export interface WasmIfcNodePair extends IDisposable{
52
+ oldNode: WasmIfcNode;
53
+ newNode: WasmIfcNode;
54
+ }
55
+
56
+ export interface WasmIfcNodeState {
57
+ value: number;
42
58
  }
43
59
 
44
60
  export interface WasmGridObject extends IDisposable {
45
- grid_axes: VectorOf<WasmGridAxis>;
46
- placement: VectorOf<number>;
61
+ grid_axes: VectorOf<WasmGridAxis>;
62
+ placement: VectorOf<number>;
47
63
  }
48
64
 
49
65
  export interface WasmGridAxis extends IDisposable {
50
- id: number;
51
- type: WasmGridAxisType;
52
- data: VectorOf<number>;
53
- label: string;
66
+ id: number;
67
+ type: WasmGridAxisType;
68
+ data: VectorOf<number>;
69
+ label: string;
54
70
  }
55
71
 
56
72
  export interface WasmGridAxisType {
57
73
  value: number;
58
74
  }
59
75
 
60
- export enum WasmGridAxisTypeEnum {
61
- LINE,
62
- CIRCLE,
63
- ARC
64
- }
65
-
66
76
  export interface WasmMeshPropertyPair extends IDisposable {
67
- key: string;
68
- value: VectorOf<WasmMeshProperties>;
77
+ key: string;
78
+ value: VectorOf<WasmMeshProperties>;
69
79
  }
70
80
 
71
- export interface WasmMeshProperties extends IDisposable{
72
- mesh_color: number;
73
- mesh_placement: VectorOf<number>;
81
+ export interface WasmMeshProperties extends IDisposable {
82
+ mesh_color: number;
83
+ mesh_placement: VectorOf<number>;
74
84
  }
75
85
 
76
86
  export class IDisposable {
77
- delete(): void;
87
+ delete(): void;
78
88
  }
79
89
 
80
90
  export interface WasmIfcRepresentationStatus {
81
- value: number;
91
+ value: number;
82
92
  }
83
93
 
84
94
  export enum WasmIfcRepresentationStatusEnum {
85
- SUCCESS = 0,
86
- NO_REPRESENTATION = 1,
87
- IGNORED_IFC_TYPE = 2,
88
- IFC_PARSING_ERROR = 4,
89
- SOLID_CREATION_ERROR = 8,
90
- TESSELATING_ERROR = 16,
91
- C3D_EXEPTION = 32,
92
- UNCLOSED_SOLID = 64
95
+ SUCCESS = 0,
96
+ NO_REPRESENTATION = 1,
97
+ IGNORED_IFC_TYPE = 2,
98
+ IFC_PARSING_ERROR = 4,
99
+ SOLID_CREATION_ERROR = 8,
100
+ TESSELATING_ERROR = 16,
101
+ C3D_EXEPTION = 32,
102
+ UNCLOSED_SOLID = 64
93
103
  }
94
104
 
95
105
  export interface WasmDValue extends IDisposable {
@@ -126,12 +136,12 @@ export abstract class Optional<T> {
126
136
  has_value(): boolean;
127
137
  value(): T;
128
138
  }
129
- export class OptionalString extends Optional<string> {}
130
- export class OptionalBool extends Optional<boolean> {}
131
- export class OptionalLong extends Optional<number> {}
132
- export class OptionalDouble extends Optional<number> {}
133
- export class OptionalDate extends Optional<bigint> {}
134
- export class OptionalGuid extends Optional<WasmGuid> {}
139
+ export class OptionalString extends Optional<string> { }
140
+ export class OptionalBool extends Optional<boolean> { }
141
+ export class OptionalLong extends Optional<number> { }
142
+ export class OptionalDouble extends Optional<number> { }
143
+ export class OptionalDate extends Optional<bigint> { }
144
+ export class OptionalGuid extends Optional<WasmGuid> { }
135
145
 
136
146
 
137
147
  declare const BimDataProviderModule: EmscriptenModuleFactory<IWasmBimModule>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotdev/pilot-bim-dataprovider",
3
- "version": "24.0.1",
3
+ "version": "24.2.0",
4
4
  "description": "Package for reading data from information model data container.",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -9,7 +9,8 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "build": "tsc && node build.js",
12
- "test": "echo \"Error: no test specified\" && exit 1"
12
+ "test": "jest",
13
+ "lint": "eslint . --ext .ts"
13
14
  },
14
15
  "keywords": [
15
16
  "pilotdev",
@@ -23,6 +24,12 @@
23
24
  "license": "MIT",
24
25
  "devDependencies": {
25
26
  "@types/emscripten": "1.39.6",
27
+ "@types/jest": "28.1.3",
28
+ "jest": "^29.7.0",
29
+ "jest-environment-jsdom": "^29.7.0",
30
+ "jest-mock-extended": "2.0.6",
31
+ "jest-teamcity-reporter": "0.9.0",
32
+ "ts-jest": "28.0.3",
26
33
  "typescript": "4.9.4"
27
34
  },
28
35
  "exclude": [