View and Data API Tips: Hide elements in viewer completely
By Daniel Du
With View and Data API, you can hide some elements in viewer by calling “viewer.hide(dbIds)”, when the elements are hided, it actually make it transparent with a shallow mark to it, or make it ghosted. It is a nice feature as user probably need to know the existence of these elements even they are hided. But you may want to hide elements completely instead of ghosting some times. Here are a code snippet you can use if you want to hide some elements totally.
Autodesk.Viewing.Viewer3D.prototype.turnOff = function(dbIds){ var node ; if (Array.isArray(dbIds)) { for (var i = 0; i < dbIds.length; i++) { var id = dbIds[i]; node = viewer.model.getData(). instanceTree.dbIdToNode[id]; //hide the node completedly viewer.impl.visibilityManager.setNodeOff(node, true); } } else { node = viewer.model.getData(). instanceTree.dbIdToNode[dbIds]; //hide the node completedly viewer.impl.visibilityManager.setNodeOff(node, true); } }; Autodesk.Viewing.Viewer3D.prototype.turnOn = function(dbIds) { var node ; if (Array.isArray(dbIds)) { for (var i = 0; i < dbIds.length; i++) { var id = dbIds[i]; node = viewer.model.getData(). instanceTree.dbIdToNode[id]; //show the node viewer.impl.visibilityManager.setNodeOff(node, false); } } else { node = viewer.model.getData(). instanceTree.dbIdToNode[dbIds]; //show the node viewer.impl.visibilityManager.setNodeOff(node, false); } };
The usage is very simple, just call “viewer.turnOff(arrayOfDbIds)” or “viewer.turnOf(arrayOfDbIds)”. Hope it helps.