151 lines
4.3 KiB
C#
151 lines
4.3 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 构件名
|
|
/// </summary>
|
|
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";
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 阶段
|
|
/// </summary>
|
|
public string Phase { get; set; }
|
|
/// <summary>
|
|
/// 交付日期
|
|
/// </summary>
|
|
public string DateOfDelivery { get; set; }
|
|
/// <summary>
|
|
/// 负责人姓名
|
|
/// </summary>
|
|
public string NameOfLeader { get; set; }
|
|
/// <summary>
|
|
/// 负责人身份证
|
|
/// </summary>
|
|
public string IdOfLeader { get; set; }
|
|
/// <summary>
|
|
/// 构件所属楼层编码
|
|
/// </summary>
|
|
public string LevelCode;
|
|
/// <summary>
|
|
/// 各楼层中的构件编码001~...
|
|
/// </summary>
|
|
public string LevelComponentCode { get; set; }
|
|
/// <summary>
|
|
/// 定位点X坐标
|
|
/// </summary>
|
|
public double Xl { get; set; }
|
|
/// <summary>
|
|
/// 定位点Y坐标
|
|
/// </summary>
|
|
public double Yw { get; set; }
|
|
/// <summary>
|
|
/// 定位点Z坐标
|
|
/// </summary>
|
|
public double Zh { get; set; }
|
|
/// <summary>
|
|
/// 方向角(逆时针为正)
|
|
/// </summary>
|
|
public double DegreesWithXAxis { get; set; }
|
|
/// <summary>
|
|
/// 方向角(弧度)
|
|
/// </summary>
|
|
public double RadiansWithXAxis => Math.PI / 180 * DegreesWithXAxis;
|
|
/// <summary>
|
|
/// 类别编码
|
|
/// </summary>
|
|
public string CategoryCode;
|
|
/// <summary>
|
|
/// 族类型Id
|
|
/// </summary>
|
|
public ElementId SymbolId { get; set; }
|
|
/// <summary>
|
|
/// Revit构件Id
|
|
/// </summary>
|
|
public ElementId EleId { get; set; }
|
|
/// <summary>
|
|
/// 标高Id
|
|
/// </summary>
|
|
public ElementId LevelId { get; set; }
|
|
/// <summary>
|
|
/// 基点
|
|
/// </summary>
|
|
public XYZ BasePoint { get; set; }
|
|
/// <summary>
|
|
/// 类型ID
|
|
/// </summary>
|
|
///
|
|
public HcdmType CDMTypeId { get; set; }
|
|
/// <summary>
|
|
/// 根据数据模型类型返回编码
|
|
/// </summary>
|
|
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";
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// HcdmNumber编码
|
|
/// </summary>
|
|
public string HcdmNumber => string.Format("{0}-{1}-{2}", CategoryCode, LevelCode, LevelComponentCode);
|
|
/// <summary>
|
|
/// 获取参数值
|
|
/// </summary>
|
|
/// <param name="instance">族实例</param>
|
|
/// <param name="paraname">参数名</param>
|
|
/// <returns></returns>
|
|
public Parameter GetPara(FamilyInstance instance, string paraname) => instance.Symbol.GetParameters(paraname).FirstOrDefault();
|
|
|
|
}
|
|
enum HcdmType
|
|
{
|
|
CDMWall = 0,
|
|
CDMBeam = 1,
|
|
CDMFloor = 2,
|
|
CDMColumn = 3,
|
|
CDMStair = 4
|
|
}
|
|
}
|