Autodesk forge 在多模式进近中选择/隔离

Autodesk forge 在多模式进近中选择/隔离,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,在API参考中,描述了在查看器中仅加载一个模型的情况下选择/隔离对象的方法: - select(dbids,selectionType) - isolate(node)/isolateById(dbids) // that is the difference? 我知道为多模式选择模拟: viewer.impl.selector.setSelection([objectIds], model); 问题是: 是否存在多模式隔离模拟? 如何从不同的模型中同时选择/隔离两个对象? 对于隔离,可以从V

在API参考中,描述了在查看器中仅加载一个模型的情况下选择/隔离对象的方法:

- select(dbids,selectionType)
- isolate(node)/isolateById(dbids) // that is the difference?
我知道为多模式选择模拟:

viewer.impl.selector.setSelection([objectIds], model);
问题是:

是否存在多模式隔离模拟? 如何从不同的模型中同时选择/隔离两个对象? 对于隔离,可以从Viewer3D.js中执行如下操作:

对于select,您需要将相应的模型和DBID传递给viewer.impl.selector.setSelection[dbIds],model;并为每个集合调用setSelection,如下所示。它不能立即存档

var selSet = [
    {
      selection: [1234, 5621],
      model: model1
    },
    {
      selection: [12, 758],
      model: model2
    },
];

selSet.forEach(funciton(sel) {
    viewer.impl.selector.setSelection(sel.selection, sel.model);
});

在最新版本的API中,viewer.impl.visibilityManager返回一个multiplevisibilitymanager,因此您可以将模型作为第二个参数传递:

MultiModelVisibilityManager.prototype.isolate = function (node, model)
查看viewer3D.js L17825以查看该对象上可用的方法

据我所知,在一次调用中无法从不同的模型中选择两个对象,您只需为通过各自ID的每个模型发出一个select调用。我看这没什么问题


希望有帮助。

此代码不起作用,因为在不等于给定模型Viewer3D.js-18580行的模型中,选择被清除。要获得多模型选择,我必须直接使用model.selector.setSelectionId并手动触发更改事件
MultiModelVisibilityManager.prototype.isolate = function (node, model)