如何将 Autodesk Viewer LayerManager 正确设置为 RestoreState
How to get Autodesk Viewer LayerManager to RestoreState properly
我在 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 并将层数转换为整数,但这有点麻烦。
这是一个已知问题,我们的工程部门目前正在调查该问题。可以继续关注我们的 Forge Blog 并查看发行说明以密切关注修复。
同时,作为快速解决方法,您可以在加载所有图形后以编程方式显示所有图层:
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, ()=>viewer.showAll())
我在 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 并将层数转换为整数,但这有点麻烦。
这是一个已知问题,我们的工程部门目前正在调查该问题。可以继续关注我们的 Forge Blog 并查看发行说明以密切关注修复。
同时,作为快速解决方法,您可以在加载所有图形后以编程方式显示所有图层:
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, ()=>viewer.showAll())