From e358beb08f5be49703009b64f058ecfbcfeefbd9 Mon Sep 17 00:00:00 2001 From: qin <a@163.com> Date: 星期六, 28 九月 2024 14:27:52 +0800 Subject: [PATCH] 测试standard2.1 --- HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs | 93 ++++++++++++++++++++-------------------------- 1 files changed, 40 insertions(+), 53 deletions(-) diff --git a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs index 4253e09..14874db 100644 --- a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs +++ b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs @@ -6,11 +6,9 @@ using DevExpress.Utils.Extensions; using HStation.RevitDev.Model.ModelEnum; using HStation.RevitDev.RevitDataExport.Common; -using HStation.RevitDev.RevitDataExport.Entity; using HStation.RevitDev.RevitDataExport.Service; using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Linq; namespace HStation.RevitDev.RevitDataExport.Utility @@ -28,16 +26,16 @@ private static void App_DocumentChanged(object sender, DocumentChangedEventArgs e) { + //褰撳垱寤轰竴涓柊鏂囨。鏃讹紝鍏堟墽琛宒ocumentChanged浜嬩欢锛屽湪鎵цdocumentCreated浜嬩欢 var doc = e.GetDocument(); + GlobalResource.CurrentDocument = doc; try { var addedIds = e.GetAddedElementIds(); var removeIds = e.GetDeletedElementIds(); - var modifiedIds = e.GetModifiedElementIds(); - AddElements(doc, addedIds); + AddElements(doc, addedIds); RemoveElements(removeIds); - ModifyElements(modifiedIds); AddUnhandledElements(); GlobalResource.InstancePanel.UpdateForm(); @@ -48,55 +46,30 @@ } } - private static void UpdateLinkerInfo(Document doc) - { - if (!doc.IsValidObject) { return; } + //private static void UpdateLinkerInfo(Document doc) + //{ + // if (!doc.IsValidObject) { return; } - foreach (var pair in GlobalResource.RevitModels) - { - foreach (var model in pair.Value) - { - var id = model.Id; - var element = doc.GetElement(new ElementId(int.Parse(id))); - var linkedElems = element.GetConnectElements(); - var linkedIds = linkedElems.Select(x => x.Id.IntegerValue.ToString()); - model.LinkIds = string.Join(",", linkedIds); - } - } - } + // foreach (var pair in GlobalResource.RevitModels) + // { + // foreach (var id in pair.Value) + // { + // if (id == null) { continue; } - private static void ModifyElements(ICollection<ElementId> modifiedIds) - { - foreach (var id in modifiedIds) - { - - } - } + // var element = doc.GetElement(new ElementId(int.Parse(id))); + // var linkedElems = element.GetConnectElements(); + // var linkedIds = linkedElems.Select(x => x.Id.IntegerValue.ToString()); + // model.LinkIds = string.Join(",", linkedIds); + // } + // } + //} private static void RemoveElements(ICollection<ElementId> removeIds) { foreach (var id in removeIds) { - var strId = id.IntegerValue.ToString(); - if (GlobalResource.RevitModels.Contains(strId)) - { - GlobalResource.RevitModels.Remove(id.IntegerValue.ToString()); - foreach (var pair in GlobalResource.RevitModels) - { - var values = pair.Value; - var model = values.Where(x => x.Id == strId)?.ToList(); - if (model == null || model.Count() == 0) - { - continue; - } - else - { - values.Remove(model[0]); - } - } - } + GlobalResource.RevitModels.Remove(id.IntegerValue.ToString()); } - return; } @@ -133,6 +106,8 @@ bool isPumpSystemElement = false; foreach (var id in addedIds) { + //鎵嬪姩甯冪疆鐨勬瀯浠跺娑堢伀鏍撱�佺儹鎹㈠櫒绛夊熀鏈笉鑳借嚜鍔ㄥ姞鍏ュ埌绯荤粺涓紝鑳借嚜鍔ㄥ竷缃苟杩炴帴 + //绯荤粺鐨勫熀鏈兘鏄笁閫氥�佸洓閫氥�佸集澶淬�佽繃娓′欢銆佺甯借繖浜� if (IsConnectedWithPumpSystem(doc, id)) { isPumpSystemElement = true; @@ -187,7 +162,11 @@ private static void AddAutoCreated(FamilyInstance fi) { - if (fi.IsWanTou()) + if (fi.IsPipeHat()) + { + GlobalResource.RevitModels.Add(fi, RevitType.RFT_Blocker); + } + else if (fi.IsWanTou()) { GlobalResource.RevitModels.Add(fi, RevitType.RFT_Elbow); } @@ -218,16 +197,22 @@ private static void Application_ViewActivated(object sender, ViewActivatedEventArgs e) { - GlobalResource.CurrentDocument = e.CurrentActiveView.Document; + //鍒囨崲鏂囨。鏃� + if (GlobalResource.CurrentDocument == null || + GlobalResource.CurrentDocument.GetHashCode() != e.CurrentActiveView.Document.GetHashCode()) + { + GlobalResource.CurrentDocument = e.CurrentActiveView.Document; + GlobalResource.InstancePanel.UpdateForm(); + } } - public static List<Element> GetModelElements(this Document doc) + public static List<Element> GetModelElements(this Document doc) { if (!doc.IsValidObject) { return new List<Element>(); } - + var collector1 = new FilteredElementCollector(doc). OfCategory(BuiltInCategory.OST_PipeCurves). WhereElementIsNotElementType(); @@ -235,6 +220,8 @@ var collector2 = new FilteredElementCollector(doc). OfClass(typeof(FamilyInstance)). WhereElementIsNotElementType(); + + var elements1 = collector1.ToElements()?.ToList(); var elements2 = collector2.ToElements()?.ToList(); @@ -249,7 +236,7 @@ public static void AddUnhandledElements() { var elements = GlobalResource.CurrentDocument.GetModelElements(); - foreach (var element in elements) + foreach (var element in elements) { var id = element.Id.IntegerValue.ToString(); if (GlobalResource.RevitModels.Contains(id)) @@ -258,7 +245,7 @@ } RevitMepCategoryService.AddToCache(element); } - UpdateLinkerInfo(GlobalResource.CurrentDocument); + //UpdateLinkerInfo(GlobalResource.CurrentDocument); } public static void UpdataDocumentCache(this Document doc) @@ -270,7 +257,7 @@ if (!GlobalResource.CurrentDocument.IsValidObject || doc.GetHashCode() != GlobalResource.CurrentDocument.GetHashCode()) { GlobalResource.CurrentDocument = doc; - GlobalResource.RevitModels = new Dictionary<RevitType, ObservableCollection<ElementModel>>(); + //GlobalResource.RevitModels = new List<Tuple<string, Dictionary<RevitType, List<string>>>>(); } AddUnhandledElements(); } -- Gitblit v1.9.3