using Autodesk.Revit.DB; using Autodesk.Revit.DB.Plumbing; using Glodon.Revit.Utility; using HStation.RevitDev.Model.AttributeClass; using HStation.RevitDev.RevitDataExport.Entity; using HStation.RevitDev.RevitDataExport.Entity.ElementModels; using HStation.RevitDev.RevitDataExport.Utility; using System.Collections.Generic; namespace HStation.RevitDev.RevitDataExport.Parser { /// /// qita /// /// [RevitType(Model.ModelEnum.RevitType.RFT_Others)] public class QitaParser/* : BaseParser*/ { //public override List FilterCategories //{ // get // { // return new List // { // }; // } //} //public override List FilterRegexes //{ // get // { // return new List // { // }; // } //} //public override string GetParserName() //{ // return "其他"; //} public /*override*/ ElementModel Parse(Element elem) { var elemModel = BaseParse(elem); var result = new OtherModel(elemModel); return result; } public OtherModel 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 { "参照标高", "标高" })?.AsValueString(); return new OtherModel(new ElementModel { 名称 = elemName, 编号 = elemId, 包围框 = box, 系统类型 = sysName, 楼层 = refLevel, 连接构件 = ElementExtense2.GetLinkedElementIds(elemId) }); } //public override List> PropertyParse(Element elem) //{ // var result = new List>(); // var instance = elem.Document.GetElement(elem.Id); // var fi = instance 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($"连接点{i}", connectInfos[i - 1]?.ElementId.ToString())); // } // else // { // result.Add(new Tuple($"连接点{i}", string.Empty)); // } // } // return result; //} } }