在 Autodesk 查看器中突出显示节点数组
Highlight an array of nodes in Autodesk Viewer
问题:
我有一个节点数组,我想在操作发生时突出显示这些节点。
我尝试的解决方案
我试过使用模型浏览器中的代码,但它似乎一次只接受一个 dbId。我试图遍历我的数组并调用它,但完成后突出显示不起作用。
for (var i = 0; i < dbIdsArray.length; i++) {
viewerApp.getCurrentViewer().impl.rolloverObjectNode(dbIdsArray[i]);
}
任何关于如何正确实施的建议都会很有帮助。
谢谢
如果您想突出显示几个 dbid,根据您的要求,有一些不同的方法。
也许您可以使用 API Viewer3D.isolate() 来突出显示
通过隔离它们来选择对象,您只需输入 dbId 数组作为
关注,您还可以将所选项目缩放到查看器 window
使用 API Viewer3D.fitToView() 来关注它们:
viewer.isolate(dbIdArray);
viewer.fitToView(dbIdArray);
如果要用不同的颜色高亮选中的对象,
也许你可以尝试新的 API Viewer3D.setThemingColor(),这是
简单的代码示例。请记住,您需要使用清除颜色
Viewer3D.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 = 函数(模型、dbId、值、simpleHighlight)
问题:
我有一个节点数组,我想在操作发生时突出显示这些节点。
我尝试的解决方案
我试过使用模型浏览器中的代码,但它似乎一次只接受一个 dbId。我试图遍历我的数组并调用它,但完成后突出显示不起作用。
for (var i = 0; i < dbIdsArray.length; i++) {
viewerApp.getCurrentViewer().impl.rolloverObjectNode(dbIdsArray[i]);
}
任何关于如何正确实施的建议都会很有帮助。
谢谢
如果您想突出显示几个 dbid,根据您的要求,有一些不同的方法。
也许您可以使用 API Viewer3D.isolate() 来突出显示 通过隔离它们来选择对象,您只需输入 dbId 数组作为 关注,您还可以将所选项目缩放到查看器 window 使用 API Viewer3D.fitToView() 来关注它们:
viewer.isolate(dbIdArray); viewer.fitToView(dbIdArray);
如果要用不同的颜色高亮选中的对象, 也许你可以尝试新的 API Viewer3D.setThemingColor(),这是 简单的代码示例。请记住,您需要使用清除颜色 Viewer3D.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 = 函数(模型、dbId、值、simpleHighlight)