-
新建一个类库
- 将设置修改成如下图
注意:不用版本的Revit对应的目标框架不同,Revit2016对应的是.Net Framework 4.5
-
调试设置
-
引用Dll
引用Revit安装目录下的RevitAPI.dll和RevitAPIUI.dll
本机Revit安装路径C:\Program Files\Autodesk\Revit 2016
引用System.Windows.Forms.dll
-
两种方式来扩展Revit的功能
方式一:外部命令(External Command)功能:添加一个Revit命令
描述: 由用户点击按钮来启动命令,使用最频繁
方式二:外部应用(External Application)功能:
可以添加菜单和工具条,或其它初始化命令
描述:在启动和关闭Revit.exe时自动执行,一般会用到,用量不多
-
加载外部命令
命令加载方式一: 通过addin文件
*.addin文件可用任意文件名,只要扩展名是addin即可,只能存放在指定的目录C:\Users\[UserName]\AppData\Roaming\Autodesk\Revit\Addins\2016或者
C:\ProgramData\Autodesk\Revit\Addins\2016中,
在该文件夹下可有多个*.addin文件并存,Revit会依次加载其中设置的加载项目
-
创建外部应用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI.Selection;
namespace RvtSample
{
//外部应用(External Application):
//可以添加菜单和工具条,或其它初始化命令
//在启动和关闭Revit.exe时自动执行
[Transaction(TransactionMode.Automatic)]
[Regeneration(RegenerationOption.Manual)]
public class SampleApp : IExternalApplication
{
public Result OnStartup(UIControlledApplication application)
{
//MessageBox.Show("Start Revit !");
AddRibbon(application);
return Result.Succeeded;
}
public Result OnShutdown(UIControlledApplication application)
{
return Result.Succeeded;
}
}
}
创建命令
namespace RvtSample
{
//外部命令(External Command):由用户点击按钮来启动命令
[Transaction(TransactionMode.Automatic)]
[Regeneration(RegenerationOption.Manual)]
[Journaling(JournalingMode.NoCommandData)]
public class Hello : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
WinForm.MessageBox.Show("Hello World");
return Result.Succeeded;
}
}
}