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