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