269 lines
9.2 KiB
Markdown
269 lines
9.2 KiB
Markdown
# 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) - 核心功能实现
|
||
1. 楼层分析服务重构 (影响所有后续功能)
|
||
2. 导出服务统一化 (2个保存功能的基础)
|
||
3. 主ViewModel架构 (UI开发基础)
|
||
4. 页签集成机制 (用户体验核心)
|
||
|
||
### 中优先级 (P1) - 功能完善
|
||
1. 属性分配服务 (手动设置层属性)
|
||
2. 预览生成服务 (用户确认机制)
|
||
3. 选择树UI组件 (属性设置界面)
|
||
4. 分层配置UI (保存选项界面)
|
||
|
||
### 低优先级 (P2) - 优化增强
|
||
1. 性能优化 (大型模型处理)
|
||
2. 错误处理增强 (边界情况)
|
||
3. UI细节优化 (用户体验提升)
|
||
4. 文档完善 (维护支持)
|
||
|
||
## 风险评估与缓解策略
|
||
|
||
### 技术风险
|
||
|
||
#### 风险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日 |