Revit二次開發環境搭建(Revit 2019+Visual Studio 2017)准備內容
Revit 2019開發環境的搭建,需要安裝的內容如下:
- Revit 2019(主要的開發環境)
- Visual Studio 2019(用於代碼的編寫)
- Revit SDK 2019
- AddinManager(用於管理二次開發插件)
- Revit Lookup(查看工具)
- 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。

配置 AddinManager
Revit SDK 2020安裝路徑應該包含了Revit SDK文件和AddinManager插件,用來允許外部進行二次開發代碼。
在Windows 10 中可能會找不到該目錄:C:\ProgramData\Autodesk\Revit\Addins\2020,需要打開資源管理器的【選項卡查看→勾選隱藏的項目】。
復制SDK文件下的Add-In Manager目錄下的AddInManager.dll和Autodesk.AddInManager.addin文件到上面的目錄中。然后更改Autodesk.AddInManager.addin文件中的Assembly標簽中的東西,里面的路徑為SDK的實際安裝路徑,然后保存。

【
注】
如果找不到這句說的2個.dll文件,請參照下方步驟。
- 如果你安裝了 Revit 2019 SDK,那么可直接將19的這兩個AddIn文件復制到上方路徑中;
- 如果沒有,那么請【移步🔒這里】(提取碼:76ig),同樣的下載完之后復制兩個文件到上方路徑即可。
更改之后打開Revit即可在【附加模塊→外部工具】中看到安裝的插件。

【
提示】
如果有要求選擇載入類型的窗口,請一律選擇“總是載入”,切記!

Revit Lookup
點擊
這里跳轉下載地址。


選擇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)\Autodesk\Revit 2020 SDK\RevitLookup-2019.0.0.7\CS\bin\Debug 中有沒有出現這個文件:RevitLookup.dll。

【
需要重新添加的引用】
AdWindows
RevitAPI
RevitAPIIFC
RevitAPIMacros
RevitAPIUI
RevitAPIUIMacros
【
快速找到上方引用的方法】
- 右鍵選擇【引用→添加引用】
- 打開【引用管理器→瀏覽→選擇要引用的文件】
- 在瀏覽窗口的右上方搜索框中輸入需要添加的引用,系統即可自動檢索到所需內容


在這之后,進入SDK安裝路徑:C:\Program Files (x86)\Autodesk\Revit 2020 SDK\RevitLookup-2019.0.0.7\CS,找到RevitLookup.addin文件,打開文件,將里面的Assembly標簽內容修改為(即上述編譯生成的RevitLookup.dll所在的路徑,也就是👉
C:\Program Files (x86)\Autodesk\Revit 2020 SDK\RevitLookup-2019.0.0.7\CS\bin\Debug)
這之后,將這個已經修改過的
RevitLookup.dll拷貝到該目錄中👉C:\ProgramData\Autodesk\Revit\Addins\2020,如此,便完成
RevitLookup的安裝,重啟Revit 2020之后就可以在選項卡【
附加模塊
】中看到
RevitLookup,如下圖:

【
注】
需要提醒的是,紅框標記處的Revit Lookup只有當打開一個項目的時候才會亮起,否則是灰色的圖標且不能點擊。
ILSpy 4.0.1
點擊
這里跳轉下載地址。
測試
- 打開Visual Studio 2019,創建新項目,找到創建模板【類庫(.NET Framwork)】,切記,選擇的是類庫(.NET Framwork),不是類庫(通用 Windows)或者類庫(.NET Standard),這里一定會有人心急趕緊弄好而看錯。之后寫上項目名Hello Revit。
- 在右邊的引用中右鍵添加引用(RevitAPI.dll和RevitAPIUI.dll),用上文一樣的方法,找到所需要的添加的引用,確定添加之后,記得把這里上述兩個引用的【復制到本地】屬性改為false,否則會生成一大堆沒用的東西。因為做的是測試插件,不可能脫離Revit程序本身來運行的。
- 除了using System;其他所有的引用全部刪掉;然后在后面加上下面的字段。
using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.Attributes;
- 在默認生成的public class Class1{}前面加上下面的字段。
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
- 把默認生成的public class Class1{}改成下面的字段。
public class Class1: IExternalCommand{}
- 在上面的字段內部添加下面的字段。
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { }
- 在上面的字段內部添加如下字段。
TaskDialog.Show(“Revit”, “Hello Revit!”); return Result.Succeeded;
- 最終這個.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; } } }
- CtrlK,S保存全部文件,不會快捷鍵的情點擊【文件】,找到【全部保存】。之后右鍵項目本身選擇【屬性】,找到【生成】,把【目標平台】改為 x64,省略該步驟在編譯的時候會出現警告。檢查無誤之后生成類庫,並記下輸出窗口中的.dll文件的位置。【注】是目標平台!不要看成平台!
- 新建一個文本文件.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 2019\repos\Hello Revit\bin\Debug\Hello Revit.dll</Assembly> <AddInId>0d27e093-398b-41f2-bbfd-eaef14cad3b1</AddInId> <FullClassName>Hello_Revit.Class1</FullClassName> <Text>Hello Revit</Text> <VendorId>NAME</VendorId> </AddIn> </RevitAddIns>
- 把這個.txt文件重命名為HelloRevit.addin,復制到Revit插件目錄下:C:\ProgramData\Autodesk\Revit\Addins\2020。
- 重啟Revit,選擇【附加模塊→外部工具→Hello Revit】,執行之后就可以看到彈出對話框,測試成功。