核心改进: 1. ExportLayerToNwd专注导出逻辑,不再管理进度条 2. LayerManagementViewModel统一管理批量导出进度条 3. 状态栏只在开始/结束时显示,避免UI刷新同步问题 修改内容: **ModelSplitterManager.cs** - 移除ExportLayerToNwd内的Progress API相关代码 - 移除进度条声明、初始化、更新和清理代码 - 移除用户取消检查(由调用者管理) - 保留核心导出逻辑:隔离、导出、恢复 **LayerManagementViewModel.cs** - 在批量导出循环开始前创建Progress API进度条 - 循环中为每个文件更新进度条描述和百分比 - 显示:"正在导出第 X/Y 个分层:分层名" - 移除循环中的状态栏进度更新(避免UI同步问题) - 只在结束时更新状态栏最终结果 - finally块确保进度条被正确关闭 最终效果: - ✅ 单文件导出:无进度条,快速完成 - ✅ 批量导出:统一的Progress API显示完整进度信息 - ✅ 状态栏:只显示开始/结束提示,不跟踪过程进度 - ✅ 职责清晰:导出逻辑与进度显示分离 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .kiro/specs | ||
| .serena | ||
| .vscode | ||
| doc | ||
| Properties | ||
| src | ||
| UnitTests | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| clean_database.bat | ||
| compile.bat | ||
| config.toml.example | ||
| deploy-plugin.bat | ||
| NavisworksTransport.sln | ||
| NavisworksTransport.UnitTests.csproj | ||
| NavisworksTransportPlugin.csproj | ||
| nuget.exe | ||
| packages.config | ||
| QWEN.md | ||
| README.md | ||
| run-unit-tests.bat | ||
| TestRunner.cs | ||
| VERSION.md | ||
| WARP.md | ||
NavisworksTransport
Navisworks 2017运输冲突检测插件,专用于物流路径规划。
功能特性
已实现功能(第一阶段)
- ✅ 类别属性分配:为模型项目添加物流类别属性(门、电梯、楼梯、通道、障碍物)
- ✅ 批量处理:支持同时为多个选中项目设置属性
- ✅ 用户友好界面:简洁的按钮式对话框
- ✅ COM API集成:使用Navisworks COM API确保属性正确添加
计划功能(后续阶段)
- 🔄 模型分层转换和可见性控制
- 🔄 导航地图构建
- 🔄 A*路径规划算法
- 🔄 动态碰撞检测
- 🔄 动画和时间线集成
- 🔄 DELMIA数据导出
系统要求
- Windows 7 或更高版本
- Navisworks Manage 2017
- .NET Framework 4.6.2
安装说明
- 编译项目生成NavisworksTransportPlugin.dll
- 插件会自动安装到Navisworks插件目录:
[Navisworks安装路径]\Plugins\NavisworksTransportPlugin\ - 重启Navisworks即可在"附加模块"选项卡中找到插件
使用方法
- 在Navisworks中选择要设置属性的模型项目
- 点击"附加模块"选项卡中的"Transport Plugin"
- 在弹出窗口中点击相应的类别按钮
- 在属性面板中查看添加的"物流分类"属性
详细使用说明请参阅:使用说明文档
开发文档
技术架构
NavisworksTransportPlugin/
├── MainPlugin.cs # 插件主类和用户界面
├── LogisticsCategories.cs # 物流类别定义
├── CategoryAttributeManager.cs # COM API封装和属性管理
└── Properties/
└── AssemblyInfo.cs # 程序集信息
版本历史
v1.0 (2025-01-11)
- 实现基础的类别属性分配功能
- 支持5种预定义物流类别
- 提供批量处理能力
- 完整的错误处理和用户反馈
原始需求概述
本插件旨在简化 Navisworks Manage 中移动模型沿确定路径进行物理碰撞或干涉检测的流程。通过自动化 Animator 动画创建、Clash Detective 碰撞测试配置与运行,并提供直观的图形化碰撞结果显示,本插件将大大提高工作效率,并为用户提供一个快速验证施工物流和设备移动可行性的工具。
完整的目标功能包括:
- 在 Navisworks Ribbon 界面添加自定义按钮
- 用户选择一个要移动的模型
- 用户通过选择一系列模型元素来定义非直线路径点
- 插件自动在 Animator 中创建基于这些路径点的对象动画
- 插件自动配置并运行一个链接到该动画的动态碰撞测试
- 当检测到碰撞时,插件将通过颜色覆盖直观地高亮显示碰撞的物体,并弹出明确的提示信息