Go to file
tian 51be24161d 优化三角形提取性能 - 实现批量COM Selection创建
问题分析:
- 当前逐个ModelItem创建COM Selection(290次)
- 从290个模型项提取776140个三角形耗时较长
- COM对象创建/销毁开销大

优化方案:
1. 新增 GeometryHelper.ExtractTrianglesBatch 方法
   - 批量创建COM Selection(290次 → 1次)
   - 一次性提取所有模型项的三角形
   - 添加进度日志(每100个片段输出一次)

2. 修改 NavisworksToDMesh3Converter.ConvertFromModelItems
   - 从逐个调用 ExtractTriangles 改为批量调用 ExtractTrianglesBatch
   - 添加详细的耗时统计(毫秒和秒)
   - 添加 System.Linq 引用支持ToList()

3. 保留原有 ExtractTriangles 方法
   - 向后兼容单个模型项提取场景
   - 用于小规模提取或特殊场景

预期效果:
- COM Selection创建:290次 → 1次
- 预计性能提升:50-70%
- 日志更详细,便于性能分析

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 09:34:52 +08:00
.claude feat(voxel): 添加体素网格测试UI和命令 2025-10-12 13:49:55 +08:00
.kiro/specs 用DockPanePlugin代替AddInPlugin,控件UI使用WPF,属性管理和路径设置两个功能的迁移 2025-08-14 09:30:13 +08:00
.serena 修复分层预览功能中深度遍历逻辑不统一的问题 2025-08-27 13:28:43 +08:00
.vscode 界面微调 2025-07-30 13:58:21 +08:00
doc 实现XY平面膨胀算法和3D体素路径规划 2025-10-12 21:13:02 +08:00
Properties 创建新的2026分支,进行迁移方案的设计,对项目结构重新整理,增加了视点动画的部分功能 2025-08-12 13:36:00 +08:00
src 优化三角形提取性能 - 实现批量COM Selection创建 2025-10-13 09:34:52 +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 实现XY平面膨胀算法和3D体素路径规划 2025-10-12 21:13:02 +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
TestRunner.cs 测试和修改A*返回的坐标转换的问题 2025-09-29 23:25:21 +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 中创建基于这些路径点的对象动画
  • 插件自动配置并运行一个链接到该动画的动态碰撞测试
  • 当检测到碰撞时,插件将通过颜色覆盖直观地高亮显示碰撞的物体,并弹出明确的提示信息