Skip to main content

Learn Cognite 3d model, focus object, fit camera, search assets highlight object etc..

I have three assets Aker BP, Reverse osmosis, Vulkan Control Room. I click one assets then only load a part of the 3D model. (Aker BP respective 3D Model, Reverse osmosis respective 3D model, Vulkan Control Room respective 3D Model.)

like this.

 


https://docs.cognite.com/api/v1/#tag/3D-Asset-Mapping/paths/~1api~1v1~1projects~1%7Bproject%7D~13d~1mappings~1%7BassetId%7D~1modelnodes/get

 

I got API, Its Working


Assets API

https://docs.cognite.com/api/v1/#tag/Assets

3d Model API

https://docs.cognite.com/api/v1/#tag/3D-Models/operation/get3DModels

I have assets id, The Assets id connected to its respective 3d model

Please share Which API I call.


  1. I would like to know how an Asset id is connected to its respective 3D model 

Details of CDF assets with 3D models is available in documentation at https://cognitedata.github.io/reveal-docs/docs/api/classes/cognite_reveal.AssetNodeCollection/


  1. I would like to know how an Asset id is connected to its respective 3D model 

ok, thanks


Unfortunately there are no 360 images available in the demo project currently.


Hi. Please share image uploaded site_id.


1.what is site_id ?

2.how to find site_id?

Documentation about 360 images data is available at https://docs.cognite.com/cdf/3d/guides/360images_upload/, you will find required details related to site_id & more about 360 image data


1.what is site_id ?

2.how to find site_id?


please share sample code.

Documentation covering 360 images can be found here: https://cognitedata.github.io/reveal-docs/docs/examples/image360


please share sample code.


My version is  "@cognite/reveal": "^4.0.0",

Ok, please update the dependency (as yarn.lock / npm.lock may still have 4.0.0 set).


My version is  "@cognite/reveal": "^4.0.0",


I add await but again error comming.



Which version of Reveal are you using? Image360Collection.on(...) was recently introduced in Reveal 4.1.0.


It return empty object.

I have 3d Model

I try to achieve add circle then click rotate camera.

 


I add await but again error comming.

Can you confirm if 360 images are loaded?


I add await but again error comming.


Hey, seems to be a small bug in our documentation. You need to await the viewer.add360ImageSet(...) method as it returns a promise.


https://cognitedata.github.io/reveal-docs/docs/examples/image360

 

how to apply 360ImageSet?

 


https://cognitedata.github.io/reveal-docs/docs/examples/click-reactions-cad

 

How to enable and disable mouse click event?

 

The documentation page you referred https://cognitedata.github.io/reveal-docs/docs/examples/click-reactions-cad/ shows how to enable mouse click event “viewer.on(‘click’, callbackFn)”, to disable, unsubscribe the event using “viewer.off(‘click’, callbackFn)”


https://cognitedata.github.io/reveal-docs/docs/examples/click-reactions-cad

 

How to enable and disable mouse click event?

 


thank you so mush, its working


To focus at a clicked object in Reveal, you can do

  1. Get “Point intersection with the object” using Cognite3DViewer.getIntersectionFromPixel(offsetX, offsetY).
  2. Create a bounding box around intersection point like

    const boundingBox = new THREE.Box3();
    boundingBox.setFromCenterAndSize(intersection.point, new THREE.Vector3(1, 1, 1));
  3.  Use this bounding box in Cognite3DViewer.fitCameraToBoundingBox()
    viewer.fitCameraToBoundingBox(boundingBox, 250);

     

Note that rather than using bounding box directly from the CDF API, it’s recommended to use https://cognitedata.github.io/reveal-docs/docs/api/classes/cognite_reveal.CogniteCadModel#getboundingboxbynodeid to get bounding box for a given node as this accounts for any transformation active on the model.


To focus at a clicked object in Reveal, you can do

  1. Get “Point intersection with the object” using Cognite3DViewer.getIntersectionFromPixel(offsetX, offsetY).
  2. Create a bounding box around intersection point like

    const boundingBox = new THREE.Box3();
    boundingBox.setFromCenterAndSize(intersection.point, new THREE.Vector3(1, 1, 1));
  3.  Use this bounding box in Cognite3DViewer.fitCameraToBoundingBox()
    viewer.fitCameraToBoundingBox(boundingBox, 250);

     


Reply