突出显示Autodesk Viewer中的一系列节点



问题:

我有一系列节点,我想在动作发生时要突出显示。

我尝试的解决方案

我尝试使用模型浏览器中的代码,但似乎一次只接受一个dbid。我试图迭代我的数组并称其为称,但是完成后,突出显示不起作用。

for (var i = 0; i < dbIdsArray.length; i++) {
    viewerApp.getCurrentViewer().impl.rolloverObjectNode(dbIdsArray[i]);
}

有关如何正确实施此操作的任何建议将是一个很好的帮助。

谢谢

如果要突出显示几个dbids,则有一些不同的方式,具体取决于您的要求。

  • 也许您可以使用API Viewer3d.isaly()突出显示选择对象通过隔离它们,您可以将dbid数组输入此外,您也可以将所选项目缩放到查看器窗口使用API Viewer3D.Fittoview()专注于它们:

        viewer.isolate(dbIdArray);
        viewer.fitToView(dbIdArray);
    
  • 如果要突出显示具有不同颜色的所选对象,也许您可以尝试新的API Viewer3D.SetThemingColor(),这是简单的代码样本。请记住,您需要使用vieper3d.clearthemingcolors()。简单的代码样本应像:

我能够使用以下代码突出显示组件:

viewer.addEventListener(
      Autodesk.Viewing.SELECTION_CHANGED_EVENT,            
      function (e) {                
        if(e.dbIdArray.length) {                    
            var dbId = e.dbIdArray[0];                    
            viewer.impl.highlightObjectNode(
                viewer.model, dbId, true, false)                                            
            viewer.select([])
            viewer.impl.sceneUpdated(true)
        }           
    })

这是在使用函数:

viewer.impl.highlightobjectNode = function(模型,dbid,value,simplehighlight)

最新更新