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