From caa286712423a1a4413113d31f78f515efc400be Mon Sep 17 00:00:00 2001
From: zhangyuekai <zhangyuekai@126.com>
Date: 星期四, 08 八月 2024 22:53:12 +0800
Subject: [PATCH] fix bugs

---
 HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs |   37 ++++++++++++++-----------------------
 1 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
index 9f46d5f..ed8d541 100644
--- a/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
+++ b/HStation.RevitDev/RevitDataExport/Utility/DocumentUtil.cs
@@ -41,7 +41,7 @@
                 RemoveElements(removeIds);
                 ModifyElements(modifiedIds);
 
-                UpdateLinkerInfo(doc);
+                AddUnhandledElements();
                 GlobalResource.InstancePanel.UpdateForm();
             }
             catch (Exception ex)
@@ -229,26 +229,7 @@
             {
                 return new List<Element>();
             }
-            //FilteredElementCollector collector = null;
-            //foreach (Category cate in doc.Settings.Categories)
-            //{
-            //    if (cate.CategoryType != CategoryType.Model)
-            //    {
-            //        continue;
-            //    }
-            //    var subCollector = new FilteredElementCollector(doc);
-            //    subCollector.OfCategory((BuiltInCategory)(cate.Id.IntegerValue));
-            //    subCollector.WhereElementIsNotElementType();
-            //    if (collector == null)
-            //    {
-            //        collector = subCollector;
-            //    }
-            //    else
-            //    {
-            //        collector.UnionWith(subCollector);
-            //    }
-            //}
-            //
+           
             var collector1 = new FilteredElementCollector(doc).
                 OfCategory(BuiltInCategory.OST_PipeCurves).
                 WhereElementIsNotElementType();
@@ -267,7 +248,7 @@
             return elements1;
         }
 
-        public static void AddUnhandledElementsToCache()
+        public static void AddUnhandledElements()
         {
             var elements = GlobalResource.CurrentDocument.GetModelElements();
             foreach (var element in elements) 
@@ -277,9 +258,19 @@
                 {
                     continue;
                 }
-                RevitMepCategoryService.MatchElement(element);
+                RevitMepCategoryService.AddToCache(element);
             }
             UpdateLinkerInfo(GlobalResource.CurrentDocument);
         }
+
+        public static void UpdataDocumentCache(this Document doc)
+        {
+            if (doc.GetHashCode() != GlobalResource.CurrentDocument.GetHashCode())
+            {
+                GlobalResource.CurrentDocument = doc;
+                GlobalResource.RevitModels = new Dictionary<RevitType, ObservableCollection<ElementModel>>();
+            }
+            AddUnhandledElements();
+        }
     }
 }

--
Gitblit v1.9.3