如何使Autodesk Viewer LayerManager正确恢复RestoreState

时间:2019-02-27 19:49:36

标签: autodesk-forge autodesk-viewer autodesk forge

我在Autodesk Viewer LayerManager扩展中遇到了一个错误,该错误破坏了restoreState功能。我正在使用getState保存多层DWG文件的状态,并使用restoreState重新应用该状态。恢复状态时,即使我保存状态时不是全部,大多数或所有图层也被隐藏。

看来这是状态保存和解释方式的问题。我进入状态JSON,并以这种形式找到了可见层(state.objectSet[0].isolated)的列表:

["0","1","2","3","4","5"]

经过一些实验,我发现LayerManager期望的是图层的整数索引或图层的字符串名称。像这样:

[0,1,2,3,4,5]

["layer0","layer1","layer2","layer3","layer4","layer5"]

(假设这些是每一层的名称)

因此,当前的实现会中断,因为无论实际的层名称是什么,它都会查找名称为“ 0”,“ 1”,“ 2”等的层。

我想知道是否有办法解决或解决此问题。临时解决方案是解析状态JSON,并将层数转换为整数,但这有点麻烦。

1 个答案:

答案 0 :(得分:3)

这是一个已知问题,我们的工程部门正在对此进行调查。可以随时关注我们的Forge Blog,并留意发行说明,以随时了解修复情况。

与此同时,作为快速解决方法,您可以在加载所有图形后以编程方式显示所有图层:

viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, ()=>viewer.showAll())