| | |
| | | using Autodesk.Revit.DB; |
| | | using HStation.RevitDev.Model.ModelEnum; |
| | | using HStation.RevitDev.RevitDataExport.Common; |
| | | using HStation.RevitDev.RevitDataExport.Entity; |
| | | using HStation.RevitDev.RevitDataExport.Utility; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.ObjectModel; |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace HStation.RevitDev.RevitDataExport.Service |
| | | { |
| | |
| | | { |
| | | result.Add(key, new List<Element>()); |
| | | } |
| | | if (!result[key].Any(x=>x.Id.IntegerValue == elem.Id.IntegerValue)) |
| | | if (!result[key].Any(x => x.Id.IntegerValue == elem.Id.IntegerValue)) |
| | | { |
| | | result[key].Add(elem); |
| | | } |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | public static void MatchElement(Element elem) |
| | | { |
| | | var parsers = ParserManager.Instance.Parsers;
|
| | | bool pass = false;
|
| | | var id = elem.Id.IntegerValue.ToString();
|
| | | foreach (var parser in parsers)
|
| | | {
|
| | | if (parser.IsPass(elem))
|
| | | {
|
| | | var revitType = parser.GetRevitType();
|
| | | pass = true;
|
| | | |
| | | //把新增构件加入到缓存中
|
| | | if (!GlobalResource.RevitModels.ContainsKey(revitType))
|
| | | {
|
| | | GlobalResource.RevitModels.Add(revitType, new ObservableCollection<ElementModel>());
|
| | | GlobalResource.RevitModels[revitType].Add(new ElementModel
|
| | | {
|
| | | Name = elem.Name,
|
| | | Id = id,
|
| | | LinkIds = /*string.Join(",", linkedIds)*/string.Empty
|
| | | });
|
| | |
|
| | | }
|
| | | else if (!GlobalResource.RevitModels[revitType].Any(x => x.Id == id))
|
| | | {
|
| | | GlobalResource.RevitModels[revitType].Add(new ElementModel
|
| | | {
|
| | | Name = elem.Name,
|
| | | Id = id,
|
| | | LinkIds = /* string.Join(",", linkedIds)*/string.Empty
|
| | | });
|
| | | }
|
| | | break;
|
| | | }
|
| | | }
|
| | | if (!pass)
|
| | | {
|
| | | //把新增构件加入到缓存中
|
| | | if (!GlobalResource.RevitModels.ContainsKey(RevitType.RFT_Others))
|
| | | {
|
| | | GlobalResource.RevitModels.Add(RevitType.RFT_Others, new ObservableCollection<ElementModel>());
|
| | | GlobalResource.RevitModels[RevitType.RFT_Others].Add(new ElementModel
|
| | | {
|
| | | Name = elem.Name,
|
| | | Id = id,
|
| | | LinkIds = /*string.Join(",", linkedIds)*/string.Empty
|
| | | });
|
| | |
|
| | | }
|
| | | else if (!GlobalResource.RevitModels[RevitType.RFT_Others].Any(x => x.Id == id))
|
| | | {
|
| | | GlobalResource.RevitModels[RevitType.RFT_Others].Add(new ElementModel
|
| | | {
|
| | | Name = elem.Name,
|
| | | Id = id,
|
| | | LinkIds = /* string.Join(",", linkedIds)*/string.Empty
|
| | | });
|
| | | }
|
| | | }
|
| | | return; |
| | | } |
| | | } |
| | | } |