You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Forge Viewer两个版本差异及Markups编辑模式缺失问题咨询

Answers to Your Forge Viewer Questions

咱们逐个来解答你的问题:

1. 区别:modelderivative/v2/viewers vs viewingservice/v1/viewers

  • 服务归属与生命周期:modelderivative/v2/viewers是Autodesk Forge当前主推的Model Derivative服务配套Viewer,是后续功能迭代、bug修复的核心版本;而viewingservice/v1/viewers属于旧版Viewing Service的Viewer,Autodesk已经停止对它的新功能开发,仅做必要的维护,属于逐步淘汰的版本。
  • API与扩展架构:v2版本对Viewer的API结构、扩展体系做了重构优化,更贴合Model Derivative服务的整体生态,部分旧版v1的API、扩展实现逻辑有兼容性调整。
  • 功能覆盖:v2版本整合了更多新功能(比如更强大的模型处理、扩展能力),而v1版本仅保留基础的模型查看功能,无法使用后续新增的特性。

2. 为什么v2版本中EditModePolyline和EditModePolycloud不可用?

这是因为v2版本的Markups Core扩展对编辑模式的实现做了重构:
在旧版v1的Viewing Service Viewer中,这些编辑模式是直接暴露为全局可实例化的构造函数;但在v2的Model Derivative Viewer里,这些编辑模式被封装到了扩展内部,不再对外直接暴露构造函数。取而代之的是,你需要通过字符串标识来调用changeEditMode方法切换编辑模式,而不是手动实例化构造器,这就是你遇到TypeError的原因。

3. 能否在Model Derivative服务中使用Viewing Service的构造器?

不行的。两个版本的Viewer属于完全不同的服务架构,内部的命名空间、扩展依赖、状态管理逻辑都不兼容,强行混用会导致命名冲突、内部状态异常,甚至直接报错。建议直接采用v2版本Viewer对应的API方式实现需求。

修正后的代码示例

针对你的代码,调整为v2版本的正确用法:

<script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/viewer3D.min.js?v=v6.0"></script>
viewer.loadExtension('Autodesk.Viewing.MarkupsCore').then(function(markupsExt) {
  markup = markupsExt;
  markup.enterEditMode();
  // 切换到折线编辑模式
  markup.changeEditMode('polyline');
  // 如果需要切换到点云编辑模式,使用下面的代码
  // markup.changeEditMode('polycloud');
});

内容的提问来源于stack exchange,提问作者ajitspyd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:28:22