using Autodesk.Revit.DB; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CDM.Interop.Revit.CDMComponent { class CDMComponent { /// /// 构件名 /// public string Name { get { switch (CDMTypeId) { case HcdmType.CDMWall: return "墙"; case HcdmType.CDMBeam: return "梁"; case HcdmType.CDMFloor: return "板"; case HcdmType.CDMColumn: return "柱"; case HcdmType.CDMStair: return "楼梯"; default: return "INVAIL"; } } } /// /// 阶段 /// public string Phase { get; set; } /// /// 交付日期 /// public string DateOfDelivery { get; set; } /// /// 负责人姓名 /// public string NameOfLeader { get; set; } /// /// 负责人身份证 /// public string IdOfLeader { get; set; } /// /// 构件所属楼层编码 /// public string LevelCode; /// /// 各楼层中的构件编码001~... /// public string LevelComponentCode { get; set; } /// /// 定位点X坐标 /// public double Xl { get; set; } /// /// 定位点Y坐标 /// public double Yw { get; set; } /// /// 定位点Z坐标 /// public double Zh { get; set; } /// /// 方向角(逆时针为正) /// public double DegreesWithXAxis { get; set; } /// /// 方向角(弧度) /// public double RadiansWithXAxis => Math.PI / 180 * DegreesWithXAxis; /// /// 类别编码 /// public string CategoryCode; /// /// 族类型Id /// public ElementId SymbolId { get; set; } /// /// Revit构件Id /// public ElementId EleId { get; set; } /// /// 标高Id /// public ElementId LevelId { get; set; } /// /// 基点 /// public XYZ BasePoint { get; set; } /// /// 类型ID /// /// public HcdmType CDMTypeId { get; set; } /// /// 根据数据模型类型返回编码 /// public string HcdmClass { get { switch (CDMTypeId) { case HcdmType.CDMWall: return "A21005"; case HcdmType.CDMBeam: return "A21002"; case HcdmType.CDMFloor: return "A21003"; case HcdmType.CDMColumn: return "A21001"; case HcdmType.CDMStair: return "A21004"; default: return "INVAIL"; } } } /// /// HcdmNumber编码 /// public string HcdmNumber => string.Format("{0}-{1}-{2}", CategoryCode, LevelCode, LevelComponentCode); /// /// 获取参数值 /// /// 族实例 /// 参数名 /// public Parameter GetPara(FamilyInstance instance, string paraname) => instance.Symbol.GetParameters(paraname).FirstOrDefault(); } enum HcdmType { CDMWall = 0, CDMBeam = 1, CDMFloor = 2, CDMColumn = 3, CDMStair = 4 } }