Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

  • A+
所属分类:.NET技术

Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容


Revit 2019开发环境的搭建,需要安装的内容如下:
  1. Revit 2019(主要的开发环境)
  2. Visual Studio 2019(用于代码的编写)
  3. Revit SDK 2019
  4. AddinManager(用于管理二次开发插件)
  5. Revit Lookup(查看工具)
  6. lLSpy 4.0.1(查看Revit API)

安装


        系统要求:Windows 10 (x64)

Revit 2020 的安装

        可以选择浏览器搜索Revit找到官网下载,只能试用版本(2020可能已经试用版和正式版2合1了,但是试用到期之后还是要钱)或者选用教育/学生版。如果想要永久版本的……(咳咳,都懂得这东西不好发,而且有手就找得到,懒得找就私信我或者VX:R7jsdh)
        太久版本的Revit版本建议还是不要安装了吧。(Revit 安装过程小概率会遇到总是安装失败的问题,不过不属于本篇笔记的内容,故不加赘述,如果遇到了,同上,私聊,95%的把握可以帮你解决)

Visual Studio 2019 的安装

        在VS社区中可以找到下载链接,可以点击这里下载。
        同时,请注意 .NET框架的安装,另外也要安装 .NET Core 。官方给出的是:Revit 2019 对应 .NET Framwork 4.7。但是本文之后需要安装的 Revit Lookup 用到的是 4.7 的框架,所以即便您安装的是 Revit 2020,请依旧安装 4.7 框架。
        如若想要安装其他版本,譬如Professional,但是苦于只能使用试用版,同上,私信 or VX。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

Revit SDK 2020

        点击这里跳转下载地址,安装路径最好和 Revit 2020 安装在同一路径,非要不在一起也无大碍。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

配置 AddinManager

        Revit SDK 2020安装路径应该包含了Revit SDK文件和AddinManager插件,用来允许外部进行二次开发代码。
        在Windows 10 中可能会找不到该目录:C:ProgramDataAutodeskRevitAddins2020,需要打开资源管理器的【选项卡查看→勾选隐藏的项目】。
        复制SDK文件下的Add-In Manager目录下的AddInManager.dll和Autodesk.AddInManager.addin文件到上面的目录中。然后更改Autodesk.AddInManager.addin文件中的Assembly标签中的东西,里面的路径为SDK的实际安装路径,然后保存。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
如果找不到这句说的2个.dll文件,请参照下方步骤。
  1. 如果你安装了 Revit 2019 SDK,那么可直接将19的这两个AddIn文件复制到上方路径中;
  2. 如果没有,那么请【移步?这里】(提取码:76ig),同样的下载完之后复制两个文件到上方路径即可。

        更改之后打开Revit即可在【附加模块→外部工具】中看到安装的插件。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
提示如果有要求选择载入类型的窗口,请一律选择“总是载入”,切记!Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

Revit Lookup

        点击这里跳转下载地址。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
        选择Download ZIP,下载后解压在先前安装的Revit SDK路径下,之后点击解压完之后的项目文件夹,找到最下面的RevitLookup.sln文件,双击使用VS打开。
如果有弹出窗口显示对应的.NET Framwork 框架版本不对应,请选择第二项,为该项目下载并安装对应版本的.NET 框架,之后浏览器会自动打开一个链接,链接就是框架的下载地址。选择Download .NET Framwork 4.7 Developer Pack,跳转到下载页面之后,会提示你是否需要另外的语言包,确定下载原英文框架之后,可以再自行下载中文(简体)语言包。两个安装包都安装好之后,就会发现打开RevitLookup.sln文件不载有弹窗提示。
        项目打开之后重新添加下面的引用,刚打开项目的时候,这几个引用会有黄色警告⚠的标记,在Revit安装路径下可以找到这些.dll(引用),之后点击启动▶,是否出现提示或者其他窗口请不要在意,主要查看在 C:Program Files (x86)AutodeskRevit 2020 SDKRevitLookup-2019.0.0.7CSbinDebug 中有没有出现这个文件:RevitLookup.dll。
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
需要重新添加的引用
AdWindows
RevitAPI
RevitAPIIFC
RevitAPIMacros
RevitAPIUI
RevitAPIUIMacros
快速找到上方引用的方法
  1. 右键选择【引用→添加引用】
  2. 打开【引用管理器→浏览→选择要引用的文件】
  3. 在浏览窗口的右上方搜索框中输入需要添加的引用,系统即可自动检索到所需内容
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
        在这之后,进入SDK安装路径:C:Program Files (x86)AutodeskRevit 2020 SDKRevitLookup-2019.0.0.7CS,找到RevitLookup.addin文件,打开文件,将里面的Assembly标签内容修改为(即上述编译生成的RevitLookup.dll所在的路径,也就是?C:Program Files (x86)AutodeskRevit 2020 SDKRevitLookup-2019.0.0.7CSbinDebug)    
        这之后,将这个已经修改过的RevitLookup.dll拷贝到该目录中?C:ProgramDataAutodeskRevitAddins2020,如此,便完成RevitLookup的安装,重启Revit 2020之后就可以在选项卡【附加模块】中看到RevitLookup,如下图:
Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
需要提醒的是,红框标记处的Revit Lookup只有当打开一个项目的时候才会亮起,否则是灰色的图标且不能点击。

ILSpy 4.0.1

        点击这里跳转下载地址。

测试

参考用例来自:https://www.cnblogs.com/bimer/p/7473208.html,有更改,并添加了一些注意点,但完全正确,请放心跟随操作。
  1. 打开Visual Studio 2019,创建新项目,找到创建模板【类库(.NET Framwork)】,切记,选择的是类库(.NET Framwork),不是类库(通用 Windows)或者类库(.NET Standard),这里一定会有人心急赶紧弄好而看错。之后写上项目名Hello Revit。
  2. 在右边的引用中右键添加引用(RevitAPI.dllRevitAPIUI.dll),用上文一样的方法,找到所需要的添加的引用,确定添加之后,记得把这里上述两个引用的【复制到本地】属性改为false,否则会生成一大堆没用的东西。因为做的是测试插件,不可能脱离Revit程序本身来运行的。
  3. 除了using System;其他所有的引用全部删掉;然后在后面加上下面的字段。
    using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.Attributes;
  4. 在默认生成的public class Class1{}前面加上下面的字段。
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
  5. 把默认生成的public class Class1{}改成下面的字段。
    public class Class1: IExternalCommand{}
  6. 在上面的字段内部添加下面的字段。
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { }
  7. 在上面的字段内部添加如下字段。
    TaskDialog.Show(“Revit”, “Hello Revit!”); return Result.Succeeded;
  8. 最终这个.cs文件的全部代码应该是下面这样:
    using System; using Autodesk.Revit.DB;  using Autodesk.Revit.UI;  using Autodesk.Revit.Attributes;  namespace Hello_Revit {     [Transaction(TransactionMode.Manual)]     public class Class1 : IExternalCommand     {         public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)         {             TaskDialog.Show("Revit", "Hello Revit!");             return Autodesk.Revit.UI.Result.Succeeded;         }     } }
  9. CtrlK,S保存全部文件,不会快捷键的情点击【文件】,找到【全部保存】。之后右键项目本身选择【属性】,找到【生成】,把【目标平台】改为 x64,省略该步骤在编译的时候会出现警告。检查无误之后生成类库,并记下输出窗口中的.dll文件的位置。【是目标平台!不要看成平台!Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
  10. 新建一个文本文件.txt,输入以下内容。但是要注意的是:注意第4行、第5行和第6行,都要根据实际情况填写。第4行Assembly标签内就是上一步记下的.dll文件的位置,第5行AddIn标签的内容可以在这个类库项目的Properties文件夹中的AssemblyInfo.cs文件里找到,直接把Guid冒号后面的引号中内容完全粘贴到标签内即可。【FullClassName标签内的类名一定要和上面的类库项目中.cs文件的命名空间一致,下面的代码中Hello和Revit字段中间的下划线是因为创建项目的名称是Hello Revit,创建时会默认把空格当做下滑线处理。
    <?xml version ="1.0" encoding ="utf-8" standalone ="no"?> <RevitAddIns>   <AddIn Type="Command">     <Assembly>E:文档Visual Studio 2019reposHello RevitbinDebugHello Revit.dll</Assembly>     <AddInId>0d27e093-398b-41f2-bbfd-eaef14cad3b1</AddInId>     <FullClassName>Hello_Revit.Class1</FullClassName>     <Text>Hello Revit</Text>     <VendorId>NAME</VendorId>   </AddIn> </RevitAddIns>
  11. 把这个.txt文件重命名为HelloRevit.addin,复制到Revit插件目录下:C:ProgramDataAutodeskRevitAddins2020。
  12. 重启Revit,选择【附加模块→外部工具→Hello Revit】,执行之后就可以看到弹出对话框,测试成功。Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)