问题描述: 在路径编辑界面删除路径时,虽然UI列表和3D可视化被正确清除, 但数据库中的路径记录没有被删除,导致数据不一致。 根本原因: PathEditingViewModel.ExecuteDeletePathAsync 方法直接操作集合: - 直接调用 _pathPlanningManager.ModifiableRoutes.Remove(coreRoute) - 绕过了 PathPlanningManager.DeleteRoute() 方法 - PathPlanningManager.DeleteRoute() 包含数据库删除逻辑 修复方案: ✅ 使用 PathPlanningManager.DeleteRoute() 替代直接集合操作 ✅ 确保完整的删除流程: 1. 清除3D可视化显示 2. 调用 PathPlanningManager.DeleteRoute() - 从内存集合删除 - 调用 PathDatabase.DeletePathRoute() - 更新当前路径状态 3. 更新UI列表 修改文件: - src/UI/WPF/ViewModels/PathEditingViewModel.cs (754-764行) 影响范围: - 修复数据库一致性问题 - 增强日志记录(记录删除成功/失败) - 不影响现有UI和可视化功能 测试建议: 1. 在路径列表中删除路径 2. 重启Navisworks验证路径是否真正被删除 3. 检查数据库中PathRoutes表记录是否减少 🤖 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 中创建基于这些路径点的对象动画
- 插件自动配置并运行一个链接到该动画的动态碰撞测试
- 当检测到碰撞时,插件将通过颜色覆盖直观地高亮显示碰撞的物体,并弹出明确的提示信息