70 KiB
基于Navisworks 2026 API开发物流仿真插件和交互式导航控件的技术方案
执行摘要
本技术方案旨在为Navisworks 2026开发一款全面的插件和交互式导航控件,以满足大型建筑和制造项目中对高级物流规划和验证日益增长的需求。该解决方案将实现通道选择、路径规划、物流属性设置、碰撞检测和动画仿真等核心功能。本方案特别关注大型模型的性能优化和实用性,支持多种文件格式的导入导出,并确保与达索系统DELMIA平台的无缝集成。通过在BIM环境中实现先进的物流仿真,该方案旨在弥合设计协调与高级制造仿真之间的鸿沟,从而优化施工和运营工作流程。它将静态BIM模型转化为动态、可操作的仿真环境,支持资产的整个生命周期管理,从而实现主动问题解决、减少昂贵返工并提高从概念到运营的整体项目效率。
1. 引言
1.1. 项目概述与目标
在当今复杂的大型建筑和制造项目中,对高级物流规划和验证的需求日益迫切。传统的BIM工具往往缺乏满足这些特定需求的能力,特别是在处理复杂的场地布局、精密的物料流以及最大程度减少现场冲突和延误方面。本项目旨在通过开发一款强大的Navisworks 2026插件和交互式导航控件来应对这些挑战,该插件专门用于解决物流仿真和验证需求。
该插件的核心功能将包括:
- 通道选择: 允许用户在模型中定义和选择特定的路径或区域。
- 智能路径规划: 促进设备和物料物流路线的创建、优化和修改。
- 动态物流属性管理: 将与物流相关的自定义数据(例如,物料类型、处理要求、交付计划)附加并管理到模型元素中。
- 自动化碰撞检测: 执行针对物流场景量身定制的高级碰撞测试,包括动态对象间碰撞和对象与静态元素碰撞。
- 逼真动画仿真: 在三维模型中可视化物流流和运动,以便进行视觉验证和利益相关者沟通。
除了这些核心功能之外,本方案还将重点关注关键的非功能性要求:处理超大型BIM模型时的性能可扩展性、支持多样化项目数据源的广泛文件格式兼容性,以及与达索系统DELMIA平台的无缝集成,以利用其先进的制造和机器人仿真能力。
将Navisworks(一种BIM协调工具)与DELMIA(一种数字制造和仿真平台)集成,体现了行业向更深层次数字连续性的战略性转变。这不仅仅是技术数据交换,更是为了建立一个贯穿BIM数据从设计和施工阶段到运营规划、制造乃至设施管理的连续数字主线。该插件在此过程中扮演着至关重要的桥梁角色,将静态BIM模型转化为动态、可操作的仿真环境,支持整个资产生命周期管理。这种集成促进了主动问题解决,减少了昂贵的返工,并提高了从概念到运营的整体项目效率。这种连接预示着对工业4.0原则的战略性推动,其中数据在以前孤立的领域(设计、施工、制造、运营)之间无缝流动。因此,该插件的作用从单纯的功能添加提升为跨领域数据流和分析的关键推动者,使得BIM数据能够被用于高级运营规划。这意味着解决方案不仅要解决技术集成挑战,还要考虑BIM元素与制造/物流实体之间的数据语义映射和上下文转换。这要求数据模型具有高度灵活性,并且可能需要可配置的映射规则,以确保数据在不同平台间的一致性和实用性,从而实现真正的集成生命周期管理方法。
1.2. Navisworks 2026 API概况及关键增强功能
本节将深入探讨Navisworks 2026 API,阐明其能力、结构以及与本插件开发相关的最新更新。
Navisworks提供了一个强大的.NET编程接口(API),允许开发人员编写自定义插件、自动化任务并将Navisworks控件嵌入到其他应用程序中 1。软件开发工具包(SDK)通常安装在
\api\文件夹下,并包含开发者指南和参考指南等重要文档 1。
Navisworks 2026在继承先前版本(如2024、2025)的基础上,引入了多项强大的增强功能 2。与本项目开发特别相关的API变更和改进包括:
- 属性集(Property Sets): 这是对先前“常用属性(Property Favourites)”的重大改进,属性集现在允许用户同时打开最多四个属性面板,每个面板都可以配置不同的属性集。这一变化简化了自定义属性集的过滤和创建,使得管理和显示特定数据更加直观 3。这直接影响了“物流属性管理”的需求。
- 碰撞检测器(Clash Detective)改进: 碰撞检测器获得了实质性增强,包括改进的过滤和排序功能、新的“设置默认受让人(Set Default Assignee)”选项、“上次运行(Last Run)”列,以及在报告中包含“碰撞结果优先级(Clash result priority)”的能力。“测试类型(Test Type)”现在是一个独立的列,解放了“描述(Description)”列以供用户编辑备注。新按钮允许删除空碰撞组,并且“碰撞计数(Clash Count)”列显示组内的碰撞数量。分组功能现在直接嵌入到碰撞检测器表单中。此外,通过Navisworks协调问题插件创建问题时,碰撞和问题状态会同步 3。这些改进对于自动化碰撞检测和报告非常有利。
- 外观分析器(Appearance Profiler)重新设计: 外观分析器经过重新设计,新增了配置文件区域、用户友好的图标,以及更易于使用的“按属性(By Property)”选项卡,其中包含预填充的下拉列表。配置文件现在保存为XML文件,取代了旧的DAT文件格式,并支持导入现有DAT文件,这些文件将被转换为XML格式 3。
- 测量面板(Measure Panel)更新: 测量工具窗口已重新设计,采用更简单、更现代的用户界面,现在包含“保存测量(Save Measurement)”选项,允许用户将当前测量保存到“已保存测量(Saved Measurements)”对话框中 2。
- 枢轴点锁定(Pivot Point Lock): 状态栏中新增了一个按钮,在使用导航工具时可以锁定和解锁枢轴点,从而实现更精确的导航 2。
- NWD导出选项: 新增了NWD导出选项,例如排除隐藏项目 2。
- 用户界面/可用性改进: Navisworks中的许多对话框、表单和图标都得到了改进,包括改进的窗口停靠行为和可用性,以及改进的颜色选择器 2。主页上的“最近(Recent)”选项卡现在可以显示置顶文件,并且云图标指示非本地存储的文件 3。
- 选择树(Selection Tree)增强: 解决了选择树层次结构与SmartPlant 3D不匹配的问题,VUE文件属性在组和几何级别上正确显示,并且项目不再错误地溢出选择树底部 3。
- 插件管理器(Plugin Manager): 主页上的“应用程序管理器(App Manager)”已被“插件管理器”取代,提供了启用和禁用插件、查找更新和安装位置的便捷访问 5。
- 系统变量支持: 在全局选项中支持系统变量,例如%temp%和%username%,用于项目目录、站点目录、自动保存位置和临时文件位置 5。
- Revit集成修复: 解决了从Revit文件(RVT或NWC)打开时嵌套族显示在正确父族下、共享参数正确显示以及NWC文件中元素在Navisworks中列在错误类别下的问题 3。
- .NET Framework兼容性: Navisworks 2024(以及隐含的2026)是基于.NET Framework 4.8构建的,这意味着使用.NET API的应用程序需要使用Visual Studio 2022及以上版本进行编译 10。在可能的情况下,鼓励从COM API迁移到.NET API 1。
- ApplicationControl.Initialize()的解决方法: 对于.NET控件应用程序中Autodesk.Navisworks.Api.Controls.ApplicationControl.Initialize()可能抛出异常的问题,目前的解决方法是在调用该方法之前将Navisworks的安装目录添加到系统PATH环境变量中 10。
- NwCreate API: 该API用于创建Navisworks模型(NWC文件),支持几何体、属性、文本、视点、选择集、材质、纹理和灯光的创建。它提供了C和C++ API,支持从基本面片三角形网格到B-rep实体的几何体创建,包括布尔运算(并集、减法、交集)、挤压和旋转等基本建模操作 1。
- 事务(Transaction)类:.NET API中的事务机制允许捆绑撤销信息和内部通知,这在某些情况下可以显著提高性能,因为Navisworks内部和GUI的许多部分会推迟更新 11。
- 网格和标高API: Navisworks API允许控制网格和标高的可见性、颜色、模式和特定显示级别,这对于探索场景和提供空间上下文非常有用 10。
Navisworks内部数据格式的演变,例如外观分析器从DAT文件到XML文件的转变 3,以及对属性集功能的强调 3,表明了Navisworks正朝着更开放、结构化和可扩展的数据格式发展。这不仅仅是用户界面的改变,更是基础性的转变,它促进了程序化访问、数据交换和定制化。这种演进与开放BIM和更好数据互操作性的更广泛行业趋势相契合,减少了供应商锁定,并支持更复杂的、数据驱动的工作流程。API的增强反映了Autodesk致力于支持复杂的自定义解决方案和与其他平台(如DELMIA)进行更深层次集成的决心,这对于本次项目至关重要。
2. 插件架构与用户界面设计
2.1. 整体插件结构 (C#.NET)
本Navisworks插件将采用C#语言开发,并基于.NET Framework 4.8,这是Navisworks 2024及更高版本所支持的环境,需要使用Visual Studio 2022或更高版本进行编译 10。插件的核心将围绕Navisworks API提供的各种插件类型构建,以实现所需的功能和用户交互。
主要的插件类型包括:
- CommandHandlerPlugin: 这种插件类型在Navisworks 2012中引入,允许开发人员创建具有多个命令的插件,并将它们组织到主产品Ribbon用户界面中的自定义选项卡中 14。它比基本的
AddInPlugin提供了更复杂的控制。通过使用PluginAttribute、StringsAttribute、RibbonLayoutAttribute、RibbonTabAttribute和CommandAttribute等属性,可以定义插件的基本属性、本地化文本、Ribbon布局以及命令的行为 15。例如,
RibbonLayoutAttribute指向一个XAML文件,该文件定义了自定义Ribbon的布局 14。
CommandAttribute定义了将在应用程序中执行操作的命令,包括ID、显示名称、图标、工具提示和快捷方式等属性 14。 - AddInPlugin: 这是最基本的插件类型,用于向Navisworks添加额外的功能 1。它通常用于实现简单的自动化任务或非UI相关的逻辑。
- DockPanePlugin: 这种插件类型允许开发人员在Navisworks GUI系统中添加自定义的可停靠面板 19。这对于创建交互式导航控件的用户界面至关重要。在
CreateControlPane方法中,ElementHost控件(一个Windows Forms控件)可用于托管WPF(Windows Presentation Foundation)元素,从而实现丰富的用户界面 19。
DestroyControlPane方法则负责释放资源 19。
开发过程中,Navisworks SDK中提供的开发者指南(PDF格式)和参考指南(CHM文件)将是不可或缺的资源,它们详细介绍了.NET API的类和工具,并指导如何编写插件和应用程序 1。此外,由于Navisworks 2024 API中存在
Autodesk.Navisworks.Api.Controls.ApplicationControl.Initialize()可能抛出异常的问题,需要采用将Navisworks安装目录添加到PATH环境变量的解决方法 10。
2.2. 交互式导航控件设计
交互式导航控件将是插件的核心组成部分,提供直观的用户体验,以定义、规划和可视化物流路径。
- 自定义UI元素: 为了提供丰富且响应迅速的用户体验,控件的用户界面将使用WPF(Windows Presentation Foundation)技术构建 19。WPF允许创建复杂且美观的界面,同时与.NET API无缝集成。
- 视口交互:
- 鼠标/键盘输入: 通过实现InputPlugin,插件将能够处理鼠标点击、移动和键盘事件 20。这对于用户在模型中直接选择对象、定义路径点或触发特定操作至关重要。
- 射线投射(Ray Casting): 为了实现精确的对象或模型表面点的选择,将利用View.PickItemFromPoint(x,y)方法 20。该方法接收屏幕坐标,并返回一个
PickItemResult对象,其中包含选定对象(ModelItem)及其在世界坐标系(WCS)中的精确点信息 20。 - 绘制临时图形: Graphics类将用于在视口中绘制临时图形,例如物流路径的线条或多段线,以及选定通道的边界框 12。
OverlayRenderModel和OverlayRenderWindow方法可用于在模型空间或窗口空间中渲染这些叠加图形 12。这将为用户提供实时的视觉反馈,例如在路径规划过程中动态显示路径。 - 相机操作: Navisworks API提供了对视点(Viewpoint)和相机(Camera)的全面控制,允许程序化地移动、旋转和调整相机位置 11。这将用于在路径规划和动画仿真过程中,自动调整视口以跟随物流移动或聚焦于关键区域。
- 通道/路径选择界面:
- 自定义选择树: Navisworks API支持创建自定义选择树,可以通过实现InwSelectionTreePlugin或InwOpUserSelectionTreePlugin来实现 11。这将允许插件以逻辑和用户友好的方式组织和显示物流相关的模型元素(例如,通道、区域、设备)。
- 程序化选择: Document.CurrentSelection类提供了对当前选择的访问和操作方法,包括清除、添加或替换选定项目 27。
- 搜索集(Search Sets): Search类是Navisworks API中用于查找模型项的强大工具,相当于GUI中的“查找(Find)”功能 28。它将用于通过自定义属性、类别或其他条件来过滤和选择与物流相关的元素,例如快速识别所有定义为“物流通道”的构件 5。
2.3. 大型模型性能考量
处理大型BIM模型时,性能是至关重要的考量因素。该插件将采用多项策略来确保其在大型模型环境中的响应性和实用性。
- 优化数据访问:
- 高效遍历选择树: 标准的Windows树控件在处理非常大的树时效率低下 11。对于大型模型,递归遍历整个层次结构会非常慢。建议采用类似
AppInfo示例的方法,即只在节点展开时才加载其子节点,从而限制展开速度对性能的影响 11。 - 批量操作: 对于模型修改,应利用Navisworks.NET API的事务(Transaction)机制 11。事务能够捆绑多个操作,从而提高性能并确保数据一致性。对于COM API,可以使用
state.BeginEdit和state.EndEdit来捆绑撤销信息和内部通知,这可以显著加快操作速度 11。对于.NET API,推荐使用
using (Transaction transaction = new Transaction(document))块来确保事务的正确管理和回滚 31。 - 利用内部数据结构: 在访问属性时,应高效利用Navisworks内部的属性结构,通过显示名称、内部名称或组合名称来查找特定属性 29。
- 高效遍历选择树: 标准的Windows树控件在处理非常大的树时效率低下 11。对于大型模型,递归遍历整个层次结构会非常慢。建议采用类似
- 模型优化技术:
- 隐藏冗余几何碎片: 隐藏模型中不必要的几何碎片可以显著减少处理和渲染的负担,特别是那些数量巨大(例如1000个或更多)的碎片 34。
- 消除不必要的几何体: 隐藏或删除在VR或特定分析中不需要的元素,例如重复的钢筋、螺母、螺栓、透明元素(渲染成本高)、树木或家具等“锦上添花”的特征 34。
- 定义截面框: 通过启用截面工具并调整截面框,可以只隔离和处理模型中正在审查的特定区域,从而提高性能和加载速度 34。
- 使用选择集和搜索集: 利用Navisworks的选择集和搜索集来分组和管理这些需要隐藏或隔离的元素,使操作更加高效 34。
- 优化NWD导出: 在导出NWD文件时,可以配置选项以排除隐藏项目,从而生成更小、更优化的文件 2。
- 硬件和软件配置:
- 系统要求: 确保开发和运行环境满足Navisworks的最低系统要求。对于大型模型,建议使用配备64GB RAM的计算机 35。
- 显卡和驱动程序: 确保使用最强大的显卡,并定期更新显卡驱动程序,因为过时或损坏的驱动程序可能导致严重的性能问题 35。在某些情况下,关闭硬件加速可以作为诊断或临时解决性能问题的手段 35。
- Navisworks设置: 探索并调整Navisworks应用程序菜单>选项>显示中的各种设置,以优化显示变量 35。
- 网络环境: 如果文件从中央服务器位置访问,网络带宽可能成为性能瓶颈。尝试将文件复制到本地计算机进行操作,以评估网络影响 35。
- “加载时关闭NWC/NWD文件”选项: 启用此选项会增加加载时间,因为它会强制Navisworks在加载时完全加载整个文件并释放文件锁,而不是按需加载 35。
- 线程和异步操作:
- Navisworks API并非完全多线程就绪。大多数API调用应在主UI线程上执行 36。尽管可以从其他线程访问API,但结果可能不可预测且常常是致命的 36。
- 对于后台处理,建议利用Navisworks的Idling事件 36。这允许应用程序在Navisworks空闲时执行任务,而不会阻塞主UI线程。当工作线程完成任务时,它会向应用程序发出信号,以便在下一次
Idling事件或DocumentClosed等其他事件触发时进行处理 36。 - 在处理ApplicationControl.Initialize()时,需要注意将Navisworks安装目录添加到PATH环境变量的解决方法,以避免“外部组件抛出异常”的问题 10。
- 对于大型模型,业界对Navisworks API中缺乏直接的LOD(细节级别)或顶点简化API表示关注 37。这意味着开发人员需要通过上述模型优化技术(如隐藏不必要的几何体)来间接管理模型复杂性,而不是通过API进行几何体简化。
对大型模型性能的关注不仅仅是技术挑战,更是实际部署中至关重要的战略要求。所提出的技术,例如选择性加载、批量操作和几何体简化,反映了对如何有效管理计算资源的深刻理解。这不仅限于编码实践,还包括工作流程优化(例如,在创作工具中准备模型,选择性NWD导出)和硬件考量。这种整体方法对于确保插件在处理多千兆字节模型时仍能保持可用性和响应性至关重要,直接影响用户采纳和项目效率。
3. 核心功能实现细节
3.1. 通道选择与路径规划
物流仿真插件的核心功能之一是允许用户定义和规划物流通道和路径。
- 定义通道:
- 插件将允许用户通过在模型中选择几何体(例如,楼层、走廊、特定区域)来定义物流通道。这可以通过利用InputPlugin来捕获鼠标点击事件并识别用户选择的模型元素来实现 20。
- 选定的通道定义将作为自定义属性(用户数据)存储在相应的ModelItem实例上 7。这些自定义属性可以包含通道的名称、类型(例如,人行道、车辆通道)、容量限制等信息。Navisworks 2026的属性集功能将用于组织这些物流相关的自定义属性,使其易于管理和过滤 3。
- 为了检索和操作这些带有自定义属性的元素,将使用Search API,通过SearchCondition.HasCategoryByDisplayName或SearchCondition.HasPropertyByName等方法来过滤和查找具有特定物流属性的构件 28。
- 路径生成与优化:
- 路径规划将利用Navisworks中模型的几何数据。通过访问ModelItem.BoundingBox()可以获取元素的边界框信息,而Model.Transform则提供了模型的变换矩阵,这些都可用于计算路径的几何约束和可行性 10。
- 生成的路径将在Navisworks视口中通过Graphics类进行可视化,绘制为线条或多段线 12。这将为用户提供直观的路径预览。
- 对于复杂的路径查找和优化,如果Navisworks API本身不提供内置算法,可以考虑集成外部路径规划库。例如,可以基于模型几何体构建一个简化的图(节点和边),然后应用A*算法等来查找最优路径,同时考虑通道的宽度、高度限制和障碍物。
- 交互式路径编辑:
- 插件将允许用户在视口中直接拖动和修改路径节点,以进行路径的交互式编辑。这需要InputPlugin来捕获鼠标拖动事件,并结合Graphics类提供实时的视觉反馈,例如在拖动节点时动态更新路径的显示。
- 路径修改后,插件将动态更新底层存储的自定义属性或几何体数据,以确保路径定义的持久性。
3.2. 物流属性管理
有效的物流仿真离不开对模型元素的详细物流属性管理。
- 自定义属性创建与关联:
- 插件将能够程序化地向ModelItem实例添加、修改和删除自定义属性(用户数据) 7。这对于将物流特定信息(如物料类型、重量、尺寸、处理说明、交付日期、所需设备等)附加到模型构件至关重要。
- Navisworks 2026引入的“属性集(Property Sets)”功能将用于组织和显示这些物流相关的属性,使其在属性面板和选择检查器中易于过滤和访问 3。
- 数据持久性:
- 添加到模型项的自定义属性将随NWD文件一起保存,确保数据的持久性 29。
- 对于更大型或更复杂的物流数据集,可以考虑使用外部数据库进行存储,并通过GUID或其他唯一标识符将数据与Navisworks模型元素关联起来 29。Navisworks支持链接到外部数据库,这可以通过“数据工具(Data Tools)”功能实现,允许从外部数据库(如Excel文件)导入属性并将其显示为自定义选项卡 7。
3.3. 物流自动化碰撞检测
碰撞检测是物流规划中的关键环节,用于识别潜在的冲突和瓶颈。
- 碰撞测试配置:
- 插件将通过Document.Clash属性访问Navisworks的碰撞检测器功能 42。
- 可以程序化地创建和配置ClashTest实例 10。这将允许定义各种物流碰撞测试,例如:
- 物流路径与静态结构(墙壁、柱子、设备)之间的硬碰撞。
- 移动设备与临时安装(脚手架、物料堆)之间的软碰撞(基于容差)。
- 不同物流流线之间的交叉碰撞。
- 为碰撞测试定义选择集(ClashSelection)至关重要,例如将物流路径定义为A组,将可能与之碰撞的结构或设备定义为B组 42。
- 可以设置PrimitiveTypes(例如Triangles、Lines、Points)来指定在碰撞检测中考虑的几何图元类型,从而提高检测的准确性和相关性 10。
- Navisworks 2026碰撞检测器的新功能将得到充分利用,包括按属性分组碰撞、分配优先级级别以及编辑描述字段,以更好地管理和分类物流碰撞问题 3。
- 动态碰撞检测(基于动画):
- Navisworks的碰撞检测器可以与动画器(Animator)工具集成,实现基于时间的碰撞检查 46。这将允许插件在物流动画仿真过程中自动检查移动对象之间的干扰,或移动对象与静态元素沿物流路径的干扰。
- 插件可以自动化在动画的特定步骤运行碰撞测试,以捕获特定时间点的冲突 47。
- 报告与可视化:
- 插件将能够生成自定义碰撞报告,其中可以包含新引入的优先级列,以便更好地突出关键物流冲突 3。
- 碰撞结果将直接在Navisworks视口中可视化,例如通过高亮显示冲突对象或显示碰撞点。
- 碰撞数据可以导出为CSV格式,以便在外部工具(如Microsoft Power BI)中进行进一步分析和可视化,从而生成交互式报告,提高项目团队的沟通效率 13。
3.4. 逼真动画仿真
动画仿真是可视化物流流程和验证路径规划有效性的重要手段。
- 创建动画:
- 插件将利用Navisworks的动画器(Animator)工具来创建对象动画 47。
- 可以程序化地定义关键帧,以控制物流对象(如叉车、起重机、运输车辆)的移动、旋转和缩放 47。例如,可以设置门在观察者接近时自动打开的动画 47。
- SavedViewpointAnimation类可用于创建相机动画,使视点沿着定义的物流路径移动,提供“漫游”式的仿真体验 48。
- Scripter工具可以用于将动画与特定事件(如按键、碰撞)关联起来,实现更高级的交互式仿真 18。
- 基于路径的动画:
- 虽然Navisworks的Alias产品线中存在“设置运动路径(Set Motion Path)”功能 56,但Navisworks API在直接创建基于曲线或样条的动画方面可能存在限制 47。因此,插件可能需要手动生成沿预定义物流路径的关键帧。
- 这将涉及计算路径上的离散点,并利用Transform3D和Matrix3类来程序化地应用对象的平移和旋转变换,从而模拟沿着路径的运动 10。
- 仿真播放控制:
- 插件将提供对动画播放的程序化控制,包括开始、停止、暂停和调整播放速度 48。
- 可以将动画播放与外部物流计划或时间表同步,以实现更精确的4D物流仿真。
- 物流流可视化:
- 利用外观覆盖(Appearance Overrides)功能 59,可以根据物流属性(例如,物料类型、交付状态)对模型中的对象进行颜色编码,从而直观地显示物流状态。
- 在仿真过程中,可以在视口中实时显示物流对象的关键信息,例如当前位置、速度、预计到达时间等。
3.5. 导航地图输出
为了满足客户对导航地图和路径规划结果输出的需求,本插件将提供将当前视口内容导出为图片和视频的功能。
3.5.1 输出为图片格式
功能描述
允许用户将当前 Navisworks 视口中显示的导航地图、规划路径以及模型状态(包括高亮显示、隐藏/淡化等)保存为高质量的静态图片文件。
实现方式
利用 Navisworks COM API 提供的图像导出功能。
用户界面 (UI) 交互
在交互式导航控件的面板中,添加一个"导出图片"按钮。点击该按钮后,将弹出一个文件保存对话框,允许用户选择输出路径、文件名和图片格式(例如 PNG、JPEG)。
技术实现细节
1. 获取当前文档和 COM 状态
首先,需要获取 Navisworks 的当前活动文档,并通过 COM 互操作获取 InwOpState10 对象,这是访问许多底层导出功能的关键。
Document doc = Application.ActiveDocument;
ComApi.InwOpState10 oState = ComApiBridge.State;
2. 获取图像导出插件选项
Navisworks 内部通过名为 "lcodpimage" 的插件处理图像导出。我们可以通过 GetIOPluginOptions 方法获取其配置选项。
ComApi.InwOaPropertyVec options = oState.GetIOPluginOptions("lcodpimage");
3. 配置导出参数
通过遍历 options.Properties(),可以设置图像的格式、宽度和高度等参数。
设置图片格式
将 export.image.format 属性设置为所需的值。例如,"lcodpexpng" 用于 PNG 格式,"lcodpexjpeg" 用于 JPEG 格式。
foreach (ComApi.InwOaProperty opt in options.Properties())
{
if (opt.name == "export.image.format")
{
opt.value = "lcodpexpng"; // 或 "lcodpexjpeg"
}
}
设置分辨率
找到 export.image.width 和 export.image.height 属性,并将其值设置为用户指定的分辨率(例如,1920x1080)。
foreach (ComApi.InwOaProperty opt in options.Properties())
{
if (opt.name == "export.image.width")
{
opt.value = 1920;
}
if (opt.name == "export.image.height")
{
opt.value = 1080;
}
}
4. 执行导出操作
调用 DriveIOPlugin 方法,传入插件名称、输出文件路径和配置好的选项。
string outputPath = "C:\\Path\\To\\Your\\NavigationMap.png"; // 用户选择的路径
oState.DriveIOPlugin("lcodpimage", outputPath, options);
5. 错误处理与用户反馈
在导出过程中应加入 try-catch 块来捕获可能发生的异常,并向用户提供成功或失败的反馈。
3.5.2 输出为视频格式
功能描述
将物流组件沿规划路径的动画仿真过程录制为视频文件(例如 AVI 格式),以便在外部播放器中查看。
实现方式
由于 Navisworks.NET API 不直接提供录制视频的功能,我们将采用"逐帧图像序列导出 + 外部视频合成"的策略。
用户界面 (UI) 交互
在交互式导航控件的面板中,添加一个"导出视频"按钮。点击该按钮后,将弹出一个对话框,允许用户设置视频的输出路径、文件名、帧率、分辨率和视频编码器等参数。
技术实现细节
1. 动画生成与播放控制
创建动画
插件需要首先根据规划的物流路径,程序化地创建物流组件(例如待载转运车)和/或相机(视点)的动画。这可以通过设置一系列关键帧来实现。
- 对象动画:利用
ComApi.State.OverrideTransform方法,在每个时间步长更新物流组件的位置和旋转,模拟其沿路径的移动。 - 视点动画:创建
SavedViewpointAnimation对象,并向其中添加一系列SavedViewpoint。每个SavedViewpoint代表动画中某一时刻的相机位置和方向。
动画播放控制
通过程序化地控制动画的播放进度,例如使用计时器或 Navisworks 的 Idling 事件来逐帧推进动画,确保在每个时间点都能捕获到正确的模型状态。
2. 逐帧图像捕获
在动画播放的每个帧(或预设的时间间隔),执行上述"输出为图片格式"的步骤,将当前视口的内容捕获为一张图片。
命名约定
将这些图片按顺序保存到临时目录,并采用统一的命名约定,例如 frame_00001.png, frame_00002.png,以便后续的视频合成工具能够正确识别序列。
性能优化
图像捕获是一个耗时操作。为了避免阻塞 Navisworks UI,建议在后台线程中执行图像捕获任务,并使用进度条向用户显示当前进度。
3. 外部视频合成
一旦所有图像帧都被捕获并保存,就需要使用外部工具将这些图像序列合成为视频文件。
选择工具
FFmpeg 是一个功能强大且广泛使用的开源命令行工具,支持多种视频格式和编码器,非常适合此任务。
集成方式
命令行调用:插件可以通过 System.Diagnostics.Process 类在 C# 代码中调用 FFmpeg 命令行工具。例如,将 PNG 图像序列合成为 AVI 视频的命令可能如下所示:
ffmpeg -framerate 24 -i C:\Temp\frames\frame_%05d.png -c:v mpeg4 -q:v 5 C:\Output\NavigationVideo.avi
其中:
-framerate 24:设置视频帧率为 24 FPS-i C:\Temp\frames\frame_%05d.png:指定输入图像序列的路径和命名模式-c:v mpeg4:指定视频编码器为 MPEG-4-q:v 5:设置视频质量(值越小质量越高,文件越大)C:\Output\NavigationVideo.avi:指定输出视频文件路径和名称
FFmpeg.NET 封装库:也可以考虑使用现有的 FFmpeg.NET 封装库(例如 FFmpeg.AutoGen 或 MediaToolkit),它们提供了更面向对象的 API,可以更方便地在 C# 代码中直接控制 FFmpeg 的功能,而无需手动构建命令行字符串。
视频参数
允许用户在 UI 中设置视频的帧率(例如 15 FPS 或 24 FPS,Navisworks 自身手动导出时推荐 10-15 FPS,最高 24 FPS)、分辨率(例如 Full HD 1920x1080)、编码器和输出格式。
4. 清理
视频合成完成后,插件应自动删除临时生成的图像序列文件,以释放磁盘空间。
性能考量
-
图像捕获速度:逐帧捕获高分辨率图像会显著影响性能。在设计动画时,应平衡动画时长、帧率和分辨率,以确保可接受的导出时间。
-
文件 I/O:大量图像文件的读写操作会产生 I/O 瓶颈。考虑使用高性能的存储设备,并优化文件写入策略。
-
FFmpeg 性能:FFmpeg 的视频合成速度取决于所选的编码器、硬件配置以及是否支持硬件加速。在部署前应进行充分的测试和优化。
通过上述方法,插件将能够满足您对导航地图和路径规划结果以图片和视频形式输出的需求,为物流仿真提供直观且实用的可视化成果。
4. 文件格式支持与DELMIA集成
本方案的关键在于确保Navisworks插件能够与DELMIA平台进行高效的数据交换,这需要广泛的文件格式支持和精心设计的数据集成策略。
4.1. 多格式导入/导出能力
Navisworks作为项目审阅软件,其核心优势在于支持多种CAD文件格式的聚合 2。
- Navisworks原生支持:
- Navisworks支持超过60种文件格式的导入,包括但不限于AutoCAD、Revit、Inventor、IFC、DWG、DXF、NWC、NWD、NWF等 1。这意味着插件可以处理来自不同BIM和CAD软件的异构模型数据。
- Navisworks 2026引入了新的2026文件格式,用于保存NWD和NWF文件,并允许用户在选项编辑器中设置默认保存版本 4。
- 导出NWD文件时,现在可以配置新的选项,例如排除隐藏项目,这有助于生成更精简的模型用于共享或集成 2。
- NwCreate API允许程序化地创建NWC文件,这对于从第三方应用程序导出自定义格式或将自定义数据集成到Navisworks模型中非常有用 1。
- Navisworks还支持将模型导出为DWF格式 62 和FBX格式 29。
- 插件特定导入/导出:
- 为了与DELMIA进行数据交换,插件需要能够将物流路径和相关属性导出为通用且易于解析的格式,如XML、JSON或CSV 10。XML是一种通用、轻量级的基于XML的格式,适用于快速高效地共享实时、准确的三维数据 63。
- Navisworks原生支持将属性导出为CSV文件 5,这为导出物流属性提供了直接途径。
- 可以开发自定义导出器,利用.NET API将物流路径的几何数据(如XYZ坐标点序列)和关联的自定义属性打包成DELMIA所需的数据结构。
4.2. 与DELMIA的集成
DELMIA是达索系统3DEXPERIENCE平台下的数字制造和生产解决方案,专注于优化生产系统和流程 66。与DELMIA的集成将使Navisworks中的物流规划能够利用DELMIA的高级仿真能力。
- DELMIA在物流仿真方面的能力:
- DELMIA提供全面的解决方案,涵盖数字制造、生产系统优化、机器人技术和工厂仿真 66。
- 其关键功能包括工作单元设计、机器人编程、虚拟调试、物料和资源流分析、瓶颈识别以及关键绩效指标(KPI)仪表板 67。这些功能与Navisworks中定义的物流路径和属性相结合,可以实现更深入的物流分析和优化。
- DELMIA支持导入多种CAD文件类型,包括SOLIDWORKS文件、DXF、STEP、Revit和三维点云数据 61。值得注意的是,DELMIA支持从Navisworks 2012到2025版本的NWD和NWF文件 61。
- DELMIA可以导入XML文件用于零件轮廓和轨迹/路径数据 63。DELMIA Robotics还支持机器人程序和轨迹的导入/导出,并允许使用VB.NET创建自定义翻译器 68。
- 数据交换策略:
- 初始模型传输: Navisworks模型(NWC/NWD)可以导出为DELMIA兼容的格式,如STEP或IFC。如果DELMIA 2026直接支持Navisworks 2026的NWD格式,则可以直接传输;否则,可以考虑转换为FBX等通用三维格式作为中间步骤 29。
- 物流数据交换: 将Navisworks中定义的物流路径(几何信息)及其关联的属性(元数据)导出为XML或JSON文件。
- 对于路径:可以将路径表示为由一系列XYZ坐标点定义的多段线或样条曲线。
- 对于属性:需要将Navisworks中的自定义属性映射到DELMIA的数据模型中,确保语义一致性。
- DELMIA导入与处理: 在DELMIA内部,可以开发自定义导入器(如果DELMIA提供相应的API)或利用其现有的导入功能。例如,DELMIA支持导入XML文件作为轨迹或路径数据 63。对于机器人程序,DELMIA允许创建VB.NET自定义翻译器来处理特定格式的数据 68。
- 仿真结果回传Navisworks(可选但有价值): 考虑将DELMIA的仿真结果(例如,优化后的路径、瓶颈报告、新的碰撞数据)导出回Navisworks,以便在BIM模型中进行可视化和进一步的协调。这将需要定义一个互惠的数据交换格式和流程。
尽管文件格式兼容性是集成的重要基础 61,但真正的挑战在于语义互操作性。仅仅将几何文件(例如,将NWD导入DELMIA)并不能自动传输Navisworks中丰富的BIM数据或专门定义的物流自定义属性。解决方案必须解决如何将这些数据
映射并情境化到DELMIA的仿真环境中。这意味着需要一个定义良好的物流信息数据模式,并且可能需要一个中间件组件或自定义翻译器,它能够理解Navisworks的属性结构和DELMIA的输入要求。这对于超越单纯的几何可视化,实现跨平台的实际仿真和分析至关重要。
5. 模型切分及导出
该功能将允许用户根据以下三种方式选择模型元素:
- 按楼层切分:根据模型中定义的楼层属性,选择特定楼层的所有模型元素。
- 按自定义属性切分:根据用户指定的属性类别、属性名称和属性值,筛选出符合条件的模型元素。
- 按当前选择切分:使用用户在 Navisworks 视口或选择树中已选中的模型元素。
选定模型元素后,插件将自动隐藏所有非选定元素,然后将当前可见的模型导出为一个新的 NWD 文件,确保新文件中不包含任何隐藏项。导出完成后,模型将恢复到原始的可见状态。
5.1 用户界面 (UI) 设计
为了提供直观且高效的用户体验,建议在自定义的 Ribbon 选项卡中添加一个新按钮,并设计一个专用的对话框或可停靠面板(Dockable Pane)来承载切分和导出选项。
5.1.1 Ribbon 按钮
- 位置:在自定义的"物流仿真"Ribbon 选项卡中,添加一个名为"模型切分与导出"的按钮。
- 图标:配备一个清晰的图标,例如一个带有剪刀或文件导出符号的模型图标。
- 工具提示:"根据楼层、属性或当前选择,将模型子集导出为新的 NWD 文件。"
5.1.2 "模型切分与导出"对话框/面板 (WPF)
该对话框/面板将使用 WPF (Windows Presentation Foundation) 技术构建,以提供丰富的交互性。
切分方式选择区
- 标题:"选择切分方式"
- 控件:三个单选按钮 (RadioButton):
- "按楼层":选中后,下方显示楼层选择控件。
- "按自定义属性":选中后,下方显示属性输入控件。
- "按当前选择":选中后,下方显示"使用当前选择"按钮。
切分条件设置区(根据选择方式动态显示)
若选择"按楼层"
- 标签:"选择楼层"
- 控件:下拉列表 (ComboBox),动态填充当前模型中检测到的所有楼层名称(例如:Level 1, F2, Ground Floor)。
- 特殊要求处理:考虑在楼层选择后,提供一个可选的复选框或高级设置,用于"忽略编组站区域楼层间上下贯穿模块"。这需要插件能够识别这些特定模块的属性。
若选择"按自定义属性"
- 标签:"属性类别名称" (TextBox)
- 标签:"属性名称" (TextBox)
- 标签:"属性值" (TextBox)
- 提示:可在文本框旁提供示例或"浏览属性"按钮,帮助用户查找正确的属性路径。
若选择"按当前选择"
- 按钮:"使用当前选择" (Button)。点击后,插件将获取 Navisworks 当前选中的所有模型元素。
- 显示:可选地,显示当前选中元素的数量,例如"已选中:X 个元素"。
预览与导出操作区
- 按钮:"预览选择" (Button)。点击后,插件将临时隐藏所有非选定元素,只显示即将导出的模型子集。这有助于用户在导出前进行视觉确认。
- 按钮:"恢复原始视图" (Button)。点击后,恢复模型到"预览选择"前的可见状态。
- 标签:"输出文件路径" (TextBox)
- 按钮:"浏览..." (Button)。打开文件保存对话框,让用户选择保存路径和文件名。
- 标签:"NWD 版本" (ComboBox)。允许用户选择导出的 NWD 文件版本,例如"Navisworks 2026"。
- 复选框:"排除隐藏项" (Checkbox)。此选项应默认勾选且不可修改,以确保只导出可见内容。
- 按钮:"导出 NWD" (Button)。执行导出操作。
- 进度条/状态信息:在导出过程中显示进度或状态消息。
5.2 技术实现细节 (C#.NET)
该功能将作为 Navisworks 插件的一部分,利用 Navisworks.NET API 进行开发。
5.2.1 核心工作流
-
获取当前文档:
Document doc = Application.ActiveDocument; -
启动事务:为了确保模型可见性更改的原子性和性能,所有隐藏/显示操作都应包裹在 Transaction 中。
using (Transaction transaction = new Transaction(doc)) -
确定要导出的模型项 (
ModelItemCollection itemsToExport):根据用户在 UI 中选择的切分方式执行相应的逻辑。 -
临时隐藏非导出模型项:
- 获取模型中所有 ModelItem 的集合。
- 计算出
itemsToExport的补集,即itemsToHide。 - 调用
doc.Models.SetHidden(itemsToHide, true);来隐藏这些元素。
-
执行 NWD 导出:
doc.SaveFile(outputPath, DocumentFileVersion.Navisworks2026);由于 Navisworks 2026 的 NWD 导出功能支持排除隐藏项,此方法将自动排除之前隐藏的元素。
-
恢复原始可见性: 调用
doc.Models.SetHidden(new ModelItemCollection(), false);或doc.Models.UnhideAll();来显示所有元素,恢复模型到导出前的状态。 -
提交事务:
transaction.Commit();
5.2.2 切分方式的具体实现
1. 按楼层切分
楼层数据获取
- 遍历
doc.Models中的所有 Model 和其RootItem.DescendantsAndSelf。 - 对于每个 ModelItem,访问其
PropertyCategories。 - 查找包含楼层信息的属性类别(例如,
PropertyCategoryNames.Element或其他自定义类别)和属性名称(例如,"Level"、"Floor"、"Base Level")。这些名称可能因原始 CAD 软件而异,需要进行适配或配置。 - 收集所有唯一的楼层值,并填充到 UI 的下拉列表中。
模型项筛选
- 当用户选择一个楼层后,构建一个 Search 对象。
- 添加搜索条件:
SearchCondition.HasPropertyByDisplayName("Element", "Level") .EqualValue(VariantData.FromDisplayString(selectedFloorLevel)) - 执行搜索:
ModelItemCollection itemsToExport = search.FindAll(doc, false);
忽略贯穿模块
如果需要忽略"编组站区域楼层间上下贯穿模块",则在上述搜索条件中添加额外的 AND 条件,例如:
search.SearchConditions.Add(
SearchCondition.HasPropertyByDisplayName("CustomCategory", "ModuleType")
.NotEqualValue(VariantData.FromDisplayString("ThroughFloor"))
);
这要求这些模块在模型中具有可识别的属性。
2. 按自定义属性切分
用户输入
直接从 UI 获取用户输入的属性类别名称、属性名称和属性值。
模型项筛选
- 构建 Search 对象。
- 添加搜索条件:
SearchCondition.HasPropertyByDisplayName(userCategoryName, userPropertyName) .EqualValue(VariantData.FromDisplayString(userPropertyValue)) - 执行搜索:
ModelItemCollection itemsToExport = search.FindAll(doc, false);
3. 按当前选择切分
获取当前选择
ModelItemCollection itemsToExport = doc.CurrentSelection.SelectedItems;
由于 SelectedItems 是只读集合,如果后续需要修改此集合,应将其复制到新的 ModelItemCollection 中。
5.2.3 性能优化考量
鉴于客户处理的是大型建筑模型,性能是关键。
-
事务 (Transaction):批量隐藏/显示操作应在单个事务中完成,以减少 Navisworks 内部更新和撤销信息的开销,显著提高性能。
-
高效集合操作:使用
ModelItemCollection和SetHidden方法对集合进行操作,而不是逐个元素处理。 -
优化搜索:充分利用 Search API 的强大过滤能力,通过精确的
SearchCondition快速定位目标元素,避免不必要的全模型遍历。 -
避免不必要的 UI 刷新:在执行大量模型操作时,尽量减少 UI 刷新,例如在事务内部不进行频繁的
RequestDelayedRedraw。 -
内存管理:对于大型模型,确保代码在处理大量 ModelItem 时有效管理内存,避免内存泄漏。
5.3 验收标准
-
插件能够成功加载并显示"模型切分与导出"功能按钮。
-
"模型切分与导出"对话框/面板能够正常打开,并提供所有预期的切分方式和选项。
-
"按楼层"切分方式能够正确识别并列出模型中的楼层,并能根据所选楼层准确筛选出模型元素。
-
"按自定义属性"切分方式能够根据用户输入的属性信息准确筛选出模型元素。
-
"按当前选择"切分方式能够准确获取 Navisworks 当前选中的模型元素。
-
"预览选择"功能能够临时隐藏非选定元素,只显示即将导出的模型子集,且"恢复原始视图"功能能够正确恢复模型原始可见性。
-
导出 NWD 文件时,能够成功排除所有隐藏的模型元素,确保新文件只包含可见的子集。
-
导出过程在处理大型模型时保持流畅,性能表现良好。
-
导出的 NWD 文件能够正常打开,并包含正确的模型子集和属性信息。
通过上述详细设计,该功能将能够满足客户对大型模型分层或按属性切分并导出为独立文件的实用性需求,同时兼顾性能。
6. 结论与建议
6.1. 技术方案总结
本技术方案为Navisworks 2026插件和交互式导航控件的开发提供了全面的蓝图,旨在彻底改变大型项目中物流规划和验证的方式。通过利用Navisworks 2026 API的最新增强功能,该解决方案将实现通道选择、智能路径规划、动态物流属性管理、自动化碰撞检测和逼真动画仿真等核心功能。在设计中,我们特别强调了大型模型的性能优化,包括高效的数据访问、模型简化技术和对线程的审慎管理。此外,该方案确保了对多种文件格式的广泛支持,并详细规划了与达索系统DELMIA平台的无缝集成,从而在BIM和数字制造领域之间建立了关键的数字连续性。
6.2. 主要优势与战略影响
该集成解决方案将带来多项显著优势和深远的战略影响:
- 增强物流规划与验证: 插件将使项目团队能够在三维模型中精确定义、可视化和优化物流路径,从而在实际施工或生产之前识别并解决潜在问题。
- 提高项目效率与成本节约: 通过在早期阶段进行碰撞检测和动画仿真,可以减少现场冲突、物料处理错误和返工,从而显著节约时间和成本。
- 促进跨领域协作: 将Navisworks的BIM协调能力与DELMIA的先进制造仿真能力相结合,将打破传统的数据孤岛,促进设计、施工和制造团队之间的无缝协作。
- 支持全生命周期管理: 该解决方案将BIM数据从设计和施工阶段扩展到运营规划和设施管理,为资产的整个生命周期提供更全面的数字双胞胎。
- 提升决策质量: 动态物流仿真和数据驱动的分析将为利益相关者提供更准确的见解,从而做出更明智的决策,优化资源利用和生产率。
6.3. 实施建议
为了确保本技术方案的成功实施和长期价值,提出以下建议:
- 分阶段开发: 建议采用迭代和分阶段的开发方法,首先实现核心功能,然后逐步添加高级特性和优化。这有助于管理项目复杂性并确保早期交付可用的功能。
- 专用性能测试: 鉴于大型模型的性能要求,应在整个开发生命周期中进行严格的性能测试。这包括对数据加载、路径计算、碰撞检测和动画播放进行基准测试,并根据实际项目数据进行优化。
- 持续的用户参与: 在UI/UX设计和功能开发过程中,应持续与最终用户(BIM经理、物流专家、项目工程师)进行沟通和反馈。这将确保插件满足实际操作需求,并提供直观、高效的用户体验。
- 探索未来API增强: 持续关注Navisworks API的未来更新和增强功能。Autodesk对开放性和互操作性的承诺可能带来新的API,从而实现与DELMIA更深层次的集成或更先进的仿真能力。
- 数据模式定义与映射工具: 投资于明确定义物流信息的数据模式,并开发或利用工具来促进Navisworks自定义属性与DELMIA数据模型之间的映射。这对于确保数据在不同平台间语义一致性地流动至关重要。
- 考虑云端协作: 探索将解决方案与Autodesk Construction Cloud(包括BIM 360)等云平台集成 2。这将进一步增强团队协作,实现实时数据共享和基于云的冲突管理,从而提升整体工作流程效率。
引用的著作
- Navisworks API | Autodesk Platform Services (APS), 访问时间为 八月 11, 2025, https://aps.autodesk.com/developer/overview/navisworks
- Enjoy exclusive benefits on Autodesk Navisworks Manage 2026 - Cadac Group, 访问时间为 八月 11, 2025, https://www.cadac.com/us/autodesk-navisworks-manage-2026/
- Product Update: Navisworks 2026 - What's New - Autodesk Community, 访问时间为 八月 11, 2025, https://forums.autodesk.com/t5/navisworks-forum/product-update-navisworks-2026-what-s-new/td-p/13401440
- What's New in Navisworks 2026 - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2026/ENU/?guid=Navisworks_Whats_New_2026
- Enhancements in Navisworks 2026 - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2026/ENU/?guid=Navisworks_2026_enhancements
- Autodesk Navisworks 2026 - New Features - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=dOy91ZB_3-A
- Property Sets - Navisworks - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2026/ENU/?guid=Display_Property_Sets
- Clash Detective Improvements - Navisworks - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2026/ENU/?guid=WN_Clash_Detective_Improvements&
- Navisworks 2026 Appearance Profile : r/bim, 访问时间为 八月 11, 2025, https://www.reddit.com/r/bim/comments/1mj6ko2/navisworks_2026_appearance_profile/
- Navisworks - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/12/
- Navisworks - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/4/
- flyingturtle13/Navis-Clash_Data_Exporter: Exports Navisworks Clash Detective data to be consumed by Power BI Clash Metrics Reports - GitHub, 访问时间为 八月 11, 2025, https://github.com/flyingturtle13/Navis-Clash_Data_Exporter
- Custom Ribbon of Navisworks part 1 - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/07/custom-ribbon-of-navisworks-part-1.html
- Navisworks .NET: Create Ribbon Using CommandHandlerPlugin/CommandAttribute/RibbonTabAttribute/RibbonLayoutAttribute/StringsAttribute/PluginAttribute/.XAML/Local Name File - RevitNetAddinWizard & NavisworksNetAddinWizard, 访问时间为 八月 11, 2025, https://spiderinnet.typepad.com/blog/2013/11/navisworks-net-create-ribbon-using-commandhandlerplugincommandattributeribbontabattributeribbonlayoutattributestringsat.html
- Navisworks .NET: Create All Kinds of Ribbon Buttons and Controls, 访问时间为 八月 11, 2025, https://spiderinnet.typepad.com/blog/2014/01/navisworks-net-create-all-kinds-of-ribbon-buttons-and-controls.html
- Navisworks · RibbonLayoutAttribute Constructor - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/C_Autodesk_Navisworks_Api_Plugins_RibbonLayoutAttribute_ctor_1_362212bd.htm
- Make NavisWORK for You: Intro to the Navisworks API - Autodesk, 访问时间为 八月 11, 2025, https://static.au-uw2-prd.autodesk.com/Class_Handout_CS226911_Make_NavisWORK_for_You_Intro_to_the_Navisworks_API_Jake_Lovelace.pdf
- Navisworks API : Dockable Pane Plugin – TwentyTwo, 访问时间为 八月 11, 2025, https://twentytwo.space/2022/03/31/navisworks-api-dockable-pane-plugin/
- Navisworks 2014 API new feature InputPlugin - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2013/05/navisworks-2014-api-new-feature-inputplugin.html
- Using Ray Casting To Move 3D Objects // OpenGL Tutorial #32 - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=lj5hx6pa_jE
- How to check the coordinates and elevation of an element or a point in Navisworks, 访问时间为 八月 11, 2025, https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-check-the-elevation-coordinates-of-an-element-or-a-point-in-Navisworks.html
- Programmatically using acedgrdraw for temporary graphics in all viewports - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/autocad/2013/01/programmatically-using-acedgrdraw-for-temporary-graphics-in-all-viewports.html
- Navisworks · Graphics.Line Method (Point3D, Point3D) - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_Graphics_Line_2_92bd7b81.htm
- Navisworks API : Viewpoint (Part-1) - TwentyTwo, 访问时间为 八月 11, 2025, https://twentytwo.space/2020/12/06/navisworks-api-viewpoint-part-1/
- Navisworks - Selection Tree Window - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-AF4CFA5C-1455-4444-982A-34FBA2AE4608
- Navisworks · Selections and Collections of ModelItem - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/87317537-2911-4c08-b492-6496c82b3edb.htm
- Navisworks · Search Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_Search.htm
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/2/
- Forge-Navisworks-ClashTest/Navisworks Plugin/Class1.cs at master - GitHub, 访问时间为 八月 11, 2025, https://github.com/xiaodongliang/Forge-Navisworks-ClashTest/blob/master/Navisworks%20Plugin/Class1.cs
- Transaction Class - Revit API Docs, 访问时间为 八月 11, 2025, https://www.revitapidocs.com/2017.1/308ebf8d-d96d-4643-cd1d-34fffcea53fd.htm
- Navisworks .NET API Properties - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/05/navisworks-net-api-properties.html
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/14/
- Optimizing Your Navisworks File - IrisVR, 访问时间为 八月 11, 2025, https://help.irisvr.com/hc/en-us/articles/360036941213-Optimizing-Your-Navisworks-File
- Performance issues when navigating a model in Navisworks - Autodesk, 访问时间为 八月 11, 2025, https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Navisworks-performance-issues-and-settings.html
- Multi-threading with Revit - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/06/multi-threading-with-revit.html
- LOD or Vertex Reduction API for Large Models in Navisworks - Autodesk Community, 访问时间为 八月 11, 2025, https://forums.autodesk.com/t5/navisworks-api/lod-or-vertex-reduction-api-for-large-models-in-navisworks/m-p/13316376
- Add/Modify/Remove custom attribute using COM API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/08/addmodifyremove-custom-attribute-using-com-api.html
- Custom Properties - Navisworks - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-23C2693B-E459-43CD-A14A-F82A3F959189
- add custom properties to all desired model items - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2013/03/add-custom-properties-to-all-desired-model-items.html
- All About Clash Detection with Navisworks - United-BIM, 访问时间为 八月 11, 2025, https://www.united-bim.com/get-to-know-all-about-clash-detection-with-navisworks/
- Clash Detective - Navisworks - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/87317537-2911-4c08-b492-6496c82b3ee5.htm
- Navisworks API - Create Clash test? : r/bim - Reddit, 访问时间为 八月 11, 2025, https://www.reddit.com/r/bim/comments/1l5494a/navisworks_api_create_clash_test/
- To Run a Clash test using api - Autodesk Community, 访问时间为 八月 11, 2025, https://forums.autodesk.com/t5/navisworks-api/to-run-a-clash-test-using-api/td-p/6607309
- ApiDocs.co · Navisworks · ClashTest Class, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_Clash_ClashTest.htm
- Navisworks Help | Overview of Clash Detective Tool | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/cloudhelp/2026/ENU/Navisworks-Clash-Detective/files/GUID-36D9904E-12F3-4F82-8DD3-C2103DB0BC29.htm
- Navisworks Help | Animate Objects | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-DD38DF54-B0A6-4B80-86D3-D7C70584CCE7
- Navisworks Help | Record and Play Back Animations | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2025/ENU/?guid=GUID-23867287-0FD7-4A96-849C-4FAA6F72F0C7
- Linking Animations to Timeliner tasks - Beyond Design: the Construction and BIM blog, 访问时间为 八月 11, 2025, https://beyonddesign.typepad.com/posts/2011/09/linking-animations-to-timeliner-tasks.html
- Animating Object Doors in Navisworks: A Step-By-Step Guide | VDCI.edu, 访问时间为 八月 11, 2025, https://vdci.edu/learn/cad/animating-object-doors-in-navisworks
- How to Use Animation in Navisworks — Part 1 - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=69Dygkw6KcA
- Transform Object with a Series of Moves - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2014/08/transform-object-with-a-series-of-moves.html
- Navisworks · SavedViewpointAnimation Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/T_Autodesk_Navisworks_Api_SavedViewpointAnimation.htm
- Can naviswork Api work with animator? - Autodesk Community, 访问时间为 八月 11, 2025, https://forums.autodesk.com/t5/navisworks-api/can-naviswork-api-work-with-animator/td-p/3414831
- Navisworks Tutorial - Creating a script - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=NS--XTcMLSE
- Alias 2026 Help | Set Motion Path | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/ALIAS/2026/ENU/?guid=Alias_Animation_Animation_menu_Set_Motion_Path_html
- Alias 2026 Help | Create motion path animation | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/cloudhelp/2026/ENU/Alias-Video-Tutorials/files/animation/create-motion-path-animation.html
- Autodesk Navisworks Manage 2026 | Autodesk Accessibility Conformance Report International Edition, 访问时间为 八月 11, 2025, https://damassets.autodesk.net/content/dam/autodesk/www/migration/government/2026/vpat-autodesk-navisworks-manage-2026.pdf
- Navisworks · Model.Guid Property - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/P_Autodesk_Navisworks_Api_Model_Guid.htm
- Navisworks - Interface Solutions - UNITEC Informationssysteme GmbH, 访问时间为 八月 11, 2025, https://unitec.de/en/solutions/navisworks-interfaces
- Supported CAD files - Visual Components, 访问时间为 八月 11, 2025, https://www.visualcomponents.com/supported-cad-files/
- Navisworks · Document.ExportAsDwf Method - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_Document_ExportAsDwf_1_bb3a7a4f.htm
- Dassault Systemes Delivers 3D XML Specifications and Player, 访问时间为 八月 11, 2025, https://www.3ds.com/newsroom/press-releases/dassault-systemes-delivers-3d-xml-specifications-and-player
- How do you create thread standards using an XML file? - TECHNIA, 访问时间为 八月 11, 2025, https://www.technia.com/en/faqs/how-do-you-create-thread-standards-using-an-xml-file/
- Exporting/Importing Tracks in Neutral Format, 访问时间为 八月 11, 2025, http://www.maruf.ca/files/catiahelp/fitug_C2/fitugbt0506.htm
- DELMIAWorks | Dassault Systèmes, 访问时间为 八月 11, 2025, https://www.3ds.com/products/delmia/delmiaworks
- Explore DELMIA Digital Manufacturing Solutions - Vias3D, 访问时间为 八月 11, 2025, https://vias3d.com/delmia/
- DELMIA Robotics Simulation, Design and Programming Software | Dassault Systèmes, 访问时间为 八月 11, 2025, https://www.3ds.com/products/delmia/industrial-engineering/robotics
- 3DEXPERIENCE DELMIA Factory Simulation – 3D Virtual Twin - Hawk Ridge Systems, 访问时间为 八月 11, 2025, https://hawkridgesys.com/3dexperience-delmia-factory-simulation
- help.solidworks.com, 访问时间为 八月 11, 2025, https://help.solidworks.com/2024/English/DraftSight/DraftSightSW/c_import_part_contours.htm#:~:text=The%20Import%20Delmia%20command%20lets,CNC)%20machine%20for%20cutting%20purposes.
- DELMIA D5 - CATIADOC, 访问时间为 八月 11, 2025, http://catiadoc.free.fr/online/bascuddl_C2/bascuddl0100.htm
- Additive Manufacturing Software & 3D Printing | DELMIA - Dassault Systèmes, 访问时间为 八月 11, 2025, https://www.3ds.com/products/delmia/industrial-engineering/additive-manufacturing
- DELMIA Robotics - Portfolio - 3DEXPEREINCE - V21 | PDF - Scribd, 访问时间为 八月 11, 2025, https://www.scribd.com/presentation/891392847/DELMIA-Robotics-Portfolio-3DEXPEREINCE-V21
- DELMIA Robotics 2 (WL2) : CSM Object Modeler (CSM) | PDF | Machines | Simulation, 访问时间为 八月 11, 2025, https://www.scribd.com/document/561011260/WL2
- Navisworks Best Practices & Advanced Techniques in 2025 - Novatr, 访问时间为 八月 11, 2025, https://www.novatr.com/blog/navisworks-best-practices