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

为何Autodesk APS Viewer中找不到Autodesk.Viewing.Collaboration?

关于Autodesk.Viewing.Collaboration扩展及APS Viewer实时协作方案

一、Autodesk.Viewing.Collaboration扩展的状态

Autodesk.Viewing.Collaboration并非面向第三方开发者的公开扩展,它是Autodesk内部产品(如Autodesk Construction Cloud、BIM 360)专属的协作组件,不对外部开发者开放注册和调用,因此你加载时会触发“Extension not found”错误。该扩展既未废弃,也不属于通用功能,仅限定在Autodesk自有协作产品体系内使用。

二、APS Viewer实现实时协作的替代方案

1. 基于Viewer原生API自定义协作逻辑

利用Viewer的公开API结合实时通信工具,自行实现核心协作功能:

  • 视图同步:
    • 监听Viewer的cameraChange事件,触发时获取当前相机参数(viewer.navigation.getPosition()、viewer.navigation.getTarget()、viewer.getState()等)。
    • 通过WebSocket或Socket.io等工具将参数发送给协作房间内的其他用户。
    • 对方收到参数后,调用viewer.navigation.setView()或viewer.restoreState()同步视图。
  • 标记同步:
    • 使用官方公开的Autodesk.Viewing.MarkupsCore扩展创建标记。
    • 标记创建/修改后,调用markupsCore.exportMarkups()导出标记JSON数据,通过实时通信同步给其他用户。
    • 协作方加载MarkupsCore扩展后,调用markupsCore.importMarkups()导入数据,实现标记同步显示。
  • 问题追踪:
    • 自行搭建后端服务,存储问题关联信息(模型ID、视图快照、标记数据、问题描述、状态等)。
    • 前端通过API拉取/更新问题数据,结合Viewer展示对应模型视图和标记。

2. 集成Autodesk Construction Cloud (ACC)协作能力

若项目基于ACC平台,可直接复用其原生协作能力:

  • 通过ACC API获取项目内的模型、标记、问题数据,在Viewer中加载ACC托管的模型。
  • 结合ACC的UI组件(如问题追踪面板),直接使用平台内置的协作、标记同步功能,无需从零开发。

3. 借助第三方实时通信服务快速搭建协作层

使用成熟的实时消息框架简化协作逻辑开发:

  • 采用Socket.io、Pusher等服务处理用户间的协作消息广播(视图参数、标记数据、问题更新)。
  • 结合Viewer API将消息转化为对应交互动作,实现同步效果。

代码修正提示

你的代码中使用了Autodesk.Viewing.Private.GuiViewer3D,这是Viewer的内部私有类,建议替换为公开的Autodesk.Viewing.GuiViewer3D,避免版本兼容性问题:

const viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('viewer'));

Autodesk.Viewing.Initializer(options, function () {
    viewer.start();
    // 加载公开可用的扩展示例
    viewer.loadExtension('Autodesk.Viewing.MarkupsCore')
        .then(ext => {
            // 扩展加载后的逻辑处理
        })
        .catch(err => console.error('扩展加载失败:', err));
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:46:08