2016-12-15 72 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)