Go to file
tian f194a835ed refactor: 移除空间索引构建中的冗余缓存调用
问题分析:
- 动画生成阶段已经构建了所有缓存(几何对象+通道对象)
- 空间索引构建时再次调用 BuildChannelObjectsCache() 和 BuildAllGeometryItemsCache()
- 虽然这两个方法有"已缓存则跳过"逻辑,但调用本身是逻辑冗余

优化方案:
- 移除 BuildChannelObjectsCache() 和 BuildAllGeometryItemsCache() 调用
- 直接使用 GetAllGeometryItemsCache() 获取缓存
- 如果缓存不存在,抛出异常而非静默回退(暴露调用顺序错误)

设计原则:
- "让问题快速暴露" > "让程序看起来正常运行"
- 明确约定:调用方必须在动画生成阶段构建缓存
- 如果缓存不存在,说明调用顺序错误,应该报错

技术细节:
- 将回退逻辑从 Warning + 实时获取 改为 Error + 抛出异常
- 错误信息明确指出调用方的责任
- 确保代码的调用契约清晰可追溯

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-14 12:21:38 +08:00
.claude feat(voxel): 添加体素网格测试UI和命令 2025-10-12 13:49:55 +08:00
.vscode 界面微调 2025-07-30 13:58:21 +08:00
doc 增加geometry4sharp的评估 2025-10-14 11:17:01 +08:00
Properties 创建新的2026分支,进行迁移方案的设计,对项目结构重新整理,增加了视点动画的部分功能 2025-08-12 13:36:00 +08:00
src refactor: 移除空间索引构建中的冗余缓存调用 2025-10-14 12:21:38 +08:00
UnitTests 完成了UI架构重构,增加了一些测试。解决了测试框架依赖导致的启动崩溃问题。 2025-08-17 23:02:09 +08:00
.gitignore 完善了碰撞报告和路径规划问题 2025-08-26 11:47:25 +08:00
CHANGELOG.md 版本升级到0.13.0: 2025-10-11 10:03:22 +08:00
CLAUDE.md 增加了配置管理功能,配置文件保存为toml格式,可在配置窗口编辑;实现了日志级别管理功能 2025-10-11 12:18:33 +08:00
clean_database.bat 实现了基本的路径分析功能,增加了文档关联的sqllite数据库 2025-10-03 16:28:02 +08:00
compile.bat 增加了文件导出为nwd 2025-08-18 23:55:01 +08:00
config.toml.example 对齐配置参数 2025-10-11 17:36:33 +08:00
deploy-plugin.bat 改进了A*算法中对高度层的处理,初步做到路径优先下从楼面爬上楼梯(楼梯缺少障碍物网格) 2025-10-09 18:29:36 +08:00
NavisworksTransport.sln 创建VS项目 2025-06-17 12:00:49 +08:00
NavisworksTransport.UnitTests.csproj 测试和修改A*返回的坐标转换的问题 2025-09-29 23:25:21 +08:00
NavisworksTransportPlugin.csproj fix: 修复 Vector3d.Distance 调用并将 Spatial 文件添加到项目 2025-10-14 11:53:52 +08:00
nuget.exe 实现了自动规划算法第一阶段 2025-08-14 18:33:43 +08:00
packages.config feat(voxel): 阶段1.1 - 添加 geometry4Sharp 1.0.0 NuGet 包 2025-10-12 11:22:52 +08:00
QWEN.md 清理一些todo和无效文件和代码 2025-09-17 12:06:28 +08:00
README.md 增加物流类别属性功能,增加分层可见性控制功能 2025-06-17 17:56:33 +08:00
run-unit-tests.bat 完成了UI架构重构,增加了一些测试。解决了测试框架依赖导致的启动崩溃问题。 2025-08-17 23:02:09 +08:00
VERSION.md 版本升级到0.13.0: 2025-10-11 10:03:22 +08:00
WARP.md 清理临时的项目文件 2025-08-28 10:00:55 +08:00

NavisworksTransport

Navisworks 2017运输冲突检测插件专用于物流路径规划。

功能特性

已实现功能(第一阶段)

  • 类别属性分配:为模型项目添加物流类别属性(门、电梯、楼梯、通道、障碍物)
  • 批量处理:支持同时为多个选中项目设置属性
  • 用户友好界面:简洁的按钮式对话框
  • COM API集成使用Navisworks COM API确保属性正确添加

计划功能(后续阶段)

  • 🔄 模型分层转换和可见性控制
  • 🔄 导航地图构建
  • 🔄 A*路径规划算法
  • 🔄 动态碰撞检测
  • 🔄 动画和时间线集成
  • 🔄 DELMIA数据导出

系统要求

  • Windows 7 或更高版本
  • Navisworks Manage 2017
  • .NET Framework 4.6.2

安装说明

  1. 编译项目生成NavisworksTransportPlugin.dll
  2. 插件会自动安装到Navisworks插件目录 [Navisworks安装路径]\Plugins\NavisworksTransportPlugin\
  3. 重启Navisworks即可在"附加模块"选项卡中找到插件

使用方法

  1. 在Navisworks中选择要设置属性的模型项目
  2. 点击"附加模块"选项卡中的"Transport Plugin"
  3. 在弹出窗口中点击相应的类别按钮
  4. 在属性面板中查看添加的"物流分类"属性

详细使用说明请参阅:使用说明文档

开发文档

技术架构

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 中创建基于这些路径点的对象动画
  • 插件自动配置并运行一个链接到该动画的动态碰撞测试
  • 当检测到碰撞时,插件将通过颜色覆盖直观地高亮显示碰撞的物体,并弹出明确的提示信息