Revit二开--设置Revit元素默认类型
程序员文章站
2022-05-22 10:18:56
...
Revit二开–设置Revit元素默认类型
当我们创建revit元素时,默认的类型不受控制怎么办,答案当然是首先设置默认类型啦!!
默认类型设置属于文档级别的,所以,这个方法存在于Document里面。
首先获取当前文档的Document,然后调用document的SetDefaultElementTypeId()方法即可。
代码详见 github :https://github.com/binbinstrong/tangsengjiewa
以墙为例:设置默认墙类型,并创建墙。
/// <summary>
/// 设置墙默认类型并创建墙
/// </summary>
[Transaction(TransactionMode.Manual)]
class Cmd_SetDefaultWallType : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
var uiapp = commandData.Application;
var uidoc = uiapp.ActiveUIDocument;
var doc = uidoc.Document;
var acview = doc.ActiveView;
var sel = uidoc.Selection;
if (!(acview is ViewPlan))
{
MessageBox.Show("请在平面视图中运行此命令!");
return Result.Cancelled;
}
//获取目标墙类型
var walltypeCollector = new FilteredElementCollector(doc);
var walltype = walltypeCollector.OfClass(typeof(WallType)).Last();
//显示墙类型名称
MessageBox.Show(walltype.Name);
//在事务中设置墙类型,并用设置好的类型创建墙
Transaction ts = new Transaction(doc, "设置墙类型,并创建墙");
ts.Start();
doc.SetDefaultElementTypeId(ElementTypeGroup.WallType, walltype.Id);
Wall.Create(doc, Line.CreateBound(new XYZ(), new XYZ(100, 0, 0)), acview.GenLevel.Id, false);
ts.Commit();
return Result.Succeeded;
}
}
更多revit二开知识 请关注 唐僧课堂
上一篇: Qt绘制和保存成图片(手写签名)
下一篇: 用一条语句搞定下面二维数组的生成