From 763de811220b4b724f355965c156ce95d62d64e5 Mon Sep 17 00:00:00 2001
From: qin <a@163.com>
Date: 星期四, 15 八月 2024 17:04:45 +0800
Subject: [PATCH] 导出功能

---
 HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs |   77 ++++++++++++--------------------------
 1 files changed, 25 insertions(+), 52 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
index a96963d..a383f99 100644
--- a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
+++ b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
@@ -1,5 +1,4 @@
-锘縰sing Autodesk.Revit.ApplicationServices;
-using Autodesk.Revit.DB;
+锘縰sing Autodesk.Revit.DB;
 using Autodesk.Revit.DB.Events;
 using Autodesk.Revit.DB.Plumbing;
 using Autodesk.Revit.UI;
@@ -13,7 +12,6 @@
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
 using System.Linq;
-using static DevExpress.Data.Mask.Internal.RegExMaskMath.CloudOfInts;
 
 namespace HStation.RevitDev.RevitDataExport.Utility
 {
@@ -30,16 +28,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();
@@ -50,55 +48,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;
         }
 
@@ -223,13 +196,13 @@
             GlobalResource.CurrentDocument = e.CurrentActiveView.Document;
         }
 
-        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();
@@ -251,7 +224,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))
@@ -260,7 +233,7 @@
                 }
                 RevitMepCategoryService.AddToCache(element);
             }
-            UpdateLinkerInfo(GlobalResource.CurrentDocument);
+            //UpdateLinkerInfo(GlobalResource.CurrentDocument);
         }
 
         public static void UpdataDocumentCache(this Document doc)
@@ -272,7 +245,7 @@
             if (!GlobalResource.CurrentDocument.IsValidObject || doc.GetHashCode() != GlobalResource.CurrentDocument.GetHashCode())
             {
                 GlobalResource.CurrentDocument = doc;
-                GlobalResource.RevitModels = new Dictionary<RevitType, ObservableCollection<ElementModel>>();
+                GlobalResource.RevitModels = new Dictionary<RevitType, List<string>>();
             }
             AddUnhandledElements();
         }

--
Gitblit v1.9.3