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/Parser/ShuiXiang.cs |  190 ++++++++++++++++++++++++++---------------------
 1 files changed, 104 insertions(+), 86 deletions(-)

diff --git a/HStation.RevitDev/RevitDataExport/Parser/ShuiXiang.cs b/HStation.RevitDev/RevitDataExport/Parser/ShuiXiang.cs
index 1fc542b..f564b12 100644
--- a/HStation.RevitDev/RevitDataExport/Parser/ShuiXiang.cs
+++ b/HStation.RevitDev/RevitDataExport/Parser/ShuiXiang.cs
@@ -1,86 +1,104 @@
-锘縰sing Autodesk.Revit.DB;
-using Autodesk.Revit.DB.Plumbing;
-using Glodon.Revit.Utility;
-using HStation.RevitDev.RevitDataExport.Common;
-using HStation.RevitDev.RevitDataExport.Utility;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace HStation.RevitDev.RevitDataExport.Parser
-{
-    /// <summary>
-    /// 姘寸
-    /// </summary>
-    public class ShuiXiangParser : BaseParser
-    {
-        public override List<BuiltInCategory> FilterCategories
-        {
-            get
-            {
-                return new List<BuiltInCategory>
-                {
-                    BuiltInCategory.OST_PipeAccessory,
-                    BuiltInCategory.OST_MechanicalEquipment,
-                    BuiltInCategory.OST_PipeFitting,
-                    BuiltInCategory.OST_GenericModel
-                };
-            }
-        }
-        public override List<string> FilterRegexes
-        {
-            get
-            {
-                return new List<string>
-                {
-                    "姘寸"
-                };
-            }
-        }
-
-        public override string GetParserName()
-        {
-            return "姘寸";
-        }
-
-        public override List<Tuple<string, string>> PropertyParse(Element elem)
-        {
-            var result = new List<Tuple<string, string>>();
-            var fi = elem as FamilyInstance;
-            if (fi == null) { return result; }
-            var connectInfos = MEPHelper.GetConnecters(fi);
-            result.AddRange(CommonPropertyParse(elem));
-            for (int i = 1; i <= 5; i++)
-            {
-                if (connectInfos.Count >= i)
-                {
-                    result.Add(new Tuple<string, string>($"杩炴帴鐐箋i}", connectInfos[i - 1]?.ElementId.ToString()));
-                }
-                else
-                {
-                    result.Add(new Tuple<string, string>($"杩炴帴鐐箋i}", string.Empty));
-                }
-            }
-
-
-            var initlevel = ParameterOperator.GetParameterValueAsDouble(elem, "姘翠綅"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
-            if (initlevel.HasValue)
-            {
-                result.Add(new Tuple<string, string>($"姘翠綅", initlevel.Value.ToString("f2")));
-            }
-            var minlevel = ParameterOperator.GetParameterValueAsDouble(elem, "鏈�浣庢按浣�"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
-            if (minlevel.HasValue)
-            {
-                result.Add(new Tuple<string, string>($"鏈�浣庢按浣�", minlevel.Value.ToString("f2")));
-            }
-            var maxlevel = ParameterOperator.GetParameterValueAsDouble(elem, "鏈�楂樻按浣�"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
-            if (maxlevel.HasValue)
-            {
-                result.Add(new Tuple<string, string>($"鏈�楂樻按浣�", maxlevel.Value.ToString("f2")));
-            }
-            return result;
-        }
-    }
-}
+锘縰sing Autodesk.Revit.DB;
+using Autodesk.Revit.DB.Plumbing;
+using Glodon.Revit.Utility;
+using HStation.RevitDev.Model.AttributeClass;
+using HStation.RevitDev.RevitDataExport.Common;
+using HStation.RevitDev.RevitDataExport.Entity;
+using HStation.RevitDev.RevitDataExport.Entity.ElementModels;
+using HStation.RevitDev.RevitDataExport.Utility;
+using System;
+using System.Collections.Generic;
+
+namespace HStation.RevitDev.RevitDataExport.Parser
+{
+    /// <summary>
+    /// 姘寸
+    /// </summary>
+    /// 
+    [RevitType(Model.ModelEnum.RevitType.RFT_WaterBox)]
+    public class ShuiXiangParser : BaseParser
+    {
+        public override List<BuiltInCategory> FilterCategories
+        {
+            get
+            {
+                return new List<BuiltInCategory>
+                {
+                    BuiltInCategory.OST_PipeAccessory,
+                    BuiltInCategory.OST_MechanicalEquipment,
+                    BuiltInCategory.OST_PipeFitting,
+                    BuiltInCategory.OST_GenericModel
+                };
+            }
+        }
+        public override List<string> FilterRegexes
+        {
+            get
+            {
+                return new List<string>
+                {
+                    "姘寸"
+                };
+            }
+        }
+
+        public override string GetParserName()
+        {
+            return "姘寸";
+        }
+
+        public override ElementModel Parse(Element elem)
+        {
+            var elemModel = BaseParse(elem);
+            var result = new WaterBoxModel(elemModel);
+            result.Id = elemModel.Id;
+            result.LinkIds =  ElementExtense2.GetLinkedElementIds(result.Id);
+
+            var waterLevel = ParameterOperator.GetParameterValueAsString(elem, "姘翠綅");
+            var bottomLevel = ParameterOperator.GetParameterValueAsString(elem, "鏈�浣庢按浣�");
+            var topLevel = ParameterOperator.GetParameterValueAsString(elem, "鏈�楂樻按浣�");
+            result.WaterLevel = waterLevel;
+            result.BottomLevel = bottomLevel;
+            result.TopLevel = topLevel;
+            return result;
+        }
+
+        public override List<Tuple<string, string>> PropertyParse(Element elem)
+        {
+            var result = new List<Tuple<string, string>>();
+            var fi = elem as FamilyInstance;
+            if (fi == null) { return result; }
+            var connectInfos = MEPHelper.GetConnecters(fi);
+            result.AddRange(CommonPropertyParse(elem));
+            for (int i = 1; i <= 5; i++)
+            {
+                if (connectInfos.Count >= i)
+                {
+                    result.Add(new Tuple<string, string>($"杩炴帴鐐箋i}", connectInfos[i - 1]?.ElementId.ToString()));
+                }
+                else
+                {
+                    result.Add(new Tuple<string, string>($"杩炴帴鐐箋i}", string.Empty));
+                }
+            }
+
+
+            var initlevel = ParameterOperator.GetParameterValueAsDouble(elem, "姘翠綅"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
+            if (initlevel.HasValue)
+            {
+                result.Add(new Tuple<string, string>($"姘翠綅", initlevel.Value.ToString("f2")));
+            }
+            var minlevel = ParameterOperator.GetParameterValueAsDouble(elem, "鏈�浣庢按浣�"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
+            if (minlevel.HasValue)
+            {
+                result.Add(new Tuple<string, string>($"鏈�浣庢按浣�", minlevel.Value.ToString("f2")));
+            }
+            var maxlevel = ParameterOperator.GetParameterValueAsDouble(elem, "鏈�楂樻按浣�"); //(pipe.Location as LocationCurve).Curve.Length.FeetToMM();
+            if (maxlevel.HasValue)
+            {
+                result.Add(new Tuple<string, string>($"鏈�楂樻按浣�", maxlevel.Value.ToString("f2")));
+            }
+            return result;
+        }
+    }
+}

--
Gitblit v1.9.3