我正在尝试在forge-viewer中隐藏完整的模型,为此,我按如下方式调用伪造可见性API:
viewer.impl.visibilityManager.setNodeOff(viewer.model.getModelId(),true)
其中查看者是GUIViewer3D
的对象。
但这并不是隐藏完整的模型,模型中的某些组件仍然可见。
我认为这是forge-viewer中的错误,因为如果我将模型的根节点传递给setNodeOff()
API,则它必须隐藏整个模型。我确定查看器会话中只能加载一种模型。
Refer this image表示在调用viewer.impl.visibilityManager.setNodeOff(viewer.model.getModelId(),true)
答案 0 :(得分:0)
getModelId()
返回模型ID ,可见性API期望节点ID 。为了隐藏整个模型,请考虑以下因素:
viewer.hide(model.getRootId());
答案 1 :(得分:0)
你能帮我个忙吗...
在转换.RVT文件时,是否可以尝试将标题'x-ads-force':'true'添加到POST作业请求中?
这是有关API请求的文档... https://forge.autodesk.com/en/docs/model-derivative/v2/reference/http/job-POST/#headers
然后,像以前一样,检索URN并将其提供给Forge Viewer,如下例所示: https://forge.autodesk.com/en/docs/model-derivative/v2/reference/http/urn-manifest-GET/#example
。
所以...发生了什么事?
将RVT转换为SVF(对于Forge Viewer)时,它会生成随机的DBId集。
调用GetProperties API时,它使用缓存的SVF提取DBId并为您提供结果。
早在八月,就更新了GetProperty API引擎。与旧的转换后的SVF相比,它产生的DBId顺序不同。
由于已缓存旧的SVF,因此即使您提交新作业,它也会使用旧的SVF。
为避免使用旧的SVF,我们需要将RVT“强制转换”为SVF转换,以刷新该缓存,以便新的SVF可见并且Forge Viewer可以检索它。
一旦Forge Viewer可以看到新的SVF,它就应该与GetProperties API的DBId相匹配。
复杂吗?
让我知道是否可以解决问题。
答案 2 :(得分:0)
由于我的目标是完全隐藏查看器中的模型,因此我做到了:
viewer.clearSelection();
viewer.model.setAllVisibility(0);
viewer.impl.toggleGhosting(false);
viewer.impl.toggleGroundShadow(false);
这给了我所需的行为。现在,通过这种方法可以隐藏我无法隐藏的元素。
答案 3 :(得分:0)
要完全隐藏模型,您可以隔离一个空列表,该列表将显示整个模型的幻影,然后可以全局关闭幻影
viewer.isolate([]);
viewer.setGhosting(false);