@itwin/tree-widget-react 0.5.0 → 0.6.1

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.
Files changed (114) hide show
  1. package/lib/cjs/TreeWidget.js +4 -2
  2. package/lib/cjs/TreeWidget.js.map +1 -1
  3. package/lib/cjs/components/TreeWidgetUiItemsProvider.js +6 -6
  4. package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -1
  5. package/lib/cjs/components/rulesets/ClassificationSystems.json +122 -0
  6. package/lib/cjs/components/rulesets/IModelContent.json +407 -407
  7. package/lib/cjs/components/trees/Common.d.ts +21 -0
  8. package/lib/cjs/components/trees/Common.js +21 -0
  9. package/lib/cjs/components/trees/Common.js.map +1 -0
  10. package/lib/cjs/components/trees/VisibilityTreeBase.scss +53 -0
  11. package/lib/cjs/components/trees/VisibilityTreeEventHandler.d.ts +68 -0
  12. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js +162 -0
  13. package/lib/cjs/components/trees/VisibilityTreeEventHandler.js.map +1 -0
  14. package/lib/cjs/components/trees/VisibilityTreeRenderer.d.ts +43 -0
  15. package/lib/cjs/components/trees/VisibilityTreeRenderer.js +81 -0
  16. package/lib/cjs/components/trees/VisibilityTreeRenderer.js.map +1 -0
  17. package/lib/cjs/components/trees/category-tree/Categories.json +103 -0
  18. package/lib/cjs/components/trees/category-tree/CategoriesTree.d.ts +65 -0
  19. package/lib/cjs/components/trees/category-tree/CategoriesTree.js +121 -0
  20. package/lib/cjs/components/trees/category-tree/CategoriesTree.js.map +1 -0
  21. package/lib/{esm/components/trees → cjs/components/trees/category-tree}/CategoriesTree.scss +5 -0
  22. package/lib/cjs/components/trees/{CategoriesTree.d.ts → category-tree/CategoriesTreeComponent.d.ts} +2 -2
  23. package/lib/cjs/components/trees/{CategoriesTree.js → category-tree/CategoriesTreeComponent.js} +14 -13
  24. package/lib/cjs/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -0
  25. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.d.ts +54 -0
  26. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js +213 -0
  27. package/lib/cjs/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -0
  28. package/lib/cjs/components/trees/index.d.ts +10 -3
  29. package/lib/cjs/components/trees/index.js +13 -6
  30. package/lib/cjs/components/trees/index.js.map +1 -1
  31. package/lib/cjs/components/trees/models-tree/Hierarchy.GroupedByClass.json +392 -0
  32. package/lib/cjs/components/trees/models-tree/Hierarchy.json +387 -0
  33. package/lib/cjs/components/trees/models-tree/ModelsTree.d.ts +82 -0
  34. package/lib/cjs/components/trees/models-tree/ModelsTree.js +144 -0
  35. package/lib/cjs/components/trees/models-tree/ModelsTree.js.map +1 -0
  36. package/lib/cjs/components/trees/{ModelsTree.scss → models-tree/ModelsTree.scss} +5 -1
  37. package/lib/{esm/components/trees/ModelsTree.d.ts → cjs/components/trees/models-tree/ModelsTreeComponent.d.ts} +2 -2
  38. package/lib/cjs/components/trees/{ModelsTree.js → models-tree/ModelsTreeComponent.js} +6 -5
  39. package/lib/cjs/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
  40. package/lib/cjs/components/trees/models-tree/ModelsTreeSearch.json +239 -0
  41. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.d.ts +100 -0
  42. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js +477 -0
  43. package/lib/cjs/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -0
  44. package/lib/cjs/components/trees/models-tree/Utils.d.ts +10 -0
  45. package/lib/cjs/components/trees/models-tree/Utils.js +27 -0
  46. package/lib/cjs/components/trees/models-tree/Utils.js.map +1 -0
  47. package/lib/cjs/components/trees/{SpatialTree.d.ts → spatial-tree/SpatialTreeComponent.d.ts} +2 -2
  48. package/lib/cjs/components/trees/{SpatialTree.js → spatial-tree/SpatialTreeComponent.js} +2 -2
  49. package/lib/cjs/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -0
  50. package/lib/cjs/tree-widget-react.js +3 -3
  51. package/lib/cjs/tree-widget-react.js.map +1 -1
  52. package/lib/cjs/types.d.ts +3 -1
  53. package/lib/cjs/types.js.map +1 -1
  54. package/lib/esm/TreeWidget.js +4 -2
  55. package/lib/esm/TreeWidget.js.map +1 -1
  56. package/lib/esm/components/TreeWidgetUiItemsProvider.js +3 -3
  57. package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -1
  58. package/lib/esm/components/rulesets/ClassificationSystems.json +122 -0
  59. package/lib/esm/components/rulesets/IModelContent.json +407 -407
  60. package/lib/esm/components/trees/Common.d.ts +21 -0
  61. package/lib/esm/components/trees/Common.js +18 -0
  62. package/lib/esm/components/trees/Common.js.map +1 -0
  63. package/lib/esm/components/trees/VisibilityTreeBase.scss +53 -0
  64. package/lib/esm/components/trees/VisibilityTreeEventHandler.d.ts +68 -0
  65. package/lib/esm/components/trees/VisibilityTreeEventHandler.js +158 -0
  66. package/lib/esm/components/trees/VisibilityTreeEventHandler.js.map +1 -0
  67. package/lib/esm/components/trees/VisibilityTreeRenderer.d.ts +43 -0
  68. package/lib/esm/components/trees/VisibilityTreeRenderer.js +54 -0
  69. package/lib/esm/components/trees/VisibilityTreeRenderer.js.map +1 -0
  70. package/lib/esm/components/trees/category-tree/Categories.json +103 -0
  71. package/lib/esm/components/trees/category-tree/CategoriesTree.d.ts +65 -0
  72. package/lib/esm/components/trees/category-tree/CategoriesTree.js +96 -0
  73. package/lib/esm/components/trees/category-tree/CategoriesTree.js.map +1 -0
  74. package/lib/{cjs/components/trees → esm/components/trees/category-tree}/CategoriesTree.scss +5 -0
  75. package/lib/esm/components/trees/{CategoriesTree.d.ts → category-tree/CategoriesTreeComponent.d.ts} +2 -2
  76. package/lib/esm/components/trees/{CategoriesTree.js → category-tree/CategoriesTreeComponent.js} +8 -7
  77. package/lib/esm/components/trees/category-tree/CategoriesTreeComponent.js.map +1 -0
  78. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.d.ts +54 -0
  79. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js +188 -0
  80. package/lib/esm/components/trees/category-tree/CategoryVisibilityHandler.js.map +1 -0
  81. package/lib/esm/components/trees/index.d.ts +10 -3
  82. package/lib/esm/components/trees/index.js +13 -6
  83. package/lib/esm/components/trees/index.js.map +1 -1
  84. package/lib/esm/components/trees/models-tree/Hierarchy.GroupedByClass.json +392 -0
  85. package/lib/esm/components/trees/models-tree/Hierarchy.json +387 -0
  86. package/lib/esm/components/trees/models-tree/ModelsTree.d.ts +82 -0
  87. package/lib/esm/components/trees/models-tree/ModelsTree.js +121 -0
  88. package/lib/esm/components/trees/models-tree/ModelsTree.js.map +1 -0
  89. package/lib/esm/components/trees/{ModelsTree.scss → models-tree/ModelsTree.scss} +5 -1
  90. package/lib/{cjs/components/trees/ModelsTree.d.ts → esm/components/trees/models-tree/ModelsTreeComponent.d.ts} +2 -2
  91. package/lib/esm/components/trees/{ModelsTree.js → models-tree/ModelsTreeComponent.js} +6 -5
  92. package/lib/esm/components/trees/models-tree/ModelsTreeComponent.js.map +1 -0
  93. package/lib/esm/components/trees/models-tree/ModelsTreeSearch.json +239 -0
  94. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.d.ts +100 -0
  95. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js +472 -0
  96. package/lib/esm/components/trees/models-tree/ModelsVisibilityHandler.js.map +1 -0
  97. package/lib/esm/components/trees/models-tree/Utils.d.ts +10 -0
  98. package/lib/esm/components/trees/models-tree/Utils.js +23 -0
  99. package/lib/esm/components/trees/models-tree/Utils.js.map +1 -0
  100. package/lib/esm/components/trees/{SpatialTree.d.ts → spatial-tree/SpatialTreeComponent.d.ts} +2 -2
  101. package/lib/esm/components/trees/{SpatialTree.js → spatial-tree/SpatialTreeComponent.js} +2 -2
  102. package/lib/esm/components/trees/spatial-tree/SpatialTreeComponent.js.map +1 -0
  103. package/lib/esm/tree-widget-react.js +3 -3
  104. package/lib/esm/tree-widget-react.js.map +1 -1
  105. package/lib/esm/types.d.ts +3 -1
  106. package/lib/esm/types.js.map +1 -1
  107. package/lib/public/locales/en/TreeWidget.json +38 -1
  108. package/package.json +54 -32
  109. package/lib/cjs/components/trees/CategoriesTree.js.map +0 -1
  110. package/lib/cjs/components/trees/ModelsTree.js.map +0 -1
  111. package/lib/cjs/components/trees/SpatialTree.js.map +0 -1
  112. package/lib/esm/components/trees/CategoriesTree.js.map +0 -1
  113. package/lib/esm/components/trees/ModelsTree.js.map +0 -1
  114. package/lib/esm/components/trees/SpatialTree.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
7
  if (k2 === undefined) k2 = k;
8
8
  Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
@@ -14,8 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./ModelsTree"), exports);
18
- __exportStar(require("./CategoriesTree"), exports);
19
- __exportStar(require("./SpatialTree"), exports);
17
+ __exportStar(require("./Common"), exports);
20
18
  __exportStar(require("./IModelContentTree"), exports);
19
+ __exportStar(require("./VisibilityTreeEventHandler"), exports);
20
+ __exportStar(require("./VisibilityTreeRenderer"), exports);
21
+ __exportStar(require("./category-tree/CategoriesTree"), exports);
22
+ __exportStar(require("./category-tree/CategoriesTreeComponent"), exports);
23
+ __exportStar(require("./category-tree/CategoryVisibilityHandler"), exports);
24
+ __exportStar(require("./models-tree/ModelsTree"), exports);
25
+ __exportStar(require("./models-tree/ModelsTreeComponent"), exports);
26
+ __exportStar(require("./models-tree/ModelsVisibilityHandler"), exports);
27
+ __exportStar(require("./spatial-tree/SpatialTreeComponent"), exports);
21
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;;;;;;;;;AAEhG,+CAA6B;AAC7B,mDAAiC;AACjC,gDAA8B;AAC9B,sDAAoC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n\nexport * from \"./ModelsTree\";\nexport * from \"./CategoriesTree\";\nexport * from \"./SpatialTree\";\nexport * from \"./IModelContentTree\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/trees/index.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;;;;;;;;;;AAE/F,2CAAyB;AACzB,sDAAoC;AACpC,+DAA6C;AAC7C,2DAAyC;AACzC,iEAA+C;AAC/C,0EAAwD;AACxD,4EAA0D;AAC1D,2DAAyC;AACzC,oEAAkD;AAClD,wEAAsD;AACtD,sEAAoD","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nexport * from \"./Common\";\nexport * from \"./IModelContentTree\";\nexport * from \"./VisibilityTreeEventHandler\";\nexport * from \"./VisibilityTreeRenderer\";\nexport * from \"./category-tree/CategoriesTree\";\nexport * from \"./category-tree/CategoriesTreeComponent\";\nexport * from \"./category-tree/CategoryVisibilityHandler\";\nexport * from \"./models-tree/ModelsTree\";\nexport * from \"./models-tree/ModelsTreeComponent\";\nexport * from \"./models-tree/ModelsVisibilityHandler\";\nexport * from \"./spatial-tree/SpatialTreeComponent\";\n"]}
@@ -0,0 +1,392 @@
1
+ {
2
+ "$schema": "../../../../node_modules/@itwin/presentation-common/Ruleset.schema.json",
3
+ "id": "tree-widget-react/ModelsTree.GroupedByClass",
4
+ "requiredSchemas": [
5
+ {
6
+ "name": "BisCore"
7
+ }
8
+ ],
9
+ "rules": [
10
+ {
11
+ "ruleType": "RootNodes",
12
+ "autoExpand": true,
13
+ "specifications": [
14
+ {
15
+ "specType": "InstanceNodesOfSpecificClasses",
16
+ "classes": [
17
+ {
18
+ "schemaName": "BisCore",
19
+ "classNames": [
20
+ "Subject"
21
+ ]
22
+ }
23
+ ],
24
+ "instanceFilter": "this.Parent = NULL",
25
+ "arePolymorphic": false,
26
+ "groupByClass": false,
27
+ "groupByLabel": false
28
+ }
29
+ ],
30
+ "customizationRules": [
31
+ {
32
+ "ruleType": "ExtendedData",
33
+ "items": {
34
+ "isSubject": "true"
35
+ }
36
+ }
37
+ ]
38
+ },
39
+ {
40
+ "ruleType": "ChildNodes",
41
+ "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
42
+ "specifications": [
43
+ {
44
+ "specType": "RelatedInstanceNodes",
45
+ "relationshipPaths": [
46
+ {
47
+ "relationship": {
48
+ "schemaName": "BisCore",
49
+ "className": "SubjectOwnsSubjects"
50
+ },
51
+ "direction": "Forward",
52
+ "targetClass": {
53
+ "schemaName": "BisCore",
54
+ "className": "Subject"
55
+ }
56
+ }
57
+ ],
58
+ "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") <> NULL OR ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") = \"Hierarchy\"",
59
+ "hideNodesInHierarchy": true,
60
+ "groupByClass": false,
61
+ "groupByLabel": false
62
+ },
63
+ {
64
+ "specType": "RelatedInstanceNodes",
65
+ "relationshipPaths": [
66
+ {
67
+ "relationship": {
68
+ "schemaName": "BisCore",
69
+ "className": "SubjectOwnsSubjects"
70
+ },
71
+ "direction": "Forward",
72
+ "targetClass": {
73
+ "schemaName": "BisCore",
74
+ "className": "Subject"
75
+ }
76
+ }
77
+ ],
78
+ "instanceFilter": "json_extract(this.JsonProperties, \"$.Subject.Job.Bridge\") = NULL AND ifnull(json_extract(this.JsonProperties, \"$.Subject.Model.Type\"), \"\") <> \"Hierarchy\"",
79
+ "hideIfNoChildren": true,
80
+ "groupByClass": false,
81
+ "groupByLabel": false
82
+ }
83
+ ],
84
+ "customizationRules": [
85
+ {
86
+ "ruleType": "ExtendedData",
87
+ "items": {
88
+ "isSubject": "true"
89
+ }
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "ruleType": "ChildNodes",
95
+ "condition": "ParentNode.IsOfClass(\"Subject\", \"BisCore\")",
96
+ "specifications": [
97
+ {
98
+ "specType": "InstanceNodesOfSpecificClasses",
99
+ "classes": {
100
+ "schemaName": "BisCore",
101
+ "classNames": [
102
+ "GeometricModel3d"
103
+ ]
104
+ },
105
+ "arePolymorphic": true,
106
+ "relatedInstances": [
107
+ {
108
+ "relationshipPath": {
109
+ "relationship": {
110
+ "schemaName": "BisCore",
111
+ "className": "ModelModelsElement"
112
+ },
113
+ "direction": "Forward",
114
+ "targetClass": {
115
+ "schemaName": "BisCore",
116
+ "className": "InformationPartitionElement"
117
+ }
118
+ },
119
+ "alias": "partition",
120
+ "isRequired": true
121
+ }
122
+ ],
123
+ "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") = NULL AND json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") = NULL AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
124
+ "hasChildren": "Always",
125
+ "hideIfNoChildren": true,
126
+ "groupByClass": false,
127
+ "groupByLabel": false
128
+ },
129
+ {
130
+ "specType": "InstanceNodesOfSpecificClasses",
131
+ "classes": {
132
+ "schemaName": "BisCore",
133
+ "classNames": [
134
+ "GeometricModel3d"
135
+ ]
136
+ },
137
+ "arePolymorphic": true,
138
+ "relatedInstances": [
139
+ {
140
+ "relationshipPath": {
141
+ "relationship": {
142
+ "schemaName": "BisCore",
143
+ "className": "ModelModelsElement"
144
+ },
145
+ "direction": "Forward",
146
+ "targetClass": {
147
+ "schemaName": "BisCore",
148
+ "className": "InformationPartitionElement"
149
+ }
150
+ },
151
+ "alias": "partition",
152
+ "isRequired": true
153
+ }
154
+ ],
155
+ "instanceFilter": "(parent.ECInstanceId = partition.Parent.Id OR json_extract(parent.JsonProperties, \"$.Subject.Model.TargetPartition\") = printf(\"0x%x\", partition.ECInstanceId)) AND NOT this.IsPrivate AND (json_extract(partition.JsonProperties, \"$.PhysicalPartition.Model.Content\") <> NULL OR json_extract(partition.JsonProperties, \"$.GraphicalPartition3d.Model.Content\") <> NULL) AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
156
+ "hasChildren": "Always",
157
+ "hideNodesInHierarchy": true,
158
+ "groupByClass": false,
159
+ "groupByLabel": false
160
+ }
161
+ ],
162
+ "customizationRules": [
163
+ {
164
+ "ruleType": "ExtendedData",
165
+ "items": {
166
+ "isModel": "true"
167
+ }
168
+ }
169
+ ]
170
+ },
171
+ {
172
+ "ruleType": "ChildNodes",
173
+ "condition": "ParentNode.IsOfClass(\"ISubModeledElement\", \"BisCore\")",
174
+ "specifications": [
175
+ {
176
+ "specType": "RelatedInstanceNodes",
177
+ "relationshipPaths": [
178
+ {
179
+ "relationship": {
180
+ "schemaName": "BisCore",
181
+ "className": "ModelModelsElement"
182
+ },
183
+ "direction": "Backward"
184
+ }
185
+ ],
186
+ "instanceFilter": "NOT this.IsPrivate AND this.HasRelatedInstance(\"BisCore:ModelContainsElements\", \"Forward\", \"BisCore:GeometricElement3d\")",
187
+ "hideNodesInHierarchy": true,
188
+ "groupByClass": false,
189
+ "groupByLabel": false
190
+ }
191
+ ],
192
+ "customizationRules": [
193
+ {
194
+ "ruleType": "ExtendedData",
195
+ "items": {
196
+ "isModel": "true"
197
+ }
198
+ }
199
+ ]
200
+ },
201
+ {
202
+ "ruleType": "ChildNodes",
203
+ "condition": "ParentNode.IsOfClass(\"GeometricModel3d\", \"BisCore\")",
204
+ "specifications": [
205
+ {
206
+ "specType": "RelatedInstanceNodes",
207
+ "relationshipPaths": [
208
+ [
209
+ {
210
+ "relationship": {
211
+ "schemaName": "BisCore",
212
+ "className": "ModelContainsElements"
213
+ },
214
+ "direction": "Forward",
215
+ "targetClass": {
216
+ "schemaName": "BisCore",
217
+ "className": "GeometricElement3d"
218
+ }
219
+ },
220
+ {
221
+ "relationship": {
222
+ "schemaName": "BisCore",
223
+ "className": "GeometricElement3dIsInCategory"
224
+ },
225
+ "direction": "Forward",
226
+ "targetClass": {
227
+ "schemaName": "BisCore",
228
+ "className": "SpatialCategory"
229
+ }
230
+ }
231
+ ]
232
+ ],
233
+ "instanceFilter": "NOT this.IsPrivate",
234
+ "suppressSimilarAncestorsCheck": true,
235
+ "hideIfNoChildren": true,
236
+ "groupByClass": false,
237
+ "groupByLabel": false
238
+ }
239
+ ],
240
+ "customizationRules": [
241
+ {
242
+ "ruleType": "ExtendedData",
243
+ "items": {
244
+ "isCategory": "true",
245
+ "modelId": "ParentNode.InstanceId"
246
+ }
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ "ruleType": "ChildNodes",
252
+ "condition": "ParentNode.IsOfClass(\"SpatialCategory\", \"BisCore\")",
253
+ "specifications": [
254
+ {
255
+ "specType": "RelatedInstanceNodes",
256
+ "relationshipPaths": [
257
+ {
258
+ "relationship": {
259
+ "schemaName": "BisCore",
260
+ "className": "GeometricElement3dIsInCategory"
261
+ },
262
+ "direction": "Backward",
263
+ "targetClass": {
264
+ "schemaName": "BisCore",
265
+ "className": "GeometricElement3d"
266
+ }
267
+ }
268
+ ],
269
+ "instanceFilter": "this.Model.Id = parent.parent.ECInstanceId ANDALSO this.Parent = NULL ANDALSO (NOT HasVariable(\"filtered-element-ids\") OR GetVariableIntValues(\"filtered-element-ids\").AnyMatch(id => id = this.ECInstanceId))",
270
+ "groupByClass": true,
271
+ "groupByLabel": false
272
+ }
273
+ ],
274
+ "customizationRules": [
275
+ {
276
+ "ruleType": "ExtendedData",
277
+ "items": {
278
+ "modelId": "this.Model.Id",
279
+ "categoryId": "this.Category.Id"
280
+ }
281
+ }
282
+ ]
283
+ },
284
+ {
285
+ "ruleType": "ChildNodes",
286
+ "condition": "ParentNode.IsOfClass(\"GeometricElement3d\", \"BisCore\")",
287
+ "specifications": [
288
+ {
289
+ "specType": "RelatedInstanceNodes",
290
+ "relationshipPaths": [
291
+ {
292
+ "relationship": {
293
+ "schemaName": "BisCore",
294
+ "className": "ElementOwnsChildElements"
295
+ },
296
+ "direction": "Forward",
297
+ "targetClass": {
298
+ "schemaName": "BisCore",
299
+ "className": "GeometricElement3d"
300
+ }
301
+ }
302
+ ],
303
+ "instanceFilter": "NOT HasVariable(\"filtered-element-ids\") OR GetVariableIntValues(\"filtered-element-ids\").AnyMatch(id => id = this.ECInstanceId)",
304
+ "groupByClass": true,
305
+ "groupByLabel": false
306
+ }
307
+ ],
308
+ "customizationRules": [
309
+ {
310
+ "ruleType": "ExtendedData",
311
+ "items": {
312
+ "modelId": "this.Model.Id",
313
+ "categoryId": "this.Category.Id"
314
+ }
315
+ }
316
+ ]
317
+ },
318
+ {
319
+ "ruleType": "Grouping",
320
+ "class": {
321
+ "schemaName": "BisCore",
322
+ "className": "Subject"
323
+ },
324
+ "groups": [
325
+ {
326
+ "specType": "SameLabelInstance",
327
+ "applicationStage": "PostProcess"
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "ruleType": "Grouping",
333
+ "class": {
334
+ "schemaName": "BisCore",
335
+ "className": "SpatialCategory"
336
+ },
337
+ "groups": [
338
+ {
339
+ "specType": "SameLabelInstance",
340
+ "applicationStage": "PostProcess"
341
+ }
342
+ ]
343
+ },
344
+ {
345
+ "ruleType": "ImageIdOverride",
346
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Subject\", \"BisCore\")",
347
+ "imageIdExpression": "IIF(this.Parent.Id = NULL, \"icon-imodel-hollow-2\", \"icon-folder\")"
348
+ },
349
+ {
350
+ "ruleType": "ImageIdOverride",
351
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Model\", \"BisCore\")",
352
+ "imageIdExpression": "\"icon-model\""
353
+ },
354
+ {
355
+ "ruleType": "ImageIdOverride",
356
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Category\", \"BisCore\")",
357
+ "imageIdExpression": "\"icon-layers\""
358
+ },
359
+ {
360
+ "ruleType": "ImageIdOverride",
361
+ "condition": "ThisNode.IsInstanceNode ANDALSO ThisNode.IsOfClass(\"Element\", \"BisCore\")",
362
+ "imageIdExpression": "\"icon-item\""
363
+ },
364
+ {
365
+ "ruleType": "ImageIdOverride",
366
+ "condition": "ThisNode.IsClassGroupingNode",
367
+ "imageIdExpression": "\"icon-ec-class\""
368
+ },
369
+ {
370
+ "ruleType": "Content",
371
+ "condition": "ContentDisplayType = \"AssemblyElementsRequest\"",
372
+ "specifications": [
373
+ {
374
+ "specType": "SelectedNodeInstances"
375
+ },
376
+ {
377
+ "specType": "ContentRelatedInstances",
378
+ "relationshipPaths": [
379
+ {
380
+ "relationship": {
381
+ "schemaName": "BisCore",
382
+ "className": "ElementOwnsChildElements"
383
+ },
384
+ "direction": "Forward",
385
+ "count": "*"
386
+ }
387
+ ]
388
+ }
389
+ ]
390
+ }
391
+ ]
392
+ }