Revit二次开发入门——创建外部命令

来源:互联网 发布:网络签约作家 编辑:程序博客网 时间:2024/05/16 07:17

1、新建一个类库工程
2、引用Revit接口定义文件 RevitAPI.DLL和RevitAPIUI.DLL
将复制本地属性改为 False
3、命名空间引用
4、为命名类加属性
5、新建类从IExternalCommand派生
6、重载Execute()方法
7、在Execute中添加代码来实现命令功能
引入RevitAPI ,RevitAPIUI后,属性中复制本地改为False.
[Transaction(TransactionMode.Manual)]

外部命令中Excute函数的定义

public interface IEternalCommand{    public Autodesk.Revit.UI.Result Execute(    Autodesk.Revit.UI.ExternalCommandData commandData,    ref string message,    Autodesk.Revit.DB.ElementSet elements)}

以下代码可运行

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Autodesk.Revit.UI;using Autodesk.Revit.DB;using Autodesk.Revit.ApplicationServices;using Autodesk.Revit.Attributes;using System.Windows.Forms;namespace HelloWorld{    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]    [Regeneration(RegenerationOption.Manual)]    public class ArgumentUsage : IExternalCommand    {        public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)        {            //  TaskDialog.Show("Revit","HelloWorld");            // return Autodesk.Revit.UI.Result.Succeeded;            // MessageBox.Show("HelloWorld");            UIApplication uiApp = commandData.Application;            Autodesk.Revit.ApplicationServices.Application app = uiApp.Application;            Document doc = uiApp.ActiveUIDocument.Document;            string strAppInfo = app.VersionBuild + ";" + app.VersionName + ";" + app.VersionNumber;            Autodesk.Revit.UI.Selection.Selection sel = uiApp.ActiveUIDocument.Selection;            foreach (Element elem in sel.Elements)            {                elements.Insert(elem);            }            message = "当前选择集中包含如下对象";            return Result.Failed;        }    }}
0 0
原创粉丝点击