添加项目文件。
This commit is contained in:
150
CDMUtil/ToCDM/CDMComponent.cs
Normal file
150
CDMUtil/ToCDM/CDMComponent.cs
Normal file
@@ -0,0 +1,150 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user