chore: 版本 0.18.4 — F1 批处理碰撞结果落库 + 纯 PathId 映射 + 批处理性能优化

This commit is contained in:
tian 2026-08-06 23:47:17 +08:00
parent 033b639121
commit 75ade5ad08
2 changed files with 33 additions and 1 deletions

View File

@ -1,5 +1,37 @@
# NavisworksTransport 变更日志 # NavisworksTransport 变更日志
## [0.18.4] - 2026-08-06
### ✨ 批处理F1 副实例检测)碰撞结果完整落库
- **碰撞数回写主库检测记录**:此前 F1 副实例检测结果只更新队列表,动画检测历史表格显示碰撞数 0现 F1 完成后 `UpdateCollisionDetectionResult` 回写主库(历史表格与批处理列表一致)
- **碰撞对象明细落库**`ClashDetectiveCollisionObjects`):对象名 + 主模型 PathId/ModelIndex——报告页面可定位真实物体此前报告页面数据全 0
- **碰撞数语义明确**:报告对话框“总碰撞数”= 碰撞对总数(与历史表格一致),“碰撞构件”= 唯一被撞对象数(同一物体多次碰撞时碰撞对 > 唯一对象,两个数都正确)
### 🔧 F2 映射改为纯 PathId根治重名映射错误
- 根因原层级链名字序列匹配在重名模型Revit 嵌套实例)中映射到**错误实例**,导致报告聚焦错误对象触发 NW 原生视角崩溃
- 修复:导出时 `BuildSegmentMap` 全树深度遍历(跳过 itemsToHide与 NW `ExportToNwd(ExcludeHiddenItems)` 语义一致,已用固定导出文件对比验证)——**段序列 → 主 PathId** 映射2112 条);副实例碰撞对象 PathId 段序列**直查表**——无任何名字/链匹配
- 效果Factory 大模型映射率 0/5 → 4/4报告崩溃消除
### ⚡ 批处理性能与可靠性
- **副实例关闭改直接 Kill**:优雅关闭触发 NW 原生“模型已修改是否保存”弹窗阻塞 10 秒(每任务)——临时检测进程直接 TerminateProcess关闭秒级
- **导出文件时间戳后缀**:同一 itemId 重复执行(残留状态重置重跑)不再与旧副实例文件句柄冲突
- **副实例启动前文件校验**:存在/非空/未被占用 → 明确错误替代 NW 原生加载失败弹窗
### 🧪 测试与自动化基础设施
- **`ModelItemTreeWalker` 通用遍历工具**:统一 IsHidden 剪枝 + 聚合盒剪枝 + 后序传播,迁移 SectionBoxExporter / ModelItemAnalysisHelper / ClashDetectiveIntegration 三处全局遍历
- **`AutomationModeContext` 统一自动模式**:批处理全程 + 测试请求全程窗口自动选择默认动作并立即关闭(碰撞分析/碰撞报告/重复配置/完成汇总等零残留)——只改显示行为,不修改业务逻辑(预计算分析/重复检查流程完整执行)
- **F1 端到端集成测试**`NavisworksIntegrationF1`,单独运行约 30 秒)+ `batch-queue-status` 端点
- 集成测试脚本 `run-integration-tests.bat`(支持过滤器子集,避免反复跑全量)
### 验证
- 集成测试 25/25F1 端到端 30 秒通过
- Factory.nwd300M 大模型)实测:纯 PathId 映射 4/4、碰撞明细落库、报告打开正常无崩溃、副实例关闭秒级
## [0.18.3] - 2026-08-06 ## [0.18.3] - 2026-08-06
### ⚡ 性能优化 ### ⚡ 性能优化

View File

@ -1,3 +1,3 @@
# 版本号 # 版本号
0.18.3 0.18.4