From 75ade5ad08cb7c0f894a1dd36bad02f19e7944fb Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Thu, 6 Aug 2026 23:47:17 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=89=88=E6=9C=AC=200.18.4=20?= =?UTF-8?q?=E2=80=94=20F1=20=E6=89=B9=E5=A4=84=E7=90=86=E7=A2=B0=E6=92=9E?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E8=90=BD=E5=BA=93=20+=20=E7=BA=AF=20PathId?= =?UTF-8?q?=20=E6=98=A0=E5=B0=84=20+=20=E6=89=B9=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ VERSION.md | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3563c9e..5210135 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # 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/25;F1 端到端 30 秒通过 +- Factory.nwd(300M 大模型)实测:纯 PathId 映射 4/4、碰撞明细落库、报告打开正常无崩溃、副实例关闭秒级 + ## [0.18.3] - 2026-08-06 ### ⚡ 性能优化 diff --git a/VERSION.md b/VERSION.md index aad11e3..05cbff0 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,3 +1,3 @@ # 版本号 -0.18.3 +0.18.4