From a18b907beff8b21fb4c9d6fb72678ac5e9f7b80d Mon Sep 17 00:00:00 2001
From: zhangyuekai <zhangyuekai@126.com>
Date: 星期六, 10 八月 2024 21:05:33 +0800
Subject: [PATCH] fix-bug nullreference

---
 HStation.RevitDev/RevitDataExport/Utility/RevitUtil.cs |  159 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 88 insertions(+), 71 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Utility/RevitUtil.cs b/HStation.RevitDev/RevitDataExport/Utility/RevitUtil.cs
index 0be6661..ba1caee 100644
--- a/HStation.RevitDev/RevitDataExport/Utility/RevitUtil.cs
+++ b/HStation.RevitDev/RevitDataExport/Utility/RevitUtil.cs
@@ -1,73 +1,90 @@
-锘縰sing Autodesk.Revit.DB;
-using Autodesk.Revit.DB.Plumbing;
-using Autodesk.Revit.UI;
-using HStation.RevitDev.Model.ModelEnum;
-using HStation.RevitDev.RevitDataExport.Common;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-
-namespace HStation.RevitDev.RevitDataExport.Utility
-{
-    public class RevitUtil
-    {
-        public static List<PipeType> FindPipeTypes(Document doc)
-        {
-            FilteredElementCollector collector = new FilteredElementCollector(doc);
-            var pipeTypes = collector.OfClass(typeof(PipeType)).ToElements().Cast<PipeType>().ToList();
-            return pipeTypes;
-        }
-
-        public static void CleanPipeThumbnails()
-        {
-            try
-            {
-                var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitType.RFT_Pipe.GetDescription());
-                if (!Directory.Exists(pipeDir)) { return; }
-                var pngFiles = Directory.GetFiles(pipeDir, "*.png", SearchOption.TopDirectoryOnly);
-                foreach (var pngFile in pngFiles)
-                {
-                    File.Delete(pngFile);
-                }
-            }
-            catch (Exception ex)
-            {
-                TaskDialog.Show("璀﹀憡", $"绠¢亾缂撳瓨娓呯悊澶辫触锛歿ex.Message}");
-            }
-        }
-
-        public static void SavePipeThumbnails(List<PipeType> pipeTypes)
-        {
-            var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitType.RFT_Pipe.GetDescription());
-            for (int i = 0; i < pipeTypes.Count; i++)
-            {
-                var pipeType = pipeTypes[i];
-                var pipeImg = pipeType.GetPreviewImage(new System.Drawing.Size(GlobalResource.ThumbnailSize, GlobalResource.ThumbnailSize));
-                pipeImg.Save(Path.Combine(pipeDir, $"{pipeType.Name}.png"));
-            }
+锘縰sing Autodesk.Revit.DB;
+using Autodesk.Revit.DB.Plumbing;
+using Autodesk.Revit.UI;
+using HStation.RevitDev.Model.ModelEnum;
+using HStation.RevitDev.RevitDataExport.Common;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace HStation.RevitDev.RevitDataExport.Utility
+{
+    public class RevitUtil
+    {
+        public static List<PipeType> FindPipeTypes(Document doc)
+        {
+            FilteredElementCollector collector = new FilteredElementCollector(doc);
+            var pipeTypes = collector.OfClass(typeof(PipeType)).ToElements().Cast<PipeType>().ToList();
+            return pipeTypes;
         }
 
-        public static IEnumerable<string> ValidateFileVersion(string[] selectPaths)
-        {
-            var result = new List<string>();
-            foreach (var selectPath in selectPaths)
-            {
-                var fileVersion = VersionUtil.GetVersion(selectPath);
-                if (fileVersion == null)
-                {
-                    TaskDialog.Show("璀﹀憡", "鏃犳硶妫�娴嬫枃浠剁増鏈紝杞藉叆鏃忔枃浠跺け璐ワ紒");
-                }
-                if (fileVersion.CompareTo(GlobalResource.CurrentRevitVersion) > 0)
-                {
-                    TaskDialog.Show("璀﹀憡", "鏂囦欢鐗堟湰楂樹簬褰撳墠Revit鐗堟湰锛屾棤娉曡浇鍏ユ棌鏂囦欢锛�");
-                }
-                else
-                {
-                    result.Add(selectPath);
-                }
-            }
-            return result;
-        }
-    }
-}
+        public static void CleanPipeThumbnails()
+        {
+            try
+            {
+                var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitType.RFT_Pipe.GetDescription());
+                if (!Directory.Exists(pipeDir)) { return; }
+                var pngFiles = Directory.GetFiles(pipeDir, "*.png", SearchOption.TopDirectoryOnly);
+                foreach (var pngFile in pngFiles)
+                {
+                    File.Delete(pngFile);
+                }
+            }
+            catch (Exception ex)
+            {
+                TaskDialog.Show("璀﹀憡", $"绠¢亾缂撳瓨娓呯悊澶辫触锛歿ex.Message}");
+            }
+        }
+
+        public static void SavePipeThumbnails(List<PipeType> pipeTypes)
+        {
+            var pipeDir = Path.Combine(GlobalResource.FamilysDirectory, RevitType.RFT_Pipe.GetDescription());
+            for (int i = 0; i < pipeTypes.Count; i++)
+            {
+                var pipeType = pipeTypes[i];
+                var pipeImg = pipeType.GetPreviewImage(new System.Drawing.Size(GlobalResource.ThumbnailSize, GlobalResource.ThumbnailSize));
+                pipeImg.Save(Path.Combine(pipeDir, $"{pipeType.Name}.png"));
+            }
+        }
+
+        public static IEnumerable<string> ValidateFileVersion(string[] selectPaths)
+        {
+            var result = new List<string>();
+            foreach (var selectPath in selectPaths)
+            {
+                var fileVersion = VersionUtil.GetVersion(selectPath);
+                if (fileVersion == null)
+                {
+                    TaskDialog.Show("璀﹀憡", "鏃犳硶妫�娴嬫枃浠剁増鏈紝杞藉叆鏃忔枃浠跺け璐ワ紒");
+                }
+                if (fileVersion.CompareTo(GlobalResource.CurrentRevitVersion) > 0)
+                {
+                    TaskDialog.Show("璀﹀憡", "鏂囦欢鐗堟湰楂樹簬褰撳墠Revit鐗堟湰锛屾棤娉曡浇鍏ユ棌鏂囦欢锛�");
+                }
+                else
+                {
+                    result.Add(selectPath);
+                }
+            }
+            return result;
+        }
+
+        public static bool IsBackUpFile(string path)
+        {
+            if (!File.Exists(path))
+            {
+                return false;
+            }
+            var fileName = Path.GetFileNameWithoutExtension(path);
+            var pattern = @"\.[\d]{4}\.rfa";
+            bool match = Regex.IsMatch(fileName, pattern);
+            if (match) 
+            {
+                return true;
+            }
+            return false;
+        }
+    }
+}

--
Gitblit v1.9.3