From 9162a61818966f17e3aa2952c39d5484af1147d7 Mon Sep 17 00:00:00 2001
From: qin <a@163.com>
Date: 星期四, 22 八月 2024 16:02:27 +0800
Subject: [PATCH] 优化导出逻辑

---
 HStation.RevitDev/RevitDataExport/Parser/BaseParser.cs |  127 +++++++++++++++++++++---------------------
 1 files changed, 64 insertions(+), 63 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Parser/BaseParser.cs b/HStation.RevitDev/RevitDataExport/Parser/BaseParser.cs
index 2e911d9..dcf4297 100644
--- a/HStation.RevitDev/RevitDataExport/Parser/BaseParser.cs
+++ b/HStation.RevitDev/RevitDataExport/Parser/BaseParser.cs
@@ -1,73 +1,74 @@
-锘縰sing Autodesk.Revit.DB;
-using Glodon.Revit.Utility;
-using HStation.RevitDev.RevitDataExport.Entity;
-using HStation.RevitDev.RevitDataExport.Utility;
-using System;
-using System.Collections.Generic;
-using System.Text.RegularExpressions;
-
-namespace HStation.RevitDev.RevitDataExport.Parser
-{
-    public abstract class BaseParser
-    {
-        public abstract string GetParserName();
-
-        public abstract List<BuiltInCategory> FilterCategories { get; }
-
-        public abstract List<string> FilterRegexes { get; }
-
-        public bool IsPass(Element elem)
-        {
-            if (FilterCategories.Contains((BuiltInCategory)(elem.Category.Id.IntegerValue)))
-            {
-                var elemName = ParameterOperator.GetParameterValueAsValueString(elem, "鏃忎笌绫诲瀷", BuiltInParameter.ELEM_FAMILY_AND_TYPE_PARAM);
-                foreach (var pattern in FilterRegexes)
-                {
-                    if (Regex.IsMatch(elemName, pattern))
-                    {
-                        return true;
-                    }
-                }
-                return false;
-            }
-            return false;
-        }
-
-        public List<Tuple<string, string>> CommonPropertyParse(Element elem)
-        {
-            var result = new List<Tuple<string, string>>
-            {
-                new Tuple<string, string>("鍚嶇О", ParameterOperator.GetElementName(elem)),
-                new Tuple<string, string>("ID", elem.Id.IntegerValue.ToString()),
-                new Tuple<string, string>("绯荤粺绫诲瀷", ParameterOperator.GetElementPipingSystemType(elem)?.Name),
-                new Tuple<string, string>("鍖呭洿妗�", BoundingBoxHelper.BoundingBoxSerialize(elem.get_BoundingBox(null))),
-                new Tuple<string, string>("妤煎眰",elem.GetParameterByProName("鍙傜収鏍囬珮")==null?elem.GetParameterByProName("鏍囬珮").AsValueString(): elem.GetParameterByProName("鍙傜収鏍囬珮").AsValueString())
-            };
-
-            return result;
-        }
-
-
+锘縰sing Autodesk.Revit.DB;
+using Autodesk.Revit.UI;
+using Glodon.Revit.Utility;
+using HStation.RevitDev.RevitDataExport.Entity;
+using HStation.RevitDev.RevitDataExport.Utility;
+using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+
+namespace HStation.RevitDev.RevitDataExport.Parser
+{
+    public abstract class BaseParser
+    {
+        public abstract string GetParserName();
+
+        public abstract List<BuiltInCategory> FilterCategories { get; }
+
+        public abstract List<string> FilterRegexes { get; }
+
+        public bool IsPass(Element elem)
+        {
+            if (FilterCategories.Contains((BuiltInCategory)(elem.Category.Id.IntegerValue)))
+            {
+                var elemName = ParameterOperator.GetParameterValueAsValueString(elem, "鏃忎笌绫诲瀷", BuiltInParameter.ELEM_FAMILY_AND_TYPE_PARAM);
+                foreach (var pattern in FilterRegexes)
+                {
+                    if (Regex.IsMatch(elemName, pattern))
+                    {
+                        return true;
+                    }
+                }
+                return false;
+            }
+            return false;
+        }
+
+        public List<Tuple<string, string>> CommonPropertyParse(Element elem)
+        {
+            var result = new List<Tuple<string, string>>
+            {
+                new Tuple<string, string>("鍚嶇О", ParameterOperator.GetElementName(elem)),
+                new Tuple<string, string>("ID", elem.Id.IntegerValue.ToString()),
+                new Tuple<string, string>("绯荤粺绫诲瀷", ParameterOperator.GetElementPipingSystemType(elem)?.Name),
+                new Tuple<string, string>("鍖呭洿妗�", BoundingBoxHelper.BoundingBoxSerialize(elem.get_BoundingBox(null))),
+                new Tuple<string, string>("妤煎眰",elem.GetParameterByProName("鍙傜収鏍囬珮")==null?elem.GetParameterByProName("鏍囬珮").AsValueString(): elem.GetParameterByProName("鍙傜収鏍囬珮").AsValueString())
+            };
+
+            return result;
+        }
+
+
         public abstract List<Tuple<string, string>> PropertyParse(Element elem);
 
-        public abstract ElementModel Parse(Element elem);
-
+        public abstract ElementModel Parse(Element elem);
+
         public ElementModel BaseParse(Element elem)
         {
             var elemName = ParameterOperator.GetElementName(elem);
             var elemId = elem.Id.IntegerValue.ToString();
             var sysName = ParameterOperator.GetElementPipingSystemType(elem)?.Name;
             var box = BoundingBoxHelper.BoundingBoxSerialize(elem.get_BoundingBox(null));
-            var refLevel = elem.GetParameterByProName(new List<string> { "鍙傜収鏍囬珮", "鏍囬珮" }).AsValueString();
+            var refLevel = elem.GetParameterByProName(new List<string> { "鍙傜収鏍囬珮", "鏍囬珮" })?.AsValueString();
             return new ElementModel
             {
-                Name = elemName,
-                Id = elemId,
-                Box = box,
-                PipeSystemName = sysName,
-                Floor = refLevel,
-                LinkIds = string.Empty
-            };
-        }
-    }
-}
+                鍚嶇О = elemName,
+                缂栧彿 = elemId,
+                鍖呭洿妗� = box,
+                绯荤粺绫诲瀷 = sysName,
+                妤煎眰 = refLevel,
+                杩炴帴鏋勪欢 = ElementExtense2.GetLinkedElementIds(elemId)
+            };
+        }
+    }
+}

--
Gitblit v1.9.3