9.2 KiB
9.2 KiB
NavisworksTransport 分层管理功能重构项目计划
项目概述
项目名称: 分层管理功能重构
版本目标: v2.4.0
开发周期: 4周(2025年8月18日 - 2025年9月15日)
主要目标: 将复杂的独立对话框模式简化为4个核心功能的页签集成模式
核心需求映射
1. 楼层分析功能 (Floor Analysis Module)
- 需求描述: 检测模型是否具备层属性,评估按层分解的可行性
- 技术组件: FloorDetector重构 + 新增分析评估算法
- 用户界面: 检测结果展示 + 可行性评估报告
2. 设置层属性功能 (Attribute Assignment Module)
- 需求描述: 为不具备层属性的模型手动设置层属性(支持选择树分支和子节点)
- 技术组件: AttributeAssignmentService + 选择树交互
- 用户界面: 树形视图 + 属性编辑器 + 批量分配
3. 分层保存功能 (Layer Export Module)
- 需求描述: 按楼层或指定属性分层保存为独立nwd文件(包含预览功能)
- 技术组件: ModelExportService重构 + PreviewGeneratorService
- 用户界面: 楼层列表 + 预览面板 + 导出配置
4. 选中保存功能 (Selection Export Module)
- 需求描述: 将选择树中当前选中内容保存为单独nwd文件
- 技术组件: 快速导出服务 + 选择状态管理
- 用户界面: 选择状态显示 + 一键保存按钮
架构设计原则
WPF页签集成策略
- 集成到现有LogisticsControlPanel的页签系统
- 采用MVVM模式,确保数据绑定和命令模式的一致性
- 重用现有的ElementHost集成模式
代码重用策略
- 保留: ModelSplitterManager核心算法(约60%代码重用)
- 重构: FloorDetector轻量化,移除复杂配置
- 新建: AttributeAssignmentService统一属性管理
- 简化: UI交互流程,减少配置步骤
性能优化策略
- 异步楼层检测,避免UI阻塞
- 增量预览生成,减少重复计算
- 内存优化的模型导出流程
开发里程碑规划
第一阶段: 架构分析与设计 (第1周: 8月18日-8月24日)
里程碑1.1: 现有代码分析 (2天)
- 任务: 分析ModelSplitterManager代码架构,识别可重用核心算法
- 交付物: 代码重用评估报告
- 关键任务:
- 梳理3500行代码的功能模块
- 确定算法复用度和简化空间
- 识别UI复杂度来源
里程碑1.2: 新架构设计 (3天)
- 任务: 设计4个核心功能模块的WPF页签架构
- 交付物: 技术架构设计文档 + UI原型
- 关键任务:
- MVVM模式的ViewModel层设计
- 服务层接口定义
- UI布局和交互流程设计
第二阶段: 核心服务层开发 (第2周: 8月25日-8月31日)
里程碑2.1: 楼层分析服务 (3天)
- 任务: 重构FloorDetector为轻量级楼层分析服务
- 交付物: FloorAnalysisService + 单元测试
- 关键功能:
- 快速楼层检测算法
- 分层可行性评估
- 检测结果数据结构
里程碑2.2: 属性分配服务 (2天)
- 任务: 创建AttributeAssignmentService层属性分配服务
- 交付物: AttributeAssignmentService + 集成测试
- 关键功能:
- 选择树节点属性批量设置
- COM API持久化集成
- 属性继承规则处理
里程碑2.3: 导出服务重构 (2天)
- 任务: 重构ModelExportService为统一导出服务
- 交付物: ModelExportService + PreviewGeneratorService
- 关键功能:
- 分层导出和选择导出统一接口
- 预览缩略图生成
- 进度回调和异常处理
第三阶段: MVVM层和UI开发 (第3周: 9月1日-9月7日)
里程碑3.1: ViewModel层开发 (4天)
- 任务: 实现4个核心功能模块的ViewModel
- 交付物: 5个ViewModel类 + 数据绑定测试
- 关键组件:
- LayerManagementViewModel (主协调器)
- FloorAnalysisViewModel (楼层分析)
- AttributeSettingViewModel (属性设置)
- LayerSaveViewModel (分层保存)
- SelectionSaveViewModel (选中保存)
里程碑3.2: WPF视图开发 (3天)
- 任务: 创建页签式UI界面
- 交付物: LayerManagementView + 子控件
- 关键界面:
- 楼层分析结果展示面板
- 选择树属性设置界面
- 分层预览和配置面板
- 选中保存快捷操作区
第四阶段: 集成测试与优化 (第4周: 9月8日-9月15日)
里程碑4.1: 系统集成 (3天)
- 任务: 集成到LogisticsControlPanel页签系统
- 交付物: 完整集成版本
- 关键任务:
- 页签注册和生命周期管理
- 与VisibilityManager协调机制
- CategoryAttributeManager数据同步
里程碑4.2: 全面测试 (2天)
- 任务: 功能测试和性能优化
- 交付物: 测试报告 + 性能优化版本
- 测试重点:
- 复杂模型楼层检测准确性
- 大型模型导出性能
- UI响应性和稳定性
里程碑4.3: 发布准备 (2天)
- 任务: 文档更新和版本发布
- 交付物: v2.4.0正式版本
- 发布内容:
- CHANGELOG.md更新
- VERSION.md版本升级
- 用户文档更新
任务优先级矩阵
高优先级 (P0) - 核心功能实现
- 楼层分析服务重构 (影响所有后续功能)
- 导出服务统一化 (2个保存功能的基础)
- 主ViewModel架构 (UI开发基础)
- 页签集成机制 (用户体验核心)
中优先级 (P1) - 功能完善
- 属性分配服务 (手动设置层属性)
- 预览生成服务 (用户确认机制)
- 选择树UI组件 (属性设置界面)
- 分层配置UI (保存选项界面)
低优先级 (P2) - 优化增强
- 性能优化 (大型模型处理)
- 错误处理增强 (边界情况)
- UI细节优化 (用户体验提升)
- 文档完善 (维护支持)
风险评估与缓解策略
技术风险
风险1: ModelSplitterManager代码复杂度
- 风险等级: 高
- 影响: 重构工作量超预期,影响进度
- 缓解策略:
- 第一阶段充分分析现有代码
- 采用增量重构而非全面重写
- 保留关键算法逻辑不变
风险2: Navisworks API兼容性
- 风险等级: 中
- 影响: 新架构与现有API集成问题
- 缓解策略:
- 使用已验证的API调用模式
- 保持与现有组件的接口一致性
- 进行充分的集成测试
风险3: 大型模型性能
- 风险等级: 中
- 影响: 楼层分析和导出操作响应缓慢
- 缓解策略:
- 异步处理避免UI阻塞
- 进度指示和可取消操作
- 内存使用优化
项目风险
风险4: 用户需求变更
- 风险等级: 中
- 影响: 功能范围扩大,影响交付时间
- 缓解策略:
- 明确4个核心功能边界
- 采用敏捷开发,支持小幅调整
- 预留10%时间缓冲
风险5: 测试覆盖不足
- 风险等级: 中
- 影响: 发布后发现功能缺陷
- 缓解策略:
- 每个里程碑包含测试任务
- 重点测试复杂模型场景
- 建立回归测试套件
质量控制标准
代码质量标准
- 代码复用率: ≥60% (基于现有ModelSplitterManager)
- 单元测试覆盖: ≥80% (新开发的服务层)
- 性能标准: 楼层检测≤5秒 (1000+构件模型)
- 内存使用: 导出过程峰值内存≤2GB
用户体验标准
- 界面响应: UI操作响应≤200ms
- 操作简化: 核心流程≤3步完成
- 错误处理: 友好的中文错误提示
- 预览功能: 导出前必须提供预览确认
集成标准
- 向后兼容: 不影响现有功能
- 数据一致: 与CategoryAttributeManager数据同步
- API稳定: 服务接口支持扩展
交付计划总结
| 里程碑 | 完成日期 | 主要交付物 | 完成度验收标准 |
|---|---|---|---|
| 1.1 | 8月20日 | 代码分析报告 | 识别可重用组件≥60% |
| 1.2 | 8月24日 | 架构设计文档 | UI原型和技术方案评审通过 |
| 2.1 | 8月27日 | 楼层分析服务 | 单元测试通过,性能达标 |
| 2.2 | 8月29日 | 属性分配服务 | 集成测试通过,数据持久化正常 |
| 2.3 | 8月31日 | 导出服务重构 | 功能测试通过,预览生成正常 |
| 3.1 | 9月4日 | ViewModel层 | 数据绑定测试通过,命令响应正常 |
| 3.2 | 9月7日 | WPF视图开发 | UI功能完整,交互流程顺畅 |
| 4.1 | 9月10日 | 系统集成 | 页签集成成功,协调机制正常 |
| 4.2 | 9月12日 | 全面测试 | 功能测试100%通过,性能达标 |
| 4.3 | 9月15日 | v2.4.0发布 | 版本文档完整,可正式发布 |
成功指标
功能完整性
- ✅ 4个核心功能模块100%实现
- ✅ 楼层分析准确率≥95%
- ✅ 属性设置成功率100%
- ✅ 分层保存功能稳定运行
- ✅ 选中保存操作便捷可靠
用户体验提升
- ✅ 操作步骤减少≥50% (相比原独立对话框)
- ✅ 界面集成度提升 (页签模式)
- ✅ 预览功能提供直观确认
- ✅ 错误提示清晰友好
技术指标
- ✅ 代码重用率≥60%
- ✅ 新增代码行数≤2000行
- ✅ 内存使用优化≥30%
- ✅ 响应时间提升≥40%
项目经理: Claude Code AI Assistant
技术负责: NavisworksTransport开发团队
文档版本: v1.0
最后更新: 2025年8月18日