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;
//}
}
}