主頁 > .NET開發 > Revit二次開發環境配置(Revit 2020 +Visual Studio 2019)

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

2021-02-08 06:15:21 .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 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,
需要重新添加的參考】AdWindowsRevitAPIRevitAPIIFCRevitAPIMacrosRevitAPIUIRevitAPIUIMacros【快速找到上方參考的方法
  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

        點擊這里跳轉下載地址,

測驗

參考用例來自: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檔案的位置,【是目標平臺!不要看成平臺!
  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】,執行之后就可以看到彈出對話框,測驗成功,







來自為知筆記(Wiz)

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/257630.html

標籤:.NET技术

上一篇:WPF中使用附加屬性解決PasswordBox的資料系結問題

下一篇:ASP.NET Core MVC過濾器初探

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more