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

如何将Navisworks当前视图红线导出至Forge(无需保存视点)

未保存视点的红线仅临时存储在Navisworks进程内存中,并未写入XML文件,因此常规基于保存视点的XML提取方法不适用,可通过以下路径实现:

一、通过Navisworks API提取临时红线数据

借助Navisworks的.NET/COM API直接读取当前视图中的临时红线:

  • 获取当前文档对象Autodesk.Navisworks.Api.Document
  • 遍历RedlineManager中的未持久化RedlineItem集合,或通过Document.CurrentSelection筛选红线对象
  • 提取关键信息:每条红线的几何坐标(起点、顶点、终点)、样式属性(颜色、线宽、类型),以及当前视图的相机参数(位置、视角、缩放比例)

二、转换为Forge Viewer兼容格式

将提取的红线数据转换为Forge可识别的形式并渲染:

  • 坐标对齐:确保Navisworks模型坐标系与Forge加载模型的坐标系完全匹配,避免红线偏移
  • 直接创建标记:利用Forge Viewer的MarkupsCore扩展生成红线标记,示例代码如下:
    const markupsExt = viewer.getExtension('Autodesk.Viewing.MarkupsCore');
    markupsExt.enterEditMode();
    // 创建自由手绘红线
    const redline = new Autodesk.Viewing.Extensions.Markups.Core.EditModeFreehand(markupsExt);
    redline.setColor(new THREE.Color(0xff0000));
    redline.setLineWidth(3);
    // 传入从Navisworks提取的坐标点数组
    redline.addPoints(navisworksRedlinePoints);
    markupsExt.addMarkup(redline);
    markupsExt.leaveEditMode();
    
  • 持久化存储:若需保留红线,可将数据序列化为JSON格式,通过Forge数据管理API上传至云端,后续加载时解析渲染

三、关键注意事项

  • 运行环境限制:Navisworks API需在Navisworks运行环境中执行(如编写自定义插件),无法通过外部工具直接读取内存临时数据
  • 复杂红线适配:针对多边形、标注类红线,需对应转换为Forge Markups的EditModePolygon、EditModeText等类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 20:54:50