# 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日