Revit二次開發環境配置(Revit 2020 +Visual Studio 2019)

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 SDK 2020

        點擊這裡跳轉下載地址,安裝路徑最好和 Revit 2020 安裝在同一路徑,非要不在一起也無大礙。

配置 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文件,請參照下方步驟。
  1. 如果你安裝了 Revit 2019 SDK,那麼可直接將19的這兩個AddIn文件複製到上方路徑中;
  2. 如果沒有,那麼請【移步🔒這裡】(提取碼: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
快速找到上方引用的方法
  1. 右鍵選擇【引用→添加引用】
  2. 打開【引用管理器→瀏覽→選擇要引用的文件】
  3. 在瀏覽窗口的右上方搜索框中輸入需要添加的引用,系統即可自動檢索到所需內容
        在這之後,進入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

        點擊這裡跳轉下載地址。

測試

參考用例來自://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文件的位置。【是目標平台!不要看成平台!
  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 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>
  11. 把這個.txt文件重命名為HelloRevit.addin,複製到Revit插件目錄下:C:\ProgramData\Autodesk\Revit\Addins\2020。
  12. 重啟Revit,選擇【附加模組→外部工具→Hello Revit】,執行之後就可以看到彈出對話框,測試成功。
Tags: