using Autodesk.Revit.DB; using HStation.RevitDev.RevitDataExport.Utility; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace HStation.RevitDev.RevitDataExport.Service { public class RevitMepCategoryService { public static Dictionary> GroupElements(IEnumerable systemElems) { var result = new Dictionary>(); var parsers = ParserManager.Instance.Parsers; foreach (Element elem in systemElems) { bool pass = false; foreach (var parser in parsers) { if (parser.IsPass(elem)) { pass = true; var key = parser.GetParserName(); if (!result.ContainsKey(key)) { result.Add(key, new List()); } if (!result[key].Any(x=>x.Id.IntegerValue == elem.Id.IntegerValue)) { result[key].Add(elem); } break; } } if (!pass) { //加入其它构件类型 if (!result.ContainsKey("其他")) { result.Add("其他", new List()); } result["其他"].Add(elem); } } return result; } } }