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】,執行之後就可以看到彈出對話方塊,測試成功。