2016-12-15 43 views
0

问题的数组:突出节点在Autodesk查看器

我有,我想,当一个动作发生,突出节点的数组。

我尝试的解决方案

我已经使用代码从模型浏览器尝试过,但似乎在同一时间只接受一个DBID。我试图迭代我的​​数组并调用它,但是当完成时突出显示不起作用。

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

任何有关如何正确实施这一建议将是一个很大的帮助。

感谢

回答

1

如果你想强调几点的dbid的,有根据您的要求,一些不同的方式。

  • 也许你可以使用API​​ Viewer3D.isolate()通过隔离他们突出 选择的对象,你可以只输入DBID阵列 后续,也可以放大所选项目到查看器窗口 使用API​​ Viewer3D.fitToView()专注于他们:

    viewer.isolate(dbIdArray); 
        viewer.fitToView(dbIdArray); 
    
  • 如果你想突出显示不同的颜色选择的对象, 也许你可以尝试新的API Viewer3D.setThemingColor(),这里是简单的 代码示例。请记住,您需要使用 Viewer3D.clearThemingColors()清除颜色。简单的代码示例应该是这样的:

+0

我认为使用isolate和fitToView的第一种方法应该符合我们的要求。谢谢。 –

0

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

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 =函数( model,dbId,value,simpleHighlight)