欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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二开知识 请关注 唐僧课堂
Revit二开--设置Revit元素默认类型


Revit二开--设置Revit元素默认类型

相关标签: Revit二次开发