Revit插件开发
Revit的二次开发,跟版本关系比较大,这里Revit用的是2019版本,vs用的是2017版本,开发用的语言是C#,用到的.net框架是4.7.1版.请特别注意版本!版本不同时,会碰到小问题,但总体思路是一致的。
操作系统:Windows10 64位版本
Revit2019版本,请到Autodesk下载即可
Visual Studio 2017版本,请到微软公司下载即可,注意vs安装时,要安装C#
特别注意:Revit官方要求,2019Revit要匹配的.Net框架版本是4.7,在这里我只找到了4.7.1,大版本号一致,最后看起来没问题。
-
安装插件管理,方便管理插件,安装后会在附加模块中多出一个外部工具选项。如果已经安装了RevitSDK,它包含了插件管理器。
配置插件管理器,将dll和addin文件拷贝到Revit插件目录下,并修改addin文件的具体内容,比较烦琐,
具体操作
安装RevitLookup插件,将来调试时使用
下载地址,
下载后解压到RevitSDK目录下,寻找RevitLook.sln文件,用VS打开,更换6个引用,AdWindows,RevitAPI,RevitAPIIFC,RevitAPIMacros,RevitAPIUI,RevitAPIMacros
上述6个引用的“复制到本地”属性改为False,我们不需要拷贝它们只要引用就好。
找到RevitLookup.addin修改它,也比较烦琐,
具体操作
终于到了写HelloWorld
vs2017中新建项目,在模板中选择Visual C#,和 类库(.Net Framework) ,注意记住项目的名字,后续会用到。
在解决方案管理其中,添加引用。在引用管理器中选择“浏览”,在Revit安装目录下找到RevitAPI.dll和RevitAPIUI.dll。
上述两个引用的“复制到本地”属性改为False,我们不需要拷贝它们只要引用就好。
把代码改成如下:
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
namespace revit_plus1
{
[TransactionAttribute(TransactionMode.Manual)]
//[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData,ref string message,ElementSet elements)
{
TaskDialog.Show("Revit", "HelloWorld!");
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}
注意修改平台类型,在VS的 “生成” → “配置管理器” → “活动解决方案平台” 中增加 “X64”平台。
编译成功后,在项目 “属性”→“生成”→“输出”→“输出路径”能看到dll最终在哪个目录,注意利用dll生成时间判断是否新生成。
在Revit插件目录增加一个“HelloWorld.addin”:这里比较烦琐,
具体操作
启动Revit,在“附加模块”→“外部工具”的下拉箭头处找到“HelloWorld”,执行后,可以看到弹出对话框,搞定