如何使用Autodesk Forge Viewer的内置测量工具保存和加载测量?

时间:2019-02-22 06:53:18

标签: autodesk-forge

如何使用Autodesk Forge Viewer的内置测量工具(扩展名为Autodesk.measure)保存和加载测量?

似乎没有显式的API可以使用默认扩展名来完成此操作?

enter image description here

2 个答案:

答案 0 :(得分:0)

测量工具有一个非正式的扩展版本,它支持JSONify和重新加载测量数据:https://github.com/wallabyway/area-markup/blob/master/docs/Measure/MeasureTool.js

let measurementData = measureTool.getJson();
...
measureTool.loadJson(measurementData);

此功能的官方支持仍在审核中,并将在适当时候宣布。

注意:尽管此扩展程序不是完全由第三方(由ADN团队构建),但仍是非官方的,因此Autodesk尚未正式对其进行支持,并且可能会发生更改,并且可能会与Viewer的更高版本(不带预告)不兼容。

答案 1 :(得分:0)

我目前有一个要求朝这个方向做一些事情,但是显然,在版本7中,查看器项目正在使用ES6模块,这使得无法像在this great project中那样覆盖MeasureTool使用版本2构建。

忙了整整一个早晨,试图破坏ES6模块系统以覆盖MeasurementExtension中的某些内容以获取数据后,当我在调试会话期间发现40多个尚未解决的问题时,我感到非常惊讶-扩展对象中记录的方法。只需将它们登录到控制台:

const extension = viewer.getExtension('Autodesk.Measure');
console.log(extension.__proto__);

您将对以下方法感兴趣:

extension.getMeasurementList() // => grab the list of selected measurements
extension.setMeasurementList() // => set the list of selected measurements

这里唯一的陷阱是必须先激活扩展才能使用它:

extension.setActive(true);
extension.setMeasurementList()
extension.setActive(false);

您还可以听一些可用的事件。您可以列出它们以进行检出:

console.log(Autodesk.Viewing.MeasureCommon.Events)

我希望这可以帮助任何需要它的人。