93 KiB
自动化路径规划实现方案:基于Navisworks的物流组件模拟与可视化
执行摘要
本报告详细阐述了一种全面的自动化路径规划与物流模拟解决方案,该方案充分利用了Autodesk Navisworks强大的API,以实现高级BIM模型分析与可视化。所提出的插件将高效的数据提取、复杂的空间简化技术(如体素化、导航网格和路点图)、以及先进的路径搜索算法(如A*和多启发式A*(MHA*))相结合。其核心创新在于设计定制化的成本函数,这些函数能够整合物流相关的预设属性(例如通行性、速度限制和宽度限制)以及实时数据。该解决方案进一步涵盖了物流组件沿计算路径的程序化动画控制、基于Navisworks碰撞检测功能的实时碰撞检测,以及最优路径的直观三维可视化。本系统旨在通过提供一个强大的、数据驱动的平台来模拟复杂的运营场景,从而显著提升建筑和设施管理中的项目效率、安全性和决策水平。
1. 引言:BIM中自动化路径规划的必要性
1.1. BIM在物流与施工管理中的演进
建筑信息模型(BIM)通过提供设施物理和功能特性的三维数字表示,彻底改变了建筑、工程和施工(AEC)行业。它已成为各类应用(包括施工机器人和进度监控)时空和语义信息的丰富来源 1。BIM能够创建虚拟模型并将来自不同软件(如Revit、AutoCAD和Inventor)的数据整合到一个协调统一的环境中,这对于增强协调性、沟通效率以及缩短项目工期和降低成本至关重要 5。
BIM模型蕴含着海量数据,能够提供全面的建筑布局信息、内部结构和门窗位置等细节 1。这种“数字孪生”的概念正日益受到关注,它旨在创建一个与物理世界实时同步的虚拟副本,从而在设计和运营阶段提供更深层次的洞察 2。然而,BIM本质上是一种静态的“设计”表示 13,而现实世界的施工现场是动态变化的,存在临时障碍物和移动物体 13。这种静态模型与动态现实之间的差距,凸显了在物流和施工管理中进行动态模拟和路径规划的迫切需求,以弥合“设计”与“建造”之间的差异 3。
1.2. 自动化路径规划对效率和安全的战略价值
自动化路径规划使自主车辆和机器人能够找到从起始配置到目标配置的最优、无障碍路径,从而最大限度地降低运输成本(包括时间、距离、风险和燃料消耗)14。这对于物流、机器人技术和建筑行业至关重要,通过避免碰撞和优化资源部署,可以提高生产力并增强安全性 1。
在复杂的3D环境中进行手动路径规划是不可行的 15。自动化路径规划对于自主系统至关重要 14,它能够优化物流、减少燃料消耗并确保及时交付 15。在建筑领域,它能够使多台机器同时工作而避免冲突,从而提高生产力 4。将自动化路径规划与BIM集成,可以利用语义信息实现“更智能、更安全、更精确的机器人导航” 18。安全性是主要驱动因素,因为碰撞会导致高昂的成本和延误 19。通过将静态BIM数据转化为动态操作的可行智能,自动化路径规划直接解决了复杂环境中的物流和安全核心挑战。
1.3. Navisworks在模拟方面的能力和可扩展性概述
Navisworks是一款全面的项目审查软件,支持三维协调、四维规划、照片级真实感可视化、动态模拟和精确分析 22。它能够整合来自各种CAD软件(如AutoCAD、Revit和Inventor)的模型,并支持多种文件格式 22。其.NET API允许开发定制插件、实现自动化和嵌入控件,从而使开发人员能够扩展其功能。
Navisworks旨在审查和协调来自多个专业的大型三维模型 10。它内置了碰撞检测(Clash Detective)、时间线(TimeLiner)和动画(Animator)等专业工具 26。其.NET API是实现定制化的主要接口,支持多种插件类型,包括用于简单命令的
AddInPlugin、用于自定义Ribbon界面的CommandHandlerPlugin、用于自定义可停靠窗口的DockPanePlugin、用于处理鼠标和键盘事件的InputPlugin、以及用于自定义图形和工具行为的RenderPlugin和ToolPlugin 27。这种可扩展性是构建定制路径规划解决方案的关键。Navisworks凭借其处理大型联邦模型的能力和可扩展的API,成为开发高级模拟和路径规划解决方案的理想平台。
1.4. 报告结构和核心目标
本报告将概述其组织结构,引导读者深入了解数据提取、空间简化、算法选择、动画、可视化以及未来的发展方向。
2. Navisworks模型数据提取用于空间智能
高效地从大型Navisworks模型中提取相关的几何和语义信息是自动化路径规划的基础步骤。这需要深入理解Navisworks.NET API以及优化数据访问的策略。
2.1. Navisworks.NET API:架构与数据访问最佳实践
Navisworks API交互的核心围绕着Application、Document、Model和ModelItem这些基本对象。Application对象提供对活动Document的访问。一个Document可以包含多个Model,每个Model代表一个加载的文件。ModelItem是模型中对象的层次化表示,可以通过Model.RootItem及其Children或Descendants属性进行访问 32。
对于ModelItem的查询,Navisworks提供了迭代、Search API和LINQ三种机制 38。
Search API通常是根据属性查找项目最快的方法,因为它在原生代码中执行,类似于Navisworks GUI中的“查找项目”功能 38。LINQ虽然表达力强,但由于频繁在托管代码和原生代码之间切换,效率最低 38。因此,在进行大规模筛选时,应优先使用
Search API。
在程序化修改模型或其属性时,使用NavisworksTransaction(或COM API中的state.BeginEdit/EndEdit)对于性能至关重要。事务能够将多个操作打包,延迟内部通知和撤销信息,从而显著加快批量更改的速度 22。
Navisworks支持多种插件类型,包括用于简单命令的AddInPlugin、用于自定义Ribbon界面的CommandHandlerPlugin、用于自定义可停靠窗口的DockPanePlugin、用于处理鼠标和键盘事件的InputPlugin、以及用于自定义图形和工具行为的RenderPlugin/ToolPlugin 27。插件类型的选择取决于所需的用户交互和后台处理。
Navisworks API的复杂性(COM与.NET的混合使用、多种插件类型、性能考量)意味着一个健壮的解决方案需要仔细的架构规划,以平衡功能性、性能和可维护性。API的混合性质(例如,COM用于几何图元提取,.NET用于高级操作)表明需要互操作性策略。Navisworks API同时提供.NET和COM接口 22。尽管.NET是新开发的首选,但某些关键功能(如详细几何图元提取,通过
InwSimplePrimitivesCB接口实现)仍主要通过COM API暴露,这需要使用COM互操作 44。这种互操作可能会由于托管代码和非托管代码之间的数据封送而引入性能开销 38。因此,需要采取一种细致的策略:首先使用更快的.NET
Search API进行ModelItem的初步筛选 38,然后有选择地使用COM互操作进行缩减后的项目集合的几何提取。对模型或其属性的任何修改都应封装在
NavisworksTransaction块中,以通过减少UI刷新和捆绑撤销操作来优化性能 22。插件类型的选择(例如,
DockPanePlugin用于复杂UI,AddInPlugin用于简单执行)30也会影响整体应用程序架构和响应能力。对于诸如图生成等计算密集型任务,将核心计算与UI线程分离至关重要,尽管Navisworks通常不支持从后台线程直接调用API 49,这意味着需要仔细的同步或外部进程通信。
2.2. 几何信息的高效提取
ModelItem.Geometry属性提供了对项目几何表示的访问 36。为了提取详细的图元(顶点、三角形、线),通常需要实现COM API的
InwSimplePrimitivesCB接口并将其传递给frag.GenerateSimplePrimitives()方法 44。这种回调机制允许处理单个几何组件。返回的坐标位于局部坐标系(LCS)中,必须使用
GetLocalToWorldMatrix()转换为世界坐标系(WCS)45。
ModelItem.BoundingBox()方法返回项目及其子项在世界空间中的轴对齐三维包围盒(BoundingBox3D)56。这提供了一种快速、粗略的对象空间范围表示,可用于初步的交叉检查 56和空间分区算法。
对于非常大的模型,提取所有原始几何体可能会成为性能瓶颈 27。诸如细节级别(LOD)或顶点简化等策略对于在进一步处理之前简化几何数据至关重要 10。虽然Navisworks具有内部机制来实现这一点,但API可能需要自定义实现或利用外部库进行显式控制。
从Navisworks中提取的原始几何数据通常过于密集,无法进行高效的路径规划。关键在于在提取过程中或提取后立即应用简化技术,以创建计算上可管理、同时平衡精度和性能的表示。对COM API的依赖(用于详细几何图元)意味着需要强大的互操作包装器。Navisworks模型,特别是大型模型,可能包含数百万个几何图元 27。直接处理所有这些数据进行路径规划是不切实际的,因为它会带来巨大的计算成本和内存消耗 66。
ModelItem.Geometry属性是访问几何数据的入口点 36,但要获取实际的顶点和三角形,必须使用COM API的
InwSimplePrimitivesCB回调函数 44。对于大型模型,这个过程可能会很慢 27。因此,在生成导航图之前,实施细节层次(LOD)或顶点简化 10等数据缩减策略至关重要。包围盒(
BoundingBox3D)56提供了一种轻量级的方法来执行初步的空间查询和粗略的碰撞检测,这可以显著减少所需的详细几何提取数量。
2.3. 语义数据采集:自定义属性和特性
Navisworks允许用户向ModelItem添加自定义属性 68。这些属性组织在
PropertyCategory下,并包含DataProperty对象。属性可以通过显示名称或内部名称进行访问。
自定义属性,如“通道”、“门”和“电梯”,是至关重要的语义输入。这些属性可以映射到路径规划的属性,例如通行性(例如,墙壁不可通行,门在打开时可通行)、速度限制(例如,通道允许高速,门需要减速)或宽度/高度限制。BIM模型提供了丰富的文本信息,可以通过自然语言处理(NLP)进行处理,以增强路径规划 18。
路径规划解决方案的真正智能源于集成语义信息,而不仅仅是原始几何数据。在基本几何碰撞检测中经常被忽视的自定义BIM属性,成为将通用路径规划问题转化为上下文感知物流优化挑战的关键“元数据”。这需要一个健壮的自定义属性数据模式。虽然几何定义了物理空间,但语义信息定义了该空间的含义及其组成部分。Navisworks允许定义和访问自定义属性 68。这些属性可以对元素进行分类(例如,“通道”作为可通行路径,“门”作为条件通行点,“电梯”作为垂直运输节点)。然后,这些语义数据用于在导航图中分配成本或约束。例如,一扇“门”可能具有“可开启”或“宽度”属性,这直接影响路径规划决策。能够读取
ModelItem的所有属性对于此功能至关重要。Search API可以根据这些自定义属性筛选项目,从而高效地收集相关语义数据 38。正是这个语义层,将简单的最短路径与
最优物流路径区分开来。
表2.1:Navisworks API模型数据提取的关键接口
| 类名 | 主要方法/属性 | 用途 | 性能说明 |
|---|---|---|---|
| Application | ActiveDocument | 提供对当前活动Navisworks文档的访问。 | 应用程序的入口点。 |
| Document | Models, CurrentSelection, GetClash() | 管理加载的模型、当前选择和碰撞检测功能。 | GetClash()用于访问碰撞检测数据。 |
| Model | RootItem, Children, Descendants | 表示加载到文档中的单个模型文件,提供对模型项层次结构的访问。 | RootItem是模型层次结构的根节点。 |
| ModelItem | Geometry, BoundingBox(), PropertyCategories, FindFirstGeometry() | 表示模型层次结构中的单个项目,对应于选择树中的元素。 | Geometry属性提供几何访问,BoundingBox()用于获取空间范围。 |
| ModelGeometry | PrimitiveTypes, IsSolid | 表示模型中的几何体。 | PrimitiveTypes指示几何体类型(三角形、线等)。 |
| PropertyCategory | DisplayName, Name, Properties | 表示模型项的属性类别(例如,“项目”、“实体句柄”、“自定义”)。 | 可通过显示名称或内部名称查找。 |
| DataProperty | DisplayName, Name, Value, DataType | 表示属性类别中的单个属性及其值。 | Value可以是字符串、数字、日期等。 |
| Search | Selection, SearchConditions, FindAll() | 用于根据指定条件查找ModelItem。 | FindAll()在原生代码中执行,比LINQ快,适用于大规模筛选 38。 |
| BoundingBox3D | Min, Max, Center, Intersects() | 表示三维空间中的轴对齐包围盒。 | 用于快速、粗略的空间查询和碰撞预检查 56。 |
| InwSimplePrimitivesCB (COM) | Line(), Point(), Triangle() | 回调接口,用于从几何体中提取原始图元(顶点、线、三角形)。 | 需通过COM互操作访问,返回LCS坐标,需转换为WCS 44。 |
| ComBridge (COM Interop) | State, ToInwOaPath() | .NET与COM API之间的桥接,用于访问COM对象。 | 允许在.NET插件中利用COM特有功能。 |
3. 空间简化与导航图生成
3.1. 复杂三维BIM环境中的路径规划挑战
BIM模型虽然数据丰富,但由于其几何复杂性和潜在的不准确性,并不直接适用于路径规划。对大型模型进行路径规划面临多重挑战,包括复杂的几何结构、狭窄的通道和多层建筑布局 66。直接在原始网格数据上执行路径搜索计算成本极高,甚至可能导致内存溢出 66。
机器人路径规划的核心概念是配置空间(C-space)66。C-space表示机器人所有可能的位姿(位置和方向)集合,并将机器人视为一个点,将障碍物膨胀为在C-space中的对应区域。这种抽象使得碰撞检测问题简化为C-space中一个点与膨胀障碍物之间的交叉检查。然而,显式计算C-space的精确形状通常非常困难,因此通常采用采样或离散化的方法。
此外,BIM模型通常反映的是“设计”状态,与实际施工现场的“建成”状态可能存在差异 13。这种差异可能导致模型中的路径在现实中无法通行,或者出现未建模的临时障碍物。因此,路径规划算法需要具备一定的鲁棒性,能够处理环境不确定性,或者需要与实时传感器数据结合以进行动态调整。
鉴于这些挑战,对原始BIM模型进行空间简化,并将其转化为适用于路径规划的导航图(Navigation Graph)是必不可少的步骤。这种简化不仅提高了计算效率,还使得路径规划算法能够更有效地抽象和分析环境。
3.2. 导航图创建的算法设计
为了将大型模型中复杂的几何空间简化为可用于路径规划的导航图,可以采用多种算法,每种算法都有其优点和适用场景。
3.2.1. 基于体素化的方法
体素化是将三维模型离散化为一系列规则网格单元(体素)的过程,每个体素被标记为可通行或不可通行 13。这种方法能够提供统一的空间表示,简化碰撞检测。
为了提高效率和降低内存占用,可以采用高效的体素化技术,例如使用内存高效的游程编码(run-length encoding)来存储体素数据,并采用自适应体素尺寸 82。自适应体素化允许在不同区域使用不同大小的体素,例如在开放空间使用大体素,在狭窄区域使用小体素,从而平衡细节和性能。
在体素化过程中,必须考虑物流组件(例如叉车、机器人)的实际尺寸(高度和宽度)81。通过“膨胀”障碍物,即在障碍物周围增加一个缓冲区,可以确保计算出的路径能够容纳组件的物理尺寸。例如,对于桌子下方或狭小空间,障碍物表面可以向下扩展;对于狭窄的间隙,障碍物可以水平扩展以防止组件通过 82。此外,为了允许组件在楼梯、坡道等垂直结构上移动,可以先将实体障碍物在Z轴正方向上减小一个体素,再创建“虚拟障碍物”以防止在不应通行区域(如过陡的坡度或横梁上方)行驶 82。
体素化提供了一种鲁棒的方式来表示三维空间,尤其适用于复杂、杂乱的环境以及处理组件尺寸。然而,其缺点是可能产生“不自然”的路径,如果不对路径进行平滑处理,并且可能占用大量内存。自适应体素化是平衡细节和性能的关键技术。
3.2.2. 导航网格(NavMesh)生成
导航网格(NavMesh)是一种将可步行区域表示为一组凸多边形(通常是三角形)的抽象数据结构 86。在单个凸多边形内部,路径规划可以简单地通过直线完成。在多边形之间,则通过图搜索算法(如A*)进行路径查找 87。这种方法在开放空间中比密集体素网格更高效,因为它只表示可通行区域,而不是整个空间。
NavMesh的生成可以采用多种算法,包括Delaunay三角剖分和基于增长的方法 80。Delaunay三角剖分通过连接顶点生成一系列三角形,以最大化平均最小内角,从而提供良好的覆盖范围 90。基于增长的方法则通过在空间中“播种”几何体,然后让其扩展直到遇到障碍物,再将接触的几何体连接起来形成NavMesh 90。
NavMesh在处理多层结构(如楼梯、坡道和电梯)时面临挑战 87。通常需要额外的连接信息来表示这些垂直过渡。NavMesh通常是静态的 87,这意味着对于动态环境,可能需要重新生成或采用混合方法来适应变化。NavMeshes能够提供更接近人类直觉的路径表示,并且在开放区域通常比密集体素网格更节省内存。然而,从复杂的BIM几何体中精确生成NavMesh以及处理垂直过渡是其主要挑战。
3.2.3. 路点图(Waypoint Graph)构建
路点图通过在环境中的关键位置(如门口、交叉口、开放空间)放置节点(路点),并根据这些路点之间的视线可达性建立连接(边)来构建 78。如果两个路点之间可以画出一条不与任何障碍物相交的直线,则认为它们之间存在有效连接 78。
由于连接所有可能的路点($O(n^2)$复杂度)计算成本很高,因此可以利用空间分区数据结构(如八叉树或四叉树)来提高效率 78。这些数据结构能够快速识别出与潜在连接相关的障碍物,从而高效地执行线-三角形交叉测试。此外,稀疏化技术可以进一步降低内存使用和遍历成本。例如,如果一个新连接与现有连接方向相似,则只保留成本较低(距离最短)的连接 78。
路点图的优点是简单灵活,尤其适用于大型稀疏环境。路径的质量在很大程度上取决于路点的智能放置以及高效的视线检查,这可以通过空间数据结构和GPU加速来完成。
3.3. 插件实现策略用于图生成
在Navisworks中实现导航图生成功能,需要选择合适的插件类型并有效管理计算负载。
Navisworks插件可以是简单的AddInPlugin,也可以是具有自定义用户界面的DockPanePlugin 30。对于涉及复杂用户交互和显示图生成参数的场景,
DockPanePlugin通常是更合适的选择,因为它允许创建自定义的可停靠窗口,提供更丰富的用户体验。
图生成,尤其是对于大型BIM模型,可能是一个耗时的计算过程 10。为了避免Navisworks主界面的冻结,保持用户界面的响应性,将图生成的核心计算任务卸载到后台线程或外部进程至关重要。然而,需要注意的是,Navisworks API通常不支持从非主线程直接进行模型操作 49。这意味着,如果核心计算在后台线程进行,其结果必须通过适当的同步机制(例如,使用
Application.Invoke或事件回调)传递回主UI线程,以便在Navisworks模型中进行更新或可视化。或者,可以将计算密集型任务完全封装在独立的外部进程中,并通过进程间通信(IPC)将结果传递给Navisworks插件。这种分离计算的方法能够有效利用多核处理器资源,并确保Navisworks应用程序的流畅运行。
4. 最优路径搜索算法与约束集成
4.1. 路径搜索算法的选择:A* vs. Dijkstra
路径搜索算法是自动化路径规划的核心。A*和Dijkstra是两种广泛使用的算法,它们在寻路领域各有优劣。
Dijkstra算法是一种单源最短路径算法,它能够找到从起始节点到图中所有其他节点的最短路径 15。它通过迭代地选择距离源节点最近的未访问节点来扩展搜索范围,并更新其邻居的距离值。Dijkstra算法在边权重非负的情况下,能够保证找到最优路径 99。其搜索过程是均匀向外扩散的,类似于广度优先搜索。
A*算法是一种启发式搜索算法,它结合了Dijkstra算法的优点和启发式函数(heuristic function)来提高效率 15。启发式函数
h(n)估计从当前节点n到目标节点的成本,从而引导搜索向目标方向进行。A*算法的评估函数f(n) = g(n) + h(n),其中g(n)是从起始节点到当前节点n的实际成本。如果启发式函数是可采纳的(admissible),即它从不高估到达目标的实际成本,那么A*算法能够保证找到最优路径 101。当启发式函数为零时,A*算法等同于Dijkstra算法 101。
对于大型导航图,A*算法通常是首选,因为其启发式函数能够显著剪枝搜索空间,从而在保证最优性的前提下,实现更快的搜索速度 99。Dijkstra算法虽然也能找到最短路径,但它会探索所有可能的路径,对于大型图而言效率较低。因此,对于BIM环境中的物流路径规划,A*算法因其效率和最优性保证而成为更合适的选择。
4.2. 定制成本函数用于物流优化
路径规划的真正价值在于能够根据实际物流运营参数定制成本函数。这使得路径规划超越了简单的最短距离计算,能够生成考虑时间、安全和移动物体物理限制的“最优”路径。
- 通行性(Passability):环境中不可通行的区域(如墙壁、固定设备或结构件)应被赋予极高的成本(通常视为无限大),以确保路径规划算法完全避开这些区域 15。在导航图构建阶段,这些区域的节点或边可以直接从图中移除,或者在成本函数中体现为不可逾越的障碍。
- 速度限制(Speed Limits):不同的区域或路径段可能具有不同的速度限制,这直接影响通过该区域所需的时间。例如,在宽敞的“通道”中,物流组件可以高速移动,对应的边成本较低;而在“门”口或狭窄区域,速度需要降低,相应的边成本会增加 111。这些速度限制可以根据BIM模型中的语义属性(例如,房间类型、通道宽度)进行预设,也可以根据实时交通状况或安全警报进行动态调整。在成本函数中,可以将时间作为成本度量,即成本 = 距离 / 速度。
- 宽度/高度限制(Width/Height Constraints):物流组件(如叉车、起重机)具有特定的物理尺寸。路径规划必须确保所选路径能够容纳组件的宽度和高度,避免其在狭窄或低矮区域卡住或碰撞 108。这些限制通常在导航图生成阶段(如体素化或NavMesh烘焙)通过膨胀障碍物或裁剪不可通行区域来处理。但在路径搜索阶段,也可以通过为不满足尺寸要求的路径段赋予惩罚性成本,或直接将其从可行路径中排除。
- 实时数据动态调整成本:为了应对施工现场的动态性,路径成本函数应能够根据实时数据进行动态调整 18。例如,如果某个区域因临时施工活动而变得拥堵或危险,其对应的路径成本可以临时增加,从而引导物流组件避开该区域。BIM模型中的语义信息(如“危险区域”属性)可以与实时传感器数据(如RFID、摄像头)结合,动态调整路径成本,以优先考虑安全而非最短距离 18。
通过定制成本函数,路径规划系统能够生成真正意义上的“最优”物流路径,这些路径不仅考虑了距离,还综合了时间、安全、通行性以及组件的物理限制等多种因素。
4.3. 多启发式A* (MHA*) 实现鲁棒性和适应性
对于像施工现场这样复杂且动态的环境,单一的启发式函数可能不足以应对所有情况。多启发式A* (MHA*) 算法提供了一种更鲁棒的解决方案,它通过结合多种启发式函数来平衡全局效率和局部适应性。
MHA*算法允许集成不同的启发式函数。例如,可以结合欧几里得距离作为可采纳启发式函数(确保路径的最优性),以及由人工势场(Artificial Potential Fields, APF)生成的、可能不可采纳的启发式函数 13。APF通过在障碍物周围创建排斥力场并在目标点创建吸引力场来引导路径,从而实现局部避障和安全裕度 75。
BIM模型中嵌入的文本信息(例如,特定区域或对象被标记为“危险区域”)可以通过自然语言处理(NLP)进行分析,并用于动态调整APF的强度和范围 18。例如,如果某个区域被语义标记为高风险,其排斥势场会增强,从而在路径规划中优先避开该区域,即使这可能导致路径稍微变长。这种方法使得路径规划能够感知上下文,并根据环境的动态变化和风险水平进行自适应调整,从而提高了机器人在复杂环境中的安全性和可信度 18。
表4.1:A*与Dijkstra在BIM路径规划中的比较分析
| 特征 | Dijkstra算法 | A*算法 |
|---|---|---|
| 算法类型 | 无信息搜索(Uninformed Search)/贪婪算法 16 | 有信息搜索(Informed Search)/最佳优先搜索 15 |
| 启发式函数使用 | 无 16 | 使用启发式函数h(n)估计从当前节点到目标的成本 99 |
| 最优性保证 | 保证找到最短路径(前提是边权重非负)99 | 如果启发式函数可采纳(从不高估实际成本),则保证找到最短路径 101 |
| 效率/复杂度 | 对于邻接矩阵表示为O(V2),使用优先队列可达O((V+E)logV) 100。搜索均匀扩散 99。 | 最坏情况下与Dijkstra相似,但通过良好启发式函数可显著提高效率,剪枝搜索空间 99。搜索有方向性 99。 |
| 典型应用场景 | 网络路由协议,查找所有节点的最短路径 16。 | 导航系统、游戏AI寻路、机器人路径规划 15。 |
| BIM/物流应用中的优势 | 适用于需要探索所有可行路径的场景,或当缺乏有效启发式函数时。 | 更适合大型BIM模型中的目标导向路径规划,通过启发式函数显著加速搜索,同时保证最优性 106。 |
表4.2:定制成本函数参数及其对路径优化的影响
| 参数 | 数据来源 | 成本调整逻辑 | 对路径的影响 |
|---|---|---|---|
| 通行性 | BIM几何体(墙壁、固定设备)、自定义属性(例如,“不可通行区域”)78 | 对不可通行区域的边赋予无限大成本。 | 确保路径避开物理障碍物。 |
| 速度限制 | 自定义属性(例如,“通道”、“门”的速度限制)、实时交通数据 111 | 将时间作为成本度量,即成本 = 距离 / 速度。速度越低,成本越高。 | 引导路径通过更快的区域,或在需要时减速。 |
| 宽度/高度限制 | BIM几何体(狭窄通道、低矮空间)、组件物理尺寸、自定义属性 108 | 在图生成阶段(体素膨胀、NavMesh烘焙)排除不可通行区域;或对不满足尺寸要求的边赋予惩罚性成本。 | 确保路径能够容纳物流组件的物理尺寸,避免卡滞或碰撞。 |
| 安全区域/危险区域 | 自定义属性(例如,“危险区域”)、实时传感器数据、NLP分析BIM文本信息 18 | 引入人工势场(APF),对危险区域的边赋予额外惩罚性成本,该成本可根据风险等级动态调整。 | 引导路径避开危险区域,优先考虑安全性。 |
| 坡度/高差 | BIM地形数据、结构几何体 82 | 对上坡或下坡(取决于组件类型)赋予更高成本,或限制最大坡度。 | 引导路径选择更平缓的坡度,优化组件的移动效率。 |
| 路径平滑度 | 路径转弯次数、急转弯角度 85 | 对频繁或急剧的转弯赋予额外成本。 | 生成更平滑、更自然的路径,减少组件的机械磨损和能量消耗。 |
5. 物流组件动画与实时碰撞检测
5.1. 物流组件沿计算路径的动画
在Navisworks视口中对物流组件进行动画,需要将计算出的路径数据(一系列三维点)转化为模型项的变换(位置和旋转)26。Navisworks API提供了对
ModelItem变换的程序化控制,包括位置(Position)和旋转(Rotation)26。
路径规划算法通常输出一系列离散的三维路点。为了实现平滑的动画效果,这些离散点需要通过插值生成连续的运动轨迹。例如,可以使用样条曲线(如Catmull-Rom样条)来平滑连接路点,从而生成更自然的运动路径 123。然后,可以将这些轨迹点转化为
ModelItem的变换关键帧。Navisworks内置的Animator工具支持基于关键帧的动画 26。虽然
SavedViewpointAnimation主要用于视点动画,但其通过关键帧插值实现平滑过渡的原理,同样适用于物体动画。
实现动画的关键在于将计算出的路径点序列转化为Navisworks可识别和执行的变换序列。这可以通过在每个时间步更新ModelItem的Transform属性来实现。为了确保动画的真实感,动画的播放速度应与路径规划中计算出的行进时间同步,即考虑了速度限制和障碍物影响后的实际行进时间。
5.2. 动画过程中的实时碰撞检测
在物流模拟中,实时碰撞检测对于确保操作安全和效率至关重要。Navisworks的碰撞检测(Clash Detective)功能可以与动画相结合,实现对移动物体之间或移动物体与静态环境之间冲突的自动检查 26。
Navisworks的Clash Detective是一个强大的冲突检测工具 6,可以通过API进行程序化访问和控制 27。通过将动画场景与碰撞检测测试关联起来,可以实现基于时间的碰撞检查。这意味着Navisworks可以在动画播放的特定时间步(例如,每0.1秒)自动运行碰撞测试,以检测移动组件与环境或其他移动组件之间的任何干涉 26。
需要区分离散碰撞检测和连续碰撞检测 141。Navisworks内置的碰撞检测通常是离散的,即在动画的预设时间间隔内进行检查。对于慢速移动的物体,这种离散检查通常足够;但对于高速移动的物体,可能会出现“穿透”现象,即物体在两个检查帧之间穿过障碍物而未被检测到 142。在这种情况下,可能需要更复杂的连续碰撞检测算法,或者增加碰撞检测的频率(即减小时间步长)142。
一旦检测到碰撞,系统应立即采取响应策略,例如:
- 暂停动画:在碰撞发生时立即停止动画播放,以便用户检查和分析冲突 26。
- 高亮显示冲突对象:通过改变冲突对象的颜色或透明度,使其在视口中突出显示 38。
- 触发警报:向用户发出视觉或听觉警报,指示碰撞的发生。
- 重新规划路径:在某些情况下,如果碰撞是可避免的,系统可以触发路径的重新计算,以寻找一条新的无冲突路径 26。
表5.1:Navisworks API动画与碰撞检测类
| 类名 | 主要方法/属性 | 用途 |
|---|---|---|
| ModelItem | OverridePermanentTransform(), Position, Rotation | 表示模型中的单个项目,可对其进行位置和旋转变换以实现动画。OverridePermanentTransform用于程序化控制物体移动 26。 |
| Transform3D | Translation, Rotation, Scale | 表示三维变换,包含平移、旋转和缩放分量。用于定义ModelItem的动画状态。 |
| Animator (概念性) | Create Object Animations, Add Interactivity | Navisworks内置的动画工具,用于创建关键帧动画和交互脚本。API可与其功能进行概念性集成 26。 |
| SavedViewpointAnimation | Children (包含SavedViewpoint作为关键帧) | 用于存储和播放视点动画,其关键帧插值原理可借鉴于物体动画平滑 124。 |
| DocumentClash | TestsData, GetClash() | 提供对Navisworks碰撞检测功能的访问。 |
| ClashTest | SelectionA, SelectionB, TestType, Tolerance, Children (包含ClashResult) | 定义单个碰撞测试的配置,包括选择集、测试类型和容差。其Children属性包含碰撞结果 28。 |
| ClashResult | Status, Selection1, Selection2, DisplayName | 表示单个碰撞检测结果,包含冲突状态、涉及的物体和描述。 |
| DocumentClashTests | Tests, TestsRunTest(), TestsEditResultStatus() | 管理碰撞测试的集合,提供运行测试和修改结果状态的方法 44。 |
| ModelItemCollection | Add(), AddRange(), CopyFrom() | 可读写的ModelItem集合,用于定义碰撞测试的选择集或动画对象集合。 |
6. 路径在Navisworks视口中的三维可视化
6.1. 将计算路径渲染为三维图形
为了直观地展示计算出的路径,需要将其渲染为Navisworks视口中的三维图形。Navisworks API的Graphics类提供了绘制临时三维图元的功能,包括点、线和多段线 27。
路径可以表示为一系列三维点,然后使用Graphics.Polyline3D()方法绘制成一条连续的三维多段线 147。为了增强路径的可读性和视觉效果,可以定制其外观:
- 颜色和透明度:使用Graphics.Color()方法设置路径的颜色和透明度,例如,将路径设置为鲜艳的颜色并带有一定的透明度,使其在模型中清晰可见而不遮挡底层几何体 146。
- 线宽:通过Graphics.LineWidth()设置路径的粗细,使其在复杂模型中更容易被识别 146。
- 动态高亮:在动画播放过程中,可以动态高亮显示当前物流组件所在的路径段,例如改变该段的颜色或增加其亮度,从而清晰指示组件的实时位置和行进方向。这可以通过在OverlayRenderModel或OverlayRenderWindow回调中重新绘制特定路径段来实现 40。
渲染路径时,应使用OverlayRenderModel或OverlayRenderWindow方法 40,这些方法用于绘制叠加图形,它们不会永久修改模型,而是作为临时图形显示在视口上方,非常适合动态路径可视化。
6.2. 路径点自动贴合模型表面
为了确保可视化路径的真实感和准确性,路径点应自动贴合模型表面(例如,地板、坡道)。这避免了路径点悬浮在空中或穿透地面的视觉不一致。
实现路径点贴合模型表面可以通过以下两种主要方法:
- 投影路径点到模型表面:对于每个计算出的路径点,可以将其投影到最近的可通行模型表面上 60。Navisworks API可能提供类似Revit中
Face.Project()或Inventor API中SurfaceBody.LocateUsingPoint()的方法来执行此操作 60。这些方法能够找到一个三维点在指定表面上的最近投影点。 - 利用Navisworks的捕捉功能或自定义射线投射:Navisworks在用户界面中提供了强大的捕捉功能(例如,捕捉到顶点、边、面)163。虽然API中可能没有直接公开这些UI捕捉的精确程序化等效项,但可以通过自定义射线投射(ray-casting)来实现类似功能 38。从路径点向下方投射一条射线,检测与模型表面的第一个交点,该交点即为路径点在表面上的贴合位置。这种方法需要对模型的几何体进行高效的射线-三角形交叉测试,可以利用空间数据结构(如BVH或八叉树)来加速。
6.3. 动态显示与用户交互
有效的路径可视化解决方案需要具备交互性和响应性。路径的动态更新以及直观的用户界面控制,能够增强用户体验并促进分析。
路径可视化应能够实时更新,以反映模拟的进展或参数的变化(例如,速度限制、临时障碍物)172。这意味着当物流组件在动画中移动时,路径的已通过部分可以改变颜色或消失,而未通过部分则保持可见。
为了实现用户对路径规划和动画的控制,可以开发自定义的用户界面元素:
- Ribbon按钮:使用CommandHandlerPlugin可以创建自定义的Ribbon选项卡和按钮 175。这些按钮可以触发路径计算、动画播放/暂停、重置视图或导出结果等操作。
- 可停靠面板:通过DockPanePlugin可以创建自定义的可停靠窗口 46。这些面板可以用于输入路径的起点/终点、调整物流组件的尺寸、设置速度限制或定义其他物流相关属性,并实时显示路径计算的状态和结果。
这些UI元素将作为用户与路径规划系统交互的主要接口,提供直观的控制和反馈,从而提升整个解决方案的可用性和分析价值。
表6.1:Navisworks Graphics API用于路径可视化
| 类名 | 主要方法/属性 | 用途 | 使用注意事项 |
|---|---|---|---|
| Graphics | Polyline3D(Point3DList points), Line(Point3D start, Point3D end) | 用于在Navisworks视口中绘制三维多段线和线段,以表示路径。 | 绘制的图形是临时的,通常用于叠加显示,不会永久保存到模型中。 |
| Color(Color color, double alpha), LineWidth(double width) | 设置绘制图形的颜色、透明度和线宽。 | Color参数接受Autodesk.Navisworks.Api.Color对象,alpha控制透明度(0.0-1.0)。 | |
| BeginModelContext(), EndModelContext() | 定义一个模型上下文,在此上下文中绘制的图形使用三维模型空间坐标。 | 适用于需要与模型几何体精确对齐的图形。 | |
| BeginWindowContext(), EndWindowContext() | 定义一个窗口上下文,在此上下文中绘制的图形使用二维窗口空间坐标。 | 适用于绘制屏幕叠加UI元素或与视口大小相关的图形。 | |
| OverlayRenderModel(View view, Graphics graphics) (在ToolPlugin/RenderPlugin中重写) | 在模型叠加缓冲区中渲染图形,通常用于临时高亮或绘制。 | 确保在适当的插件生命周期方法中调用,以实现动态更新。 | |
| Point3D | X, Y, Z | 表示三维空间中的一个点,用于定义路径的顶点。 | Navisworks API中的基本三维点结构。 |
| Point3DList | Add(Point3D point) | Point3D对象的集合,用于传递给Polyline3D方法绘制多段线。 | 方便地存储和管理路径点序列。 |
| Color | FromByteRGB(byte r, byte g, byte b), FromARGB(byte a, byte r, byte g, byte b) | 定义图形的颜色和透明度。 | 可以通过RGB或ARGB值创建颜色对象。 |
| View | PickItemFromPoint(int x, int y) | 根据屏幕坐标拾取模型中的项目,返回PickItemResult,其中包含拾取点在WCS中的坐标。 | 可用于实现路径点到模型表面的捕捉,或用户交互式选择路径点 38。 |
| PickItemResult | Point, ModelItem | 包含PickItemFromPoint方法返回的拾取结果,包括拾取点和拾取到的模型项。 | Point属性提供拾取点在世界坐标系中的精确位置。 |
7. 结论与未来方向
本报告详细阐述了在Autodesk Navisworks中实现自动化物流路径规划和模拟的综合方案。该方案通过Navisworks API高效提取BIM模型的几何和语义信息,利用体素化、NavMesh或路点图等技术简化复杂的3D空间,并采用A*或MHA*算法计算最优路径。通过定制成本函数,方案能够整合物流相关的预设属性(如通行性、速度限制、宽度限制)和实时数据,从而生成考虑多重约束的智能路径。此外,方案还包括物流组件沿计算路径的程序化动画控制、基于Navisworks Clash Detective的实时碰撞检测,以及路径的动态三维可视化,包括路径点自动贴合模型表面和路径的动态高亮显示。该系统旨在显著提升物流规划、施工模拟和设施管理中的效率、安全性和决策水平。
未来的研究方向可以进一步扩展本解决方案的能力和应用范围:
- 更高级的物理模拟与动态环境适应:当前方案主要依赖于Navisworks的碰撞检测功能,这通常是离散的。未来可以探索集成更高级的物理引擎,实现连续碰撞检测和更真实的物理交互,尤其是在高速或复杂动态场景中 141。此外,结合实时传感器数据(如激光扫描、RFID)和机器学习(ML)算法,可以实现对“建成”环境的实时更新和动态障碍物的识别,从而使路径规划更具适应性 13。
- 多智能体路径规划(Multi-Agent Pathfinding, MAPF):目前的路径规划通常针对单个物流组件。在复杂的施工现场或仓库中,可能有多台物流组件同时运行。未来的研究可以聚焦于MAPF算法,以协调多个智能体的路径,避免相互碰撞和死锁,从而优化整体物流效率 66。
- 与外部系统集成:将Navisworks路径规划解决方案与企业级系统(如仓库管理系统WMS、物联网IoT平台、机器人操作系统ROS)进行更深层次的集成,可以实现数据流的自动化和端到端的物流管理 2。例如,从WMS获取任务指令,通过Navisworks规划路径,将指令发送给机器人执行,并将实时状态反馈回BIM模型。
- 用户体验与交互的增强:进一步优化用户界面,提供更直观的路径编辑、模拟参数调整和结果分析工具。例如,利用虚拟现实(VR)或增强现实(AR)技术,提供沉浸式的路径审查和模拟体验 12。
通过持续的研发和创新,基于Navisworks的自动化路径规划解决方案有望在提升建筑和物流行业的智能化水平方面发挥关键作用。
引用的著作
- Path Planning for Construction Robot Based on the Improved A* Algorithm and Building Information Modeling - MDPI, 访问时间为 八月 11, 2025, https://www.mdpi.com/2075-5309/15/5/719
- Safe Pathfinding in BIM Worlds Utilizing Dynamic MHA* Algorithms using APF and Natural Language Processing - arXiv, 访问时间为 八月 11, 2025, https://arxiv.org/html/2411.15371v2
- (PDF) Safe and trustworthy robot pathfinding with BIM, MHA*, and NLP - ResearchGate, 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/394167025_Safe_and_trustworthy_robot_pathfinding_with_BIM_MHA_and_NLP
- An Extension of BIM Using AI: a Multi Working-Machines Pathfinding Solution, 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/354427408_An_Extension_of_BIM_Using_AI_a_Multi_Working-Machines_Pathfinding_Solution
- How To Use BIM Clash Detection To Streamline Construction Projects - Matterport, 访问时间为 八月 11, 2025, https://matterport.com/blog/bim-clash-detection
- Leveraging BIM for Efficient Clash Detection in Construction - Gsource Technologies, 访问时间为 八月 11, 2025, https://www.gsourcedata.com/leveraging-bim-for-efficient-clash-detection-in-construction/
- Advanced Visualization with BIM | www.usa.skanska.com, 访问时间为 八月 11, 2025, https://www.usa.skanska.com/what-we-deliver/services/innovation/advanced-visualization-with-bim/
- BIM visualization for construction sites - The new era - BIMCommunity, 访问时间为 八月 11, 2025, https://www.bimcommunity.com/community/bim-visualization-for-construction-sites-the-new-era/
- All About Clash Detection with Navisworks - United-BIM, 访问时间为 八月 11, 2025, https://www.united-bim.com/get-to-know-all-about-clash-detection-with-navisworks/
- The Comprehensive Guide to Autodesk Navisworks - Multisoft Virtual Academy, 访问时间为 八月 11, 2025, https://www.multisoftvirtualacademy.com/blog/the-comprehensive-guide-to-autodesk-navisworks
- Navisworks Best Practices & Advanced Techniques in 2025 - Novatr, 访问时间为 八月 11, 2025, https://www.novatr.com/blog/navisworks-best-practices
- How NVIDIA Omniverse Is Revolutionizing Building Development and Management, 访问时间为 八月 11, 2025, https://goto.archi/blog/post/nvidia-omniverse-is-revolutionizing-building-development-and-management
- Bayesian BIM-Guided Construction Robot Navigation with NLP Safety Prompts in Dynamic Environments - arXiv, 访问时间为 八月 11, 2025, https://arxiv.org/html/2501.17437v1
- Path Planning - MATLAB & Simulink - MathWorks, 访问时间为 八月 11, 2025, https://www.mathworks.com/discovery/path-planning.html
- Pathfinding Algorithms - Meegle, 访问时间为 八月 11, 2025, https://www.meegle.com/en_us/topics/algorithm/pathfinding-algorithms
- A Systematic Review and Analysis of Intelligence-Based Pathfinding Algorithms in the Field of Video Games - MDPI, 访问时间为 八月 11, 2025, https://www.mdpi.com/2076-3417/12/11/5499
- Pathfinding algorithms : the four Pillars. | by Hybesis - H.urna | Medium, 访问时间为 八月 11, 2025, https://medium.com/@urna.hybesis/pathfinding-algorithms-the-four-pillars-1ebad85d4c6b
- Semantic Optimal Robot Navigation Using Building Information on Construction Sites, 访问时间为 八月 11, 2025, https://www.iaarc.org/publications/2021_proceedings_of_the_38th_isarc/semantic_optimal_robot_navigation_using_building_information_on_construction_sites.html
- BIM Clash Detection: Process, Benefits, Best Practices - Hitech CADD Services, 访问时间为 八月 11, 2025, https://www.hitechcaddservices.com/news/bim-clash-detection-process-advantages-and-best-practices/
- Clash Detection — Omniverse Extensions - NVIDIA Omniverse, 访问时间为 八月 11, 2025, https://docs.omniverse.nvidia.com/extensions/latest/ext_clash-detection.html
- BIM Clash Detection in Construction Guide - iSCANO, 访问时间为 八月 11, 2025, https://iscano.com/real-world-applications-laser-scanning-lidar/clash-detection-construction/
- 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/
- 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 Help | Animate Objects | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-DD38DF54-B0A6-4B80-86D3-D7C70584CCE7
- Navisworks - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/
- Navisworks · Developer Guide - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/87317537-2911-4c08-b492-6496c82b3ed0.htm
- Navisworks .NET: AddInPlugin and Attributes (PluginAttribute & AddInPluginAttribute), 访问时间为 八月 11, 2025, https://spiderinnet.typepad.com/blog/2013/10/navisworks-net-addinplugin-and-attributes-pluginattribute-addinpluginattribute.html
- Navisworks · AddInPlugin Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_Plugins_AddInPlugin.htm
- Plugins and Add-ons for Navisworks - Autodesk App Store, 访问时间为 八月 11, 2025, https://apps.autodesk.com/navis/en/Home/Index
- Navisworks · Model.Guid Property - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/P_Autodesk_Navisworks_Api_Model_Guid.htm
- Use Navisworks API with WPF Binding Model Hierarchy to Tree View - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2013/04/use-navisworks-api-with-wpf-binding-model-hierarchy-to-tree-view.html
- Navisworks · Selections and Collections of ModelItem - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/87317537-2911-4c08-b492-6496c82b3edb.htm
- Navisworks - Selection Tree Window - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-AF4CFA5C-1455-4444-982A-34FBA2AE4608
- Navisworks · ModelItem Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/T_Autodesk_Navisworks_Api_ModelItem.htm
- Navisworks · ModelItem.Model Property - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/P_Autodesk_Navisworks_Api_ModelItem_Model.htm
- Navisworks .NET API : Find Item - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/05/navisworks-net-api-find-item.html
- 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/4/
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/12/
- Transaction Class - Revit API Docs, 访问时间为 八月 11, 2025, https://www.revitapidocs.com/2017.1/308ebf8d-d96d-4643-cd1d-34fffcea53fd.htm
- Model Derivative API ignores conversionMethod v3 and still uses Navisworks for IFC conversion, resulting in Error Code 5 - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/79719050/model-derivative-api-ignores-conversionmethod-v3-and-still-uses-navisworks-for-i
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/15/
- Get primitive from solid of Navisworks - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/05/get-primitive-from-solid-of-navisworks.html
- Navisworks API : Dockable Pane Plugin – TwentyTwo, 访问时间为 八月 11, 2025, https://twentytwo.space/2022/03/31/navisworks-api-dockable-pane-plugin/
- A Simpler Dockable Panel Sample - The Building Coder, 访问时间为 八月 11, 2025, https://thebuildingcoder.typepad.com/blog/2013/05/a-simpler-dockable-panel-sample.html
- Use Navisworks API with WPF - Create a .NET control application of WPF - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2013/03/use-navisworks-api-with-wpf-create-a-net-control-application-of-wpf.html
- Multi-threading with Revit - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/06/multi-threading-with-revit.html
- Revit API Documentation - RVTDocs.com, 访问时间为 八月 11, 2025, https://rvtdocs.com/2026/whatsnew?utm_source=youtube&utm_medium=video&utm_campaign=tutorial&utm_content=whats_new_in_API_2026
- 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 · ModelItem.Geometry Property - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/P_Autodesk_Navisworks_Api_ModelItem_Geometry.htm
- Navisworks · ModelGeometry Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_ModelGeometry.htm
- Section View Geometry - The Building Coder - TypePad, 访问时间为 八月 11, 2025, https://thebuildingcoder.typepad.com/blog/2011/08/section-view-geometry.html
- GetVertices Method - Revit API Docs, 访问时间为 八月 11, 2025, https://www.revitapidocs.com/2017.1/d9517837-8141-235b-f6a1-3dc3ce053859.htm
- Navisworks · ModelItem.BoundingBox Method - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_ModelItem_BoundingBox.htm
- Navisworks · Document.GetBoundingBox Method - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_Document_GetBoundingBox_1_ea7b1ae4.htm
- Navisworks · BoundingBox3D Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/T_Autodesk_Navisworks_Api_BoundingBox3D.htm
- Navisworks API : Find Intersect and Override Color - TwentyTwo, 访问时间为 八月 11, 2025, https://twentytwo.space/2020/05/16/navisworks-api-find-intersect-and-override-color/
- Navisworks .NET API Properties - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2012/05/navisworks-net-api-properties.html
- Closest Grid Point Intersection to an Object - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2014/01/closest-grid-point-intersection-to-an-object.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
- Optimizing Your Navisworks File - IrisVR, 访问时间为 八月 11, 2025, https://help.irisvr.com/hc/en-us/articles/360036941213-Optimizing-Your-Navisworks-File
- Performance is slow with larger files in Navisworks - Autodesk, 访问时间为 八月 11, 2025, https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Navisworks-2016-performance-is-slow-with-large-files.html
- 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
- Motion planning - Wikipedia, 访问时间为 八月 11, 2025, https://en.wikipedia.org/wiki/Motion_planning
- PATHFINDING ALGORITHMS IN GRAPHS AND APPLICATIONS - Dipòsit Digital UB, 访问时间为 八月 11, 2025, https://diposit.ub.edu/dspace/bitstream/2445/140466/1/memoria.pdf
- Custom properties - BricsCAD BIM - Bricsys Help Center, 访问时间为 八月 11, 2025, https://help.bricsys.com/en-us/document/bricscad-bim/building-data/custom-properties
- Reviewing custom property sets - Spectra Geospatial Help Portal, 访问时间为 八月 11, 2025, https://help.spectrageospatial.com/origin/latest/en/map-bim-property-sets.htm
- Custom Properties - Navisworks - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-23C2693B-E459-43CD-A14A-F82A3F959189
- 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
- Autodesk Navisworks 2026 - New Features - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=dOy91ZB_3-A
- 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
- Navisworks API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/navisworks/page/2/
-
Literature Review - Navisworks-Net-Plugin-Property-Database-Example/NetPluginPropertyDatabaseExample/Class1.cs at master - GitHub, 访问时间为 八月 11, 2025, https://github.com/xiaodongliang/Navisworks-Net-Plugin-Property-Database-Example/blob/master/NetPluginPropertyDatabaseExample/Class1.cs
- Path planning in three-dimensional space based on butterfly optimization algorithm - PMC, 访问时间为 八月 11, 2025, https://pmc.ncbi.nlm.nih.gov/articles/PMC11303821/
- Automated generation of waypoints - DiVA portal, 访问时间为 八月 11, 2025, https://www.diva-portal.org/smash/get/diva2:1333581/FULLTEXT02.pdf
- Pathfinding in a 3D Space with obstacles : r/Unity3D - Reddit, 访问时间为 八月 11, 2025, https://www.reddit.com/r/Unity3D/comments/1b2y4hv/pathfinding_in_a_3d_space_with_obstacles/
- Generation of navigation graphs for indoor space - SciSpace, 访问时间为 八月 11, 2025, https://scispace.com/pdf/generation-of-navigation-graphs-for-indoor-space-t2xvg3m2bf.pdf
- Pathfinding method for an indoor drone based on a BIM-semantic model - ResearchGate, 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/361971292_Pathfinding_method_for_an_indoor_drone_based_on_a_BIM-semantic_model
- ALGORITHMS FOR VOXEL-BASED ARCHITECTURAL SPACE ..., 访问时间为 八月 11, 2025, https://www.research.autodesk.com/app/uploads/2023/06/Algorithms-for-VASA.pdf
- BeliefMapNav: 3D Voxel-Based Belief Map for Zero-Shot Object Navigation - arXiv, 访问时间为 八月 11, 2025, https://arxiv.org/html/2506.06487v1
- (PDF) BeliefMapNav: 3D Voxel-Based Belief Map for Zero-Shot Object Navigation, 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/392530510_BeliefMapNav_3D_Voxel-Based_Belief_Map_for_Zero-Shot_Object_Navigation
- Voxel path finding - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=bvMnVSBj3Ns
- Pathfinding in Computer Games - Arrow@TU Dublin, 访问时间为 八月 11, 2025, https://arrow.tudublin.ie/cgi/viewcontent.cgi?article=1063&context=itbj
- Navigation mesh - Wikipedia, 访问时间为 八月 11, 2025, https://en.wikipedia.org/wiki/Navigation_mesh
- Creating a Custom NavMesh. Toward the end of my class on Game… | by Robert Jones, 访问时间为 八月 11, 2025, https://medium.com/@RJones0421/creating-a-custom-navmesh-b5c75b2fe5d2
- Problems with the generation of NavMeshes in IFC based Imports - Unreal Engine Forums, 访问时间为 八月 11, 2025, https://forums.unrealengine.com/t/problems-with-the-generation-of-navmeshes-in-ifc-based-imports/539346
- View of Full 3D Spatial Decomposition for the Generation of Navigation Meshes, 访问时间为 八月 11, 2025, https://ojs.aaai.org/index.php/AIIDE/article/view/12376/12235
- How to make navigation meshes for pathfinding? - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/27896021/how-to-make-navigation-meshes-for-pathfinding
- Generating navmesh (3D) from walkable points - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/34668287/generating-navmesh-3d-from-walkable-points
- How do NavMeshes work? : r/gamedev - Reddit, 访问时间为 八月 11, 2025, https://www.reddit.com/r/gamedev/comments/195svf/how_do_navmeshes_work/
- How to Convert a Point Cloud to a 3D Mesh in Python and C++ - MeshLib, 访问时间为 八月 11, 2025, https://meshlib.io/feature/point-cloud-to-mesh/
- waypointTrajectory - Waypoint trajectory generator - MATLAB - MathWorks, 访问时间为 八月 11, 2025, https://www.mathworks.com/help/nav/ref/waypointtrajectory-system-object.html
- GraphNav Map Structure - Spot SDK - Boston Dynamics, 访问时间为 八月 11, 2025, https://dev.bostondynamics.com/docs/concepts/autonomy/graphnav_map_structure.html
- CGAL 6.0.1 - Quadtrees, Octrees, and Orthtrees: User Manual, 访问时间为 八月 11, 2025, https://doc.cgal.org/latest/Orthtree/index.html
- When to use Binary Space Partitioning, Quadtree, Octree? - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/99796/when-to-use-binary-space-partitioning-quadtree-octree
- Dijkstra vs. A* – Pathfinding | Baeldung on Computer Science, 访问时间为 八月 11, 2025, https://www.baeldung.com/cs/dijkstra-vs-a-pathfinding
- Difference Between Dijkstra's Algorithm and A* Search Algorithm - GeeksforGeeks, 访问时间为 八月 11, 2025, https://www.geeksforgeeks.org/dsa/difference-between-dijkstras-algorithm-and-a-search-algorithm/
- algorithm - Difference and advantages between dijkstra & A star - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/13031462/difference-and-advantages-between-dijkstra-a-star
- Can Dijkstra's Algorithm work on a graph with weights of 0? - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/49460439/can-dijkstras-algorithm-work-on-a-graph-with-weights-of-0
- C# Program for Dijkstra's shortest path algorithm | Greedy Algo-7 - GeeksforGeeks, 访问时间为 八月 11, 2025, https://www.geeksforgeeks.org/c-sharp/csharp-program-for-dijkstras-shortest-path-algorithm-greedy-algo-7/
-
OC - A* search algorithm - Wikipedia, 访问时间为 八月 11, 2025, https://en.wikipedia.org/wiki/A*_search_algorithm
- Mastering Pathfinding with A-Star: A Practical Guide and C# Implementation - Medium, 访问时间为 八月 11, 2025, https://medium.com/@hanxuyang0826/mastering-pathfinding-with-a-star-a-practical-guide-and-c-implementation-f76f1643d8c3
- AI | Search Algorithms | A* Search - Codecademy, 访问时间为 八月 11, 2025, https://www.codecademy.com/resources/docs/ai/search-algorithms/a-star-search
- Algorithm: path finding with variable path width - Stack Overflow, 访问时间为 八月 11, 2025, https://stackoverflow.com/questions/28621166/algorithm-path-finding-with-variable-path-width
- A* search algorithm - Rosetta Code, 访问时间为 八月 11, 2025, https://rosettacode.org/wiki/A*_search_algorithm
- EpPathFinding.cs- A Fast Path Finding Algorithm (Jump Point Search) in C# (grid-based), 访问时间为 八月 11, 2025, https://www.codeproject.com/Articles/632424/EpPathFinding-cs-A-Fast-Path-Finding-Algorithm-Jum
- Heuristics - Stanford CS Theory, 访问时间为 八月 11, 2025, http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html
- Pathfinding With Speed Based Turning Restrictions - Game Development Stack Exchange, 访问时间为 八月 11, 2025, https://gamedev.stackexchange.com/questions/178873/pathfinding-with-speed-based-turning-restrictions
- Variable Speed Limits - NHTSA, 访问时间为 八月 11, 2025, https://www.nhtsa.gov/book/countermeasures-that-work/speeding-and-speed-management/countermeasures/legislation-and-licensing/variable-speed-limits
- Dynamic Speed Limits - SafetyCube DSS, 访问时间为 八月 11, 2025, https://www.roadsafety-dss.eu/assets/data/pdf/synopses/Dynamic_speed_limits_30062017.pdf
- (PDF) Optimize the Settings of Variable Speed Limit System to Improve the Performance of Freeway Traffic - ResearchGate, 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/282549917_Optimize_the_Settings_of_Variable_Speed_Limit_System_to_Improve_the_Performance_of_Freeway_Traffic
- Pathfinding - PathPlanner Docs, 访问时间为 八月 11, 2025, https://pathplanner.dev/pplib-pathfinding.html
- A* Pathfinding Project - Arongranberg.com, 访问时间为 八月 11, 2025, https://arongranberg.com/astar/documentation/stable/pathfinding.html
- Movement costs for pathfinders - Stanford CS Theory, 访问时间为 八月 11, 2025, http://theory.stanford.edu/~amitp/GameProgramming/MovementCosts.html
- A* algorithm implementation in C# - CodeProject, 访问时间为 八月 11, 2025, https://www.codeproject.com/Articles/15307/A-algorithm-implementation-in-C-
- 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
- How to: Animate an Object Along a Path (Point Animation) - WPF | Microsoft Learn, 访问时间为 八月 11, 2025, https://learn.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/how-to-animate-an-object-along-a-path-point-animation
- How to move a model in Navisworks - Autodesk, 访问时间为 八月 11, 2025, https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/How-to-move-a-model-in-Navisworks.html
- How To Make An Object Follow A Path In Three.js - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=nwiaqLGAyjo
- Navisworks · SavedViewpointAnimation Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/T_Autodesk_Navisworks_Api_SavedViewpointAnimation.htm
- Navisworks Tutorial - Animating objects - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=9oYrcjxeyWM
- Animating Object Doors in Navisworks: A Step-By-Step Guide | VDCI.edu, 访问时间为 八月 11, 2025, https://vdci.edu/learn/cad/animating-object-doors-in-navisworks
- 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
- How to Use Animation in Navisworks — Part 1 - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=69Dygkw6KcA
- 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
- Implementation of A* - Red Blob Games, 访问时间为 八月 11, 2025, https://www.redblobgames.com/pathfinding/a-star/implementation.html
- Using Motion Animations in Navisworks Clash Detection - Arkance Systems UK, 访问时间为 八月 11, 2025, https://ukcommunity.arkance.world/hc/en-us/articles/21566403706386-Using-Motion-Animations-in-Navisworks-Clash-Detection
- Navisworks - Time-Based and Soft Clash Testing - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-CB255F54-6B5E-4AF4-869D-ED06A0CDF75D
- 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
- (PDF) Investigations into the Use of BIM Technology for Collision ..., 访问时间为 八月 11, 2025, https://www.researchgate.net/publication/393990649_Investigations_into_the_Use_of_BIM_Technology_for_Collision_Detection_in_the_Comprehensive_Layout_of_Building_Electrical_and_Mechanical_Pipelines
- Navisworks API - Create Clash test? : r/bim - Reddit, 访问时间为 八月 11, 2025, https://www.reddit.com/r/bim/comments/1l5494a/navisworks_api_create_clash_test/
- Clash Detective - Navisworks - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/87317537-2911-4c08-b492-6496c82b3ee5.htm
- 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
- 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
- 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
- ApiDocs.co · Navisworks · ClashTest Class, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_Clash_ClashTest.htm
- Collision detection - Wikipedia, 访问时间为 八月 11, 2025, https://en.wikipedia.org/wiki/Collision_detection
- Continuous Collision Detection (Background Information), 访问时间为 八月 11, 2025, https://digitalrune.github.io/DigitalRune-Documentation/html/138fc8fe-c536-40e0-af6b-0fb7e8eb9623.htm
- gamedev.stackexchange.com, 访问时间为 八月 11, 2025, https://gamedev.stackexchange.com/questions/34198/when-to-use-collision-detection-methods#:~:text=Continuous%20vs%20discrete%20determines%20how,time%20that%20collision%20will%20be.
- Real-time Collision Detection with Implicit Objects - DiVA portal, 访问时间为 八月 11, 2025, https://www.diva-portal.org/smash/get/diva2:343820/FULLTEXT01.pdf
- Navisworks - Highlight Clashes - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2025/ENU/?guid=GUID-CE709428-BE16-461C-BA5F-3CA9874EB392
- 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 · Graphics.Polyline3D Method - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/M_Autodesk_Navisworks_Api_Graphics_Polyline3D_1_7dde8a79.htm
- Navisworks · Graphics.Vertex Method - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_Graphics_Vertex_1_067fe20b.htm
- ModelGeometry Members - Navisworks - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/AllMembers_T_Autodesk_Navisworks_Api_ModelGeometry.htm
- Creating a Polyline3d without using Transactions - AutoCAD DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/autocad/2012/06/creating-a-polyline3d-without-using-transactions.html
- Navisworks · Graphics Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/T_Autodesk_Navisworks_Api_Graphics.htm
- Get geometry primitive in Navisworks - Autodesk Community, 访问时间为 八月 11, 2025, https://forums.autodesk.com/t5/navisworks-api/get-geometry-primitive-in-navisworks/td-p/11848882
- Creating Civil 3D TIN Surface from Contours (Polylines) using .NET API - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/infrastructure/2014/01/creating-civil-3d-tin-surface-from-contours-polylines-using-net-api.html
- How to draw lines in Viewport3D? - Microsoft Q&A, 访问时间为 八月 11, 2025, https://learn.microsoft.com/en-us/answers/questions/357742/how-to-draw-lines-in-viewport3d
- How to Build a 3D CAD Viewer in C# from Scratch Using Eyeshot (devDept), 访问时间为 八月 11, 2025, https://blog.prototechsolutions.com/build-a-3d-cad-viewer-in-c-using-eyeshot/
- Navisworks · Graphics.Bitmap Method (Int32, Point2D, UInt32, UInt32, Double) - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/M_Autodesk_Navisworks_Api_Graphics_Bitmap_5_7f9a8f4d.htm
- Side Loading - Manually Installing a Navisworks Plugin | House of BIM, 访问时间为 八月 11, 2025, https://www.houseofbim.com/posts/side-loadingmanually-installing-a-navisworks-plugin/
- Navisworks Help | Draw Links in 3D Mode | Autodesk, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2024/ENU/?guid=GUID-90EC4AF5-2940-45F7-A2B5-7AA41362C4B8
- Determining the Face Tangent at a Picked Point - The Building Coder - TypePad, 访问时间为 八月 11, 2025, https://thebuildingcoder.typepad.com/blog/2015/02/determining-the-face-tangent-at-a-picked-point.html
- Edge or Face by point coordinates - Manufacturing DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/manufacturing/2012/12/edge-or-face-by-point-coordinates.html
- Navisworks · ProjectionResult Class - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2017/T_Autodesk_Navisworks_Api_ProjectionResult.htm
- ProjectWithGuessPoint Method - Revit API Docs, 访问时间为 八月 11, 2025, https://www.revitapidocs.com/2024/db8cc42a-9f34-611a-d9c5-852f3935887f.htm
- How to Use Blender's Snapping Feature (Tutorial) - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=-c0Evpf8V3A
- Snap Mode Toolbox - Bentley Product Documentation, 访问时间为 八月 11, 2025, https://docs.bentley.com/LiveContent/web/Promis.e%20Help-v11/en/SnapMode.html
- Precision Measurement Tips in Navisworks! - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=Cn7ynNcPkXE
- Snapping to an object - Vectorworks, 访问时间为 八月 11, 2025, http://app-help.vectorworks.net/2022/eng/VW2022_Guide/Basic2/Snapping_to_an_object.htm
- Using Ray Casting To Move 3D Objects // OpenGL Tutorial #32 - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=lj5hx6pa_jE
- 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 Point Clouds in Navisworks - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=HPHmsD1kF5U
- ApiDocs.co · Navisworks · View.PickItemFromPoint Method (Int32, Int32, Int32, Boolean), 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/M_Autodesk_Navisworks_Api_View_PickItemFromPoint_4_300d0cd3.htm
- Xiaodong Liang - AEC DevBlog - TypePad, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/xiaodong-liang/page/3/
- 3D viewport layouts in Motion - Apple Support (BY), 访问时间为 八月 11, 2025, https://support.apple.com/en-by/guide/motion/motn17c69bbf/mac
- Display Viewport - Foundry Learn, 访问时间为 八月 11, 2025, https://learn.foundry.com/modo/content/help/pages/modo_interface/viewports/utility/display.html
- Animate the camera—ArcGIS Pro | Documentation, 访问时间为 八月 11, 2025, https://pro.arcgis.com/en/pro-app/3.4/help/mapping/animation/animate-the-camera.htm
- 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 · RibbonLayoutAttribute Constructor - ApiDocs.co, 访问时间为 八月 11, 2025, https://apidocs.co/apps/navisworks/2018/C_Autodesk_Navisworks_Api_Plugins_RibbonLayoutAttribute_ctor_1_362212bd.htm
- What's New in Navisworks 2026 - Autodesk Help, 访问时间为 八月 11, 2025, https://help.autodesk.com/view/NAV/2026/ENU/?guid=Navisworks_Whats_New_2026
- 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
- Add Custom Panel and Button to Built-in Tab of Navisworks Ribbon - AEC DevBlog, 访问时间为 八月 11, 2025, https://adndevblog.typepad.com/aec/2016/01/add-custom-panel-and-button-to-built-in-tab-of-navisworks-ribbon.html
- Dockable Windows - YouTube, 访问时间为 八月 11, 2025, https://www.youtube.com/watch?v=DleiMs0n9Mk
- NVIDIA Omniverse: Modern Collaborative Workflows | Autodesk University, 访问时间为 八月 11, 2025, https://www.autodesk.com/autodesk-university/class/NVIDIA-Omniverse-Modern-Collaborative-Workflows-2021
- 3D-simulation software to optimize factory planning - tarakos GmbH, 访问时间为 八月 11, 2025, https://www.tarakos.de/en/simulation-software.html
- Sim Logistics AB - Flow simulation, 访问时间为 八月 11, 2025, https://www.simlogistics.se/flow-simulation
- Explore DELMIA Digital Manufacturing Solutions - Vias3D, 访问时间为 八月 11, 2025, https://vias3d.com/delmia/
- 3DEXPERIENCE DELMIA Factory Simulation – 3D Virtual Twin - Hawk Ridge Systems, 访问时间为 八月 11, 2025, https://hawkridgesys.com/3dexperience-delmia-factory-simulation
- DELMIAWorks | Dassault Systèmes, 访问时间为 八月 11, 2025, https://www.3ds.com/products/delmia/delmiaworks