NavisworksTransport/IFLOW.md
2025-10-17 14:29:48 +08:00

3.2 KiB
Raw Blame History

NavisworksTransport 插件项目概述

项目简介

NavisworksTransport 是一个用于 Autodesk Navisworks Manage 2026 的插件,专为物流路径规划和动画仿真而设计。它能够帮助用户在复杂的建筑模型中定义物流通道、规划运输路径,并生成动画来模拟设备移动过程,同时进行动态碰撞检测。

技术架构

  • 编程语言: C# 7.3
  • 开发环境: .NET Framework 4.8
  • 主要依赖:
    • Autodesk Navisworks API (2026版本)
    • Roy-T.AStar (路径规划算法)
    • System.Data.SQLite (数据存储)
    • Tomlyn (TOML配置文件解析)
    • geometry4Sharp (3D几何计算)

核心功能模块

1. 物流属性管理

  • 为模型元素分配物流类别属性(如门、电梯、楼梯、通道、障碍物)
  • 批量处理多个选中项目
  • COM API 集成确保属性正确添加

2. 路径规划

  • 手动路径点编辑
  • 自动路径规划 (A*算法)
  • 2.5D网格地图生成
  • 路径优化和分析

3. 动画与仿真

  • 基于路径的动画生成
  • TimeLiner 集成
  • 动态碰撞检测 (Clash Detective集成)

4. 可视化

  • 3D路径点和路线渲染
  • 网格地图可视化
  • 碰撞结果高亮显示

5. 数据管理

  • SQLite数据库存储路径数据
  • TOML配置文件管理系统设置

项目结构

NavisworksTransport/
├── src/
│   ├── Commands/           # 命令模式实现
│   ├── Core/               # 核心业务逻辑
│   │   ├── Animation/      # 动画管理
│   │   ├── Collision/      # 碰撞检测
│   │   ├── Config/         # 配置管理
│   │   ├── Properties/     # 属性管理
│   │   ├── Spatial/        # 空间索引
│   │   └── UIUpdate/       # UI更新管理
│   ├── PathPlanning/       # 路径规划算法
│   ├── UI/                 ├── WPF/        # WPF用户界面
│   └── Utils/              # 工具类
├── doc/                    # 文档
├── packages/               # NuGet包
└── tests/                  # 单元测试

构建与运行

  1. 环境要求:

    • Windows 7 或更高版本
    • Navisworks Manage 2026
    • .NET Framework 4.8
  2. 构建步骤:

    • 使用 Visual Studio 打开 NavisworksTransport.sln
    • 还原 NuGet 包
    • 编译解决方案
  3. 部署:

    • 编译生成 NavisworksTransportPlugin.dll
    • 插件会自动安装到Navisworks插件目录 [Navisworks安装路径]\Plugins\NavisworksTransportPlugin\
    • 重启Navisworks即可使用

开发约定

  • 使用MVVM模式进行UI开发
  • 通过Command模式封装业务逻辑
  • 利用PathPlanningManager作为核心业务逻辑协调器
  • 配置文件使用TOML格式
  • 日志记录使用内置的LogManager
  • 异常处理通过GlobalExceptionHandler统一管理

核心组件说明

  • MainPlugin: 插件入口点,负责初始化和生命周期管理
  • PathPlanningManager: 路径规划核心业务逻辑管理器
  • CategoryAttributeManager: 物流属性管理
  • PathPointRenderPlugin: 3D路径可视化渲染
  • ConfigManager: 系统配置管理
  • UIStateManager: UI状态和线程安全更新管理