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