bimatter-viewer-react 0.5.9 → 0.5.11

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
@@ -222,94 +222,6 @@ function App() {
222
222
  }
223
223
  ```
224
224
 
225
- ## Viewer API
226
-
227
- ```ts
228
- viewerRef.current?.camera.fitCamera();
229
- viewerRef.current?.camera.getIntersection();
230
- viewerRef.current?.camera.getIntersection(true);
231
-
232
- viewerRef.current?.geometryUtils.showAll();
233
- viewerRef.current?.geometryUtils.showByIds([1, 2, 3]);
234
- viewerRef.current?.geometryUtils.hideByIds([1, 2, 3]);
235
- viewerRef.current?.geometryUtils.hideSelected();
236
- viewerRef.current?.geometryUtils.isolateByIds([1, 2, 3]);
237
- viewerRef.current?.geometryUtils.isolateSelected();
238
- viewerRef.current?.geometryUtils.resetIsolation();
239
- viewerRef.current?.geometryUtils.getAllIds();
240
- viewerRef.current?.geometryUtils.setIfcSpacesVisibility(false);
241
- viewerRef.current?.geometryUtils.getIfcSpacesVisibility();
242
- viewerRef.current?.geometryUtils.toggleIIfcSpacesVisibility();
243
-
244
- viewerRef.current?.selector.setSelected(0, [10, 20], true);
245
- viewerRef.current?.selector.addSelected(0, [30]);
246
- viewerRef.current?.selector.removeSelected(0, [10]);
247
- viewerRef.current?.selector.resetSelection();
248
- viewerRef.current?.selector.getSelected();
249
- viewerRef.current?.selector.collector().ofType("IfcWall").toElements();
250
- viewerRef.current?.selector.setSelectionColor("#1194bd");
251
- viewerRef.current?.selector.getSelectionColor();
252
- viewerRef.current?.selector.setPreselectionColor("#68c6e3");
253
- viewerRef.current?.selector.getPreselectionColor();
254
-
255
- viewerRef.current?.colors.setColor(0, [10, 20], "#ff3355");
256
- viewerRef.current?.colors.clearColor(0, [10]);
257
- viewerRef.current?.colors.clearModelColors(0);
258
- viewerRef.current?.colors.clearAllColors();
259
-
260
- viewerRef.current?.converter.convertToBmt({
261
- activeView: true,
262
- useMinVersion: true,
263
- });
264
- viewerRef.current?.converter.convertIfcFileToBmt(files, {
265
- useIfcColors: true,
266
- useIfcElementAssembly: true,
267
- useIfcSpace: true,
268
- useMinVersion: true,
269
- });
270
-
271
- viewerRef.current?.clipping.createPlane();
272
- viewerRef.current?.clipping.createClippingRectangle();
273
- viewerRef.current?.clipping.toggle();
274
- viewerRef.current?.clipping.setActive(true);
275
- viewerRef.current?.clipping.setEdgesActive(true);
276
- viewerRef.current?.clipping.setHelpersActive(true);
277
- viewerRef.current?.clipping.deleteAllPlanes();
278
-
279
- viewerRef.current?.dimensions.setActive(true);
280
- viewerRef.current?.dimensions.toggle();
281
- viewerRef.current?.dimensions.cancelDrawing();
282
- viewerRef.current?.dimensions.changeAxes();
283
- viewerRef.current?.dimensions.delete();
284
- viewerRef.current?.dimensions.deleteAll();
285
- viewerRef.current?.dimensions.setUnit("mm");
286
- viewerRef.current?.dimensions.setColor("#111827");
287
- viewerRef.current?.dimensions.setWidth(1);
288
- viewerRef.current?.dimensions.setSnapDistance(1);
289
- viewerRef.current?.dimensions.setEndpointScaleFactor(0.015);
290
- viewerRef.current?.dimensions.getDimensions();
291
-
292
- viewerRef.current?.properties.getModelProps();
293
- viewerRef.current?.properties.getModelStructure();
294
- viewerRef.current?.properties.exportExcel(0);
295
- viewerRef.current?.properties.exportAllExcel();
296
- viewerRef.current?.utils.getUserDevice();
297
- viewerRef.current?.utils.getDefaultHotkeysEnabled();
298
- viewerRef.current?.utils.setDefaultHotkeysEnabled(false);
299
- viewerRef.current?.utils.toggleDefaultHotkeys();
300
- viewerRef.current?.utils.getShowStats();
301
- viewerRef.current?.utils.setShowStats(true);
302
- viewerRef.current?.utils.getShowNavCube();
303
- viewerRef.current?.utils.setShowNavCube(false);
304
- viewerRef.current?.utils.toggleShowNavCube();
305
- viewerRef.current?.utils.getShowGridAxes();
306
- viewerRef.current?.utils.setShowGridAxes(true);
307
- viewerRef.current?.utils.toggleShowGridAxes();
308
- viewerRef.current?.utils.getGridAxesVisibility();
309
- viewerRef.current?.utils.setGridAxesVisibility({ top: false, bottom: true });
310
- viewerRef.current?.utils.setGridAxisVisibility("left", false);
311
- ```
312
-
313
225
  ## Geometry Utils
314
226
 
315
227
  Use `ref` to call viewer actions:
@@ -522,12 +434,25 @@ const basicWallIds = viewerRef.current?.selector
522
434
  .ofType("IfcWall")
523
435
  .Where((element) => element.props.Name.startsWith("basic wall"))
524
436
  .toElementsIds();
437
+
438
+ const levels = viewerRef.current?.properties.getAllLevels(true);
439
+ const firstLevel = levels?.[0]?.[0];
440
+
441
+ const firstLevelWallIds = firstLevel
442
+ ? viewerRef.current?.selector
443
+ .collector()
444
+ .ofLevel(firstLevel)
445
+ .ofType("IfcWall")
446
+ .toElementsIds()
447
+ : [];
525
448
  ```
526
449
 
527
450
  Without `ofModel()`, `toElements()` returns `{ [modelID]: { elementID, props }[] }` and `toElementsIds()` returns `{ [modelID]: number[] }`.
528
451
 
529
452
  With `ofModel(0)`, `toElements()` returns `{ elementID, props }[]` and `toElementsIds()` returns `number[]`.
530
453
 
454
+ With `ofLevel(level)`, `toElements()` returns `{ elementID, props }[]` and `toElementsIds()` returns `number[]`. Use `properties.getAllLevels(true)` so each level includes `elements`.
455
+
531
456
  `ofType()` accepts `IfcClass | string`, so TypeScript suggests IFC classes like `"IfcWall"` while still allowing custom type strings.
532
457
 
533
458
  ## Stats And Profiling
@@ -24,7 +24,7 @@ export type ViewerGeometryUtilsApi = {
24
24
  toggleIIfcSpacesVisibility: () => void;
25
25
  };
26
26
  export type ViewerSelectorApi = {
27
- addSelected: (modelID: number, ids: number[]) => void;
27
+ addSelected: (modelID: number, ids: number[], setTarget?: boolean, fitTarget?: boolean) => void;
28
28
  collector: () => FilteredElementsCollector;
29
29
  getPreselectionColor: () => ColorRepresentation;
30
30
  getSelectionColor: () => ColorRepresentation;
@@ -33,7 +33,10 @@ export type ViewerSelectorApi = {
33
33
  resetSelection: (modelID?: number) => void;
34
34
  setPreselectionColor: (color: ColorRepresentation) => void;
35
35
  setSelectionColor: (color: ColorRepresentation) => void;
36
- setSelected: (modelID: number, ids: number[], reset?: boolean) => void;
36
+ setSelected: (modelID: number, ids: number[], reset?: boolean, setTarget?: boolean, fitTarget?: boolean) => void;
37
+ };
38
+ export type ViewerSceneSelectorApi = {
39
+ setTargetToSelection: (selection: ViewerSelection, fitTarget?: boolean) => void;
37
40
  };
38
41
  export type ViewerColorsApi = {
39
42
  clearAllColors: () => void;
@@ -85,6 +88,7 @@ export type ViewerSceneApi = {
85
88
  converter: ViewerConverterApi;
86
89
  dimensions: ViewerDimensionsApi;
87
90
  geometryUtils: ViewerGeometryUtilsApi;
91
+ selector: ViewerSceneSelectorApi;
88
92
  };
89
93
  export declare function serializeSelected(selected: SelectedStore): ViewerSelection;
90
94
  export declare function createSelectedStore(selection: ViewerSelection): SelectedStore;