写在前面,今天第一次接触Revit二次开发,要做的两件事情
第一,搭建环境(安装的是**版2017的Revit软件。下载SDK2017的并安装。还有开发平台VS2015)。
第二,首先就是运行HelloRevit的插件(和CAD二次开发很像,加载dll文件的形式,不同的是需要一个注册文件.addin来指定dll的路径)
搭建环境就不描述了,软件安装包是同事的,网上应该可以找到的。SDK下载地址直接网上搜索,下载2017 SDK就好,安装很简单,下载下来的安装包双击就好。直接开始附上标题提到的两种问题的解决方法。
一、“附加模块”中添加“外部工具”
1.打开Revit,在上方工具栏中找到“附加模块”,点开发现缺少“外部工具”按钮
2.找到SDK的安装目录,打开Add-In-Manager文件夹,复制下图所示3个文件,2016的有四个文件,反正就是除了其他两个没选中的,这个文件夹中剩几个复制几个文件。
3.粘贴到安装目录下,这个安装目录不是你安装Revit时选择的安装目录,不管你安装在哪个盘,这个时候都应该去C盘找。我的安装目录是C:\Users\AAD\AppData\Roaming\Autodesk\Revit\Addins\2017 (这个地方需要注意的是首先你去你的C盘找,并且要设置隐藏项目文件可见,设置方法附在下图)
设置隐藏项目可见
粘贴文件到C盘Revit安装目录
4.粘贴后打开Autodesk.AddInManager.addin文件,修改下图三处,将框红的地方都替换上自己的路径,就是这个文件所在的路径。
5.点开“附加模块”,“外部工具”就显示出来了,如果没显示重启Revit即可。但是如果你是开着Revit操作的,那么在第三步粘贴的时候,文件一粘贴进去桌面就会弹出提示问你是否加载什么,选择加载就好了,如果有弹出提示,那么你的设置是一定成功了的。
二、“外部工具”中添加新建插件HelloRevit
安装好Revit、SDK、和VS后,
1.首先得新建类库项目,添加引用等,最后运行以下代码生成HelloRevit.dll文件。
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
namespace HelloRevit
{
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData revit,ref string message,ElementSet elements) {
TaskDialog.Show("Revit","Hello Revit");
return Autodesk.Revit.UI.Result.Succeeded;
}
}
}
2.生成HelloRevit.addin文件。文件内容如下,<Assembly></Assembly>标签中间应该写上自己的放以上HelloRevit.dll的路径
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>D:\workdocument\cad\HelloRevit\HelloRevit\bin\Debug\HelloRevit.dll</Assembly>
<ClientId>7d4e1893-3a27-4df2-8075-4fa3754537aa</ClientId>
<FullClassName>HelloRevit.Class1</FullClassName>
<Text>HelloWorld</Text>
<VisibilityMode>AlwaysVisible</VisibilityMode>
<LanguageType>Unknown</LanguageType>
<VendorId>ADSK</VendorId>
</AddIn>
</RevitAddIns>
3.最后一步就是最容易出错的地方,网上查的时候告知了以下n个位置放.addin文件,但是我在试的时候一个都没有用,最后,放在了C:\Users\AAD\AppData\Roaming\Autodesk\Revit\Addins\2017这个目录下。这个目录就是以上我提到的,“附加模块”中添加“外部工具”的步骤3,粘贴文件的目录。
备注:网上查资料时查到的目录,我试过没有用,附在这里或许其他情况可以用到