Revit二次开发初体验
最近换了下工作,由之前的互联网企业转入了BIM软件开发行列。具体原因不多说,作为一个程序员来说学习永无止境。下面来一个Hello World体验下Revit的二次开发
事前准备
VS
Revit 2017
Revit二次开发中会使用到两个dll文件,由这两个文件来提供对Revit中项目数据的访问,两个dll文件的名称为RevitAPI.dll和RevitAPIUI.dll。获取方式在Revit的安装目录中,我本机Revit安装在E盘,E:\Autodesk\2017\Revit 2017,这个路径下会存在这两个文件,拷贝到自己的项目中并将其添加为项目引用即可或者通过Nuget下载。

HelloWorld入门
1.创建一个类库项目,并以RevitHelloWorld命名,创建DLL文件夹并将上面提到的两个DLL文件拷贝其中,最后将这两个文件引入到项目中,最终效果如下:

2.创建HelloCommand文件,并实现IExternalCommand此接口

红色方框中的就是需要实现你需要的功能的地方。
本例中只简单介绍,所以,代码实现如下:

其中上面的两个特性需要注意必须加上,具体作用可以自己看下。如果不加后期再将这个放入Revit中的时候会提示

项目编译在bin目录下获得

3.打开Revit,创建一个项目

4.在Revit中添加刚才写好的功能

点击进去下面的界面:

选择Load将刚才生成的dll文件引入进来


点击run按钮即可看到刚才代码的效果

到这第一个HelloWorld的功能就完成了。
Revit插件启动模式
配置addin文件启动

在这个目录下创建一个addin文件类型的文件,文件内容如下:

唯一标识码的生成可以利用VS,工具菜单下创建GUID功能,将生成的数据粘贴即可:

这之后启动Revit在附件功能中就可以看到:

项目调试
很多情况下功能的开发总是需要调试的,这样可以跟踪程序的执行步骤,从而发现代码中可能存在的缺陷。这里我们借助VS进行调试。

选择Revit.exe,将当前程序附加到Revit中。并在代码中加入断点。


此时在按一节讲的运行程序即可看到如下效果:

附件模块下的外部工具和Revit Lookup的安装需要自己完成。
其中外部工具是用来调试程序的,Revit Lookup则是帮助开发人员查找属性用的。