Revit 二次开发途径
开发途径分为两种:内部开发环境和外部开发环境。
内部开发环境:1.模块
Module_Startup方法(模块加载时执行)
Module_Shutdown方法(模块卸载时执行)
2.宏
方法(运行宏时执行)
外部开发环境:1.IExternalApplication(外部应用)
OnShutdown方法(Revit关闭时执行)
OnStartup方法(Revit打开时执行)
2.IExternalCommand(外部命令)
Execute(运行外部命令时执行)
一.首先我们来演示一下内部开发环境
1.模块
打开Revit 2016,新建一个项目,管理—宏管理器—模块—模块名称module1—确定,弹出Module1-SharpDevelop,
![](https://img.haomeiwen.com/i7907735/45466e0bb1cfaa78.jpg)
在privatevoidModule_Startup(objectsender, EventArgs e)中添加代码
TaskDialog .Show("Revit-Startup","Hello world!");
在privatevoidModule_Shutdown(objectsender, EventArgs e)中添加代码
TaskDialog .Show("Revit-Startup","Hello world!");
![](https://img.haomeiwen.com/i7907735/dfe46ac6965453db.png)
生成解决方案,跳转页面弹出如下
![](https://img.haomeiwen.com/i7907735/99c9fc9395bd7e17.png)
关闭Revit,弹出如下
![](https://img.haomeiwen.com/i7907735/fa8251936e26428f.png)
成功
2.宏
打开刚才创建的项目1,管理—宏管理器—宏—添加名称 hong1—确定,弹出SharpDevelop,
在public void hong1中添加
TaskDialog.Show("Revit_hong1","Hello Hello Hello WOrld!");
![](https://img.haomeiwen.com/i7907735/b90349336b6a4ea8.png)
![](https://img.haomeiwen.com/i7907735/019225b34bf6a6eb.png)
生成解决方案,运行
![](https://img.haomeiwen.com/i7907735/dc1ac3a0e05be4d3.png)
成功!
二.下面来演示外部开发环境
1.IExerternApplication(相当于内部开发环境里的模块)
在ClassLibrary1的基础上,添加—新建项,得到Class2.cs,如前面一样添加代码,
![](https://img.haomeiwen.com/i7907735/23606fbd40ae7f76.png)
public Result OnShutdown(UIControlledApplication application)
{
TaskDialog.Show("Revit_OnShutDown", "Hello World!");
return Result.Succeeded;
}
public Result OnStartup(UIControlledApplication application)
{
TaskDialog.Show("Revit_OnStarup", "Hello Hello World!");
return Result.Succeeded;
}
![](https://img.haomeiwen.com/i7907735/a82f3b81b17ed43e.png)
生成解决方案后创建一个addin文件
![](https://img.haomeiwen.com/i7907735/3b9bf5c670697dda.png)
<assembly>指生成的dll文件路径
<ClientId>项目 - (命名空间)属性 - 应用程序 - 程序集信息 - GUID
<FullClassName>指命名空间.类名
![](https://img.haomeiwen.com/i7907735/423750b528add722.png)
保存后放在Revit的addin 目录中,打开Revit,成功。
![](https://img.haomeiwen.com/i7907735/f65975d0b54466cb.png)
2.IExerternCommand(相对于宏)
相当于前面的Hello World!
![](https://img.haomeiwen.com/i7907735/869232c6fb584dc4.png)