zoukankan      html  css  js  c++  java
  • revit创建部件

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.UI;
    using Autodesk.Revit.UI.Selection;
    using Autodesk.Revit.Attributes;

    namespace _创建部件
    {
        [Transaction(TransactionMode.Manual)]
        class Class3 : IExternalCommand
        {
            public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
            {
                UIDocument uidoc = commandData.Application.ActiveUIDocument;
                Document doc = uidoc.Document;//获取活动文档


                IList<Reference> refs = uidoc.Selection.PickObjects(ObjectType.Element);//选择需要创建部件的元素

                foreach (Reference r in refs)//每个元素单独创建部件
                {
                    List<ElementId> ids = new List<ElementId>();//创建新的元素ID列表
                    Element e = doc.GetElement(r);//获取元素
                    ids.Add(e.Id);//给列表ids添加元素ID

                    Transaction transaction = new Transaction(doc);//新建事务
                    transaction.Start("创建部件");//开始
                    AssemblyInstance assemblyInstance = AssemblyInstance.Create(doc, ids, e.Category.Id);//新建部件
                    transaction.Commit();//结束

                }

                return Result.Succeeded;
            }
        }
    }
     

  • 相关阅读:
    我的插件架构
    .net 处理图片亮度
    封装自己的对称加密模块
    漏洞无处不在之窃取你的QQ信息
    写自己的自动升级模块
    抓到一只网马,发文顺便鄙视下360
    .net 3.5的Socket异步完成端口
    检测本机是否登录了指定QQ账号
    C++/CLR写的Data Blocks
    修改的Vista风格多功能日历Demo
  • 原文地址:https://www.cnblogs.com/liaocheng/p/13065355.html
Copyright © 2011-2022 走看看