From 2e583cb9b6668c27e5249cfeb95c2dc6164c1fe9 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Mon, 13 Oct 2025 11:48:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86ModelSplitterManager=E4=B8=AD?= =?UTF-8?q?=E6=9C=AA=E4=BD=BF=E7=94=A8=E7=9A=84=E8=BE=85=E5=8A=A9=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除以下未使用的方法: - GetAllModelItems: 已被新的深度遍历函数替代 - PreviewSplitByAttribute: 通用属性预览方法已不再使用 这些函数的功能已经被更优化的实现替代,删除以保持代码整洁。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/Core/ModelSplitterManager.cs | 92 -------------------------------- 1 file changed, 92 deletions(-) diff --git a/src/Core/ModelSplitterManager.cs b/src/Core/ModelSplitterManager.cs index 64c384f..f004a6c 100644 --- a/src/Core/ModelSplitterManager.cs +++ b/src/Core/ModelSplitterManager.cs @@ -982,96 +982,6 @@ namespace NavisworksTransport } } - /// - /// 获取所有模型元素(支持深度限制)- 使用统一的深度遍历函数 - /// - private ModelItemCollection GetAllModelItems(int maxDepth = 1) - { - return GetItemsByDepthUnified(maxDepth); - } - - - /// - /// 通用属性预览分层方法(基于分组策略模式) - /// - private List PreviewSplitByAttribute(ModelItemCollection items, SplitConfiguration config, IGroupingStrategy strategy) - { - var results = new List(); - - try - { - // 属性分组阶段 (35-70%) - OnProgressChanged(new ProgressChangedEventArgs(40, $"正在分析 {items.Count} 个模型元素的{strategy.GroupTypeName}信息")); - - var groups = strategy.GroupItems(items, config); - LogManager.Info($"[分层管理器] {strategy.GroupTypeName}属性检测完成,发现 {groups?.Count ?? 0} 个{strategy.GroupTypeName}分组"); - - OnProgressChanged(new ProgressChangedEventArgs(70, $"{strategy.GroupTypeName}分组完成,发现 {groups?.Count ?? 0} 个{strategy.GroupTypeName}")); - - if (groups != null && groups.Count > 0) - { - // 生成预览结果阶段 (70-85%) - OnProgressChanged(new ProgressChangedEventArgs(75, $"正在生成{strategy.GroupTypeName}预览结果")); - - int processedGroups = 0; - foreach (var group in groups.Values) - { - var previewResult = new SplitPreviewResult - { - LayerName = SanitizeLayerName(group.GroupName), - LayerAttribute = GetAttributeDescription(config.Strategy, group.GroupName, group.Metadata), - Items = new ModelItemCollection() - }; - - // 添加模型项到集合中 - if (group.Items != null && group.Items.Count > 0) - { - previewResult.Items.AddRange(group.Items); - LogManager.Info($"[分层管理器] {strategy.GroupTypeName}预览结果已缓存模型项: {strategy.GroupTypeName}='{previewResult.LayerName}', 模型项数量={previewResult.Items.Count}"); - } - else - { - LogManager.Warning($"[分层管理器] {strategy.GroupTypeName}预览结果没有模型项: {strategy.GroupTypeName}='{previewResult.LayerName}'"); - } - - // 添加元数据 - previewResult.Metadata["Original" + strategy.GroupTypeName + "Name"] = group.OriginalName; - previewResult.Metadata[strategy.GroupTypeName + "Name"] = group.GroupName; - previewResult.Metadata["MaxDepth"] = config.MaxDepth; - - // 复制分组的自定义元数据 - foreach (var meta in group.Metadata) - { - previewResult.Metadata[meta.Key] = meta.Value; - } - - results.Add(previewResult); - - // 更新进度 - processedGroups++; - int progressPercent = 75 + (processedGroups * 10 / groups.Count); - OnProgressChanged(new ProgressChangedEventArgs(progressPercent, - $"已处理 {processedGroups}/{groups.Count} 个{strategy.GroupTypeName}分组")); - } - - OnProgressChanged(new ProgressChangedEventArgs(85, $"{strategy.GroupTypeName}预览结果生成完成,共 {results.Count} 个分层")); - } - else - { - OnProgressChanged(new ProgressChangedEventArgs(85, $"未检测到{strategy.GroupTypeName}信息")); - LogManager.Warning($"[分层管理器] 未检测到任何{strategy.GroupTypeName}信息"); - } - } - catch (Exception ex) - { - LogManager.Error($"[分层管理器] 按{strategy.GroupTypeName}属性预览失败: {ex.Message}", ex); - OnProgressChanged(new ProgressChangedEventArgs(35, $"{strategy.GroupTypeName}分析失败: {ex.Message}")); - throw; - } - - return results; - } - /// /// 智能遍历分层预览 - 边遍历边检查边停止的新算法 /// 替代原有的预收集模式,大幅提升预览性能 @@ -1755,13 +1665,11 @@ namespace NavisworksTransport progress.Update(0.3); // 直接使用预览结果中的项目,这些已经是展开的完整节点树 - // 不添加任何祖先路径,让 IsolateSpecificItems 自己处理 var itemsToIsolate = preview.Items; LogManager.Info($"[分层管理器] 准备隔离显示 {itemsToIsolate.Count} 个节点"); // 使用 VisibilityManager.IsolateSpecificItems 隔离显示 - // 这个方法会使用缓存优化,效率更高 bool isolateSuccess = VisibilityHelper.IsolateSpecificItems(itemsToIsolate); if (!isolateSuccess)