下載app免費領取會員
revit二次開發(fā)可以用于建筑項目進度管理系統(tǒng)的開發(fā),在項目進行前通過編寫計劃,設置好項目的時間信息,建筑信息,項目信息等,通過一些列的數(shù)據(jù)信息建立模型和生成明細表等,有了模型數(shù)據(jù)和明細表之后,就可以用來做資源分析和計劃優(yōu)化等,從而能使項目計劃更加科學高效。
推薦課程學習
課程介紹:Dynamo For Advance steel二次開發(fā)實現(xiàn)鋼箱梁建模思路
課程介紹:單購本門課程可以聯(lián)系老師獲取源文件,微信號:17553101005(備注:腿腿教學網(wǎng)地磚排版單購學員) 讓學員掌握revit非插件開發(fā),充分擴展revit的自身功能?。
課程介紹:本課程針對編程零基礎的BIM工程師,自己制作插件工具。學會了本視頻的課程,對關于Revit的二次開發(fā)會有一個更清晰的認識。本課程不提供課件素材
推薦文章閱讀
文章介紹:有些開發(fā)者在用VS2013 或VS2015調(diào)試插件代碼時,發(fā)現(xiàn)無法跟蹤調(diào)試。 但是在VS2010,VS2012下沒有問題。
文章介紹:第一步通過MakeCert.exe工具制作自己的數(shù)字證書; 第二步通過 Pvk2Pfx.exe 工具制作個人信息; 第三步通過SignTool.exe 注冊dll; 第四部將數(shù)字證書導入證書庫中;
文章介紹: HOOK(鉤子,掛鉤)是一種實現(xiàn)Windows平臺下類似于中斷的機制。HOOK機制允許應用程序攔截并處理Windows消息或指定事件,當指定的消息發(fā)出后,HOOK程序就可以在消息到達目標窗口之前將其捕獲
文章介紹: 很多人出于某種用途為族設置特殊的參數(shù)之后,希望可以將其隱藏。在Revit官方暴露出來的API中,是沒有方法來實現(xiàn)的。以下代碼演示了如何將墻體所有參數(shù)隱藏!
文章介紹:前幾日深夜對如何獲取相交構件及Face重合的判斷做了些探索,也和行內(nèi)的大佬進行了一定的技術交流,我覺得還是有必要寫一寫,探討一下。
文章介紹:今天說說數(shù)字簽名這個事情。一般來說公司發(fā)布插件產(chǎn)品肯定要對插件進行數(shù)字簽名的。之前的文章也提到,Autodesk Revit自2017版開始對插件進行數(shù)字簽名認證。
文章介紹:在該示例中,Revit.DB.Geometry.XYZ 類用于定義宏將添加到活動文檔的活動視圖中的文本框中的文字注釋的位置(使用 X、Y、Z 坐標)。
文章介紹:從事工程設計行業(yè)的人員在遇到一些工程量大且模式相對單一的工程設計環(huán)節(jié)時會顯得力不從心,而作為BIM技術的大眾化軟件,除了自身功能強大,可以自動化準確的生成模型和施工圖,此外,也支持豐富的API開發(fā)功能(應用程序接口),這一特點充分體現(xiàn)了BIM軟件平臺級軟件優(yōu)勢。借助于API,其他BIM軟件就可以通過數(shù)據(jù)庫將BIM軟件建模參數(shù)實現(xiàn)信息共用,也可以高效的把其他軟件的功能和特點集成到BIM軟件中,實現(xiàn)復雜的建模工作簡易化、自動化、多元化,而且在一個平臺上利用同一個模型就能完成各階段所需的所有任務。所以對BIM軟件進行二次開發(fā)實現(xiàn)各類軟件信息互聯(lián)互通已成為工程設計行業(yè)的熱門工具。在對BIM軟件進行二次開發(fā)之前了解它能做什么非常有必要,通過BIM軟件二次開發(fā)技術可以實現(xiàn)如下內(nèi)容:導入外部數(shù)據(jù),創(chuàng)建新元素或設置參數(shù);訪問模型數(shù)據(jù),自動完成重復的建模工作;創(chuàng)建插件,完成UI的增強;連接外部數(shù)據(jù)庫,將其他計算分析軟件轉換集成到BIM軟件中;自動檢測錯誤,保證符合產(chǎn)品設計規(guī)范;自動獲取工程量,生成報告便于分析。API,即應用程序接口(Application Programming Interface)。BIM軟件原來是沒有API功能的,被合并到Autodesk后其BIM軟件開始提供二次開發(fā)的API接口。API提供了一種擴展軟件功能和規(guī)范的機制,是基于軟件產(chǎn)品的一個類庫,需要在BIM軟件運行時工作。API允許使用者通過任何與.NET兼容的語言來編程,第三方開發(fā)人員可以通過API將其應用程序與AutodeskBIM軟件集成。使用API用戶可以創(chuàng)建插件來完成UI增強。對一些重復工作的自動化,導入外部數(shù)據(jù)來建立單元或者設置參數(shù)值,連接到外部數(shù)據(jù)庫,轉換數(shù)據(jù)到分析應用,訪問模型的參數(shù)數(shù)據(jù)等一系列功能。
文章介紹:Revit二次開發(fā)有什么用?聽到Revit二次開發(fā)的概念時,你是否首先也會閃過這樣的一個疑問。其實進行了二次開發(fā)的Revit在應用體驗和效果表達上可謂是天差地別,當我們掌握了Revit二次開發(fā),我們就能做以下事情:(1)真正意義上的操控Revit。操控就是對模型進行增、刪、改、查。增就是創(chuàng)建看得見的模型,或者看不見的類型或配置。刪、改就是批量刪除不需要的元素,修改模型中元素的空間位置、狀態(tài)和各種屬性。查,就是獲取文檔中的信息。沒有二次開發(fā),對于Revit的操作與控制,只能用自帶的按鈕工具來進行,超出功能使用范圍,有想象力也沒有發(fā)揮的空間,但通過二次開發(fā),Revit將會被你拿捏的死死的。(2)避免重復操作。計算機最擅長的就是重復操作,而我們?nèi)祟愂怯憛捴貜筒僮鞯纳铩_@也是為什么那些帶有批量功能的插件會受到大家熱捧,批量改族,批量布置族,批量提取信息,批量添加信息等等,項目越大、批量操作越多,開發(fā)就越有必要。(3)實現(xiàn)自動化流程。Revit二次開發(fā)可以按順序執(zhí)行,條件執(zhí)行,循環(huán)執(zhí)行,自動化完成設定的流程,這樣一來,可以確定的工作流,通過編譯,只用動一下手指就可以輕松完成。(4)實現(xiàn)數(shù)據(jù)的互聯(lián)互通,打通程序壁壘。盡管Revit有許多格式可以導出,但是數(shù)據(jù)的丟失、適用性一直是個問題。你想導入導出Excel,不方便;你想導出到其他軟件進行結構計算,不方便;你想與數(shù)據(jù)庫交互,不方便;你想做VR展示,不方便。通過Revit二次開發(fā),你可以將信息通道打穿,杜絕信息孤島,滿足所有數(shù)據(jù)交互的需求。相關課程:Revit 二次開發(fā)入門詳解:http://www.caogenso.com/view/378.html葉雄進:Revit 二次開發(fā)視頻教程合集:http://www.caogenso.com/view/367.html
文章介紹:文章來源:BIM開發(fā)帶入門 “俗話說得好,工欲善其事,必先利其器。我們要有充足的準備工作做起開發(fā)才不會手忙腳亂,那么一個Revit二次開發(fā)員需要準備什么呢?下面我將詳細列舉,并且說明這些分別對我們未來的開發(fā)有何幫助。”Revit2018和軟件相關操作做Revit的二次開發(fā)工作,那么我們是基于Revit進行開發(fā)工作,其軟件必不可少,其次需要明白軟件功能和使用邏輯,如果軟件操作還不熟練,那需要補充基本技能,這里不再展開說明。使用偶數(shù)版本比較穩(wěn)定,這里推薦使用2018,當然學會后舉一反三其他版本也可進行開發(fā)工作。C#語言基礎Revit二次開發(fā)支持C#,Visual Basic,C++三種語言支持,目前主流使用C#。C#是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言。其相對簡單,網(wǎng)絡上相關教程也比較多。程序語言就像與計算機交流的手段,如果這方面不足,那開發(fā)工作將難以進展下去,推薦不足的同學需要補充相關知識,由于Revit二次開發(fā)對于語言深度不會要求太高,所以了解一部分基礎知識后即可開展開發(fā)工作,如果望而卻步,那永遠也不會前進。Visual Studio 2019Visual Studio是最流行的Windows平臺應用程序的集成開發(fā)環(huán)境。可以用于生成 ASP.NET Web 應用程序、XML Web services、桌面應用程序和移動應用程序等。 我們主要使用其中的類庫模板,創(chuàng)建DLL(Dynamic Link Library,動態(tài)鏈接庫)文件。今后基本上都是使用Visual Studio進行代碼編寫和編譯。VS(Visual Studio)的版本和Revit的版本沒有直接對應關系,只要保證框架在.NET Framework 4.5.2以上即可,這里使用NET Framework 4.7.2,當然你可以選擇使用更高級的版本框架。Revit2018 SDKSDK(Software Development Kit,軟件開發(fā)工具包)是為特定軟件包、框架、硬件平臺、操作系統(tǒng)等建立引用軟件的開發(fā)工具的集合。SDK相當于很多API接口和其他支持文件的集合體。它是一個軟件開發(fā)工具包。那么什么是API?API (Application Programming Interface,應用程序編程接口),是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機制的細節(jié)。簡單來說SDK就是Autodesk給開發(fā)人員準備的API幫助文檔、范例以及幫助工具的集合文件。而API就是Autodesk給開發(fā)人員準備的軟件快捷操作代碼接口。我們編寫主要使用開放的API代碼進行編寫,而如何知道開放了哪些以及如何使用則利用SDK的相關文件進行相關查找。Addin Manager如果你有了Revit2018 SDK文件,那么你也就有了Addin Manger的相關組件。Addin Manager是官方插件,用來加載DLL文件的,它會把DLL復制到Revit臨時文件下進行直接加載和運行,用于開發(fā)人員測試程序的有效性和穩(wěn)定性,無需重啟Revit。Revit Lookup同樣Revit Lookup也包含在Revit2018 SDK中,它可以快速清晰地查看Revit構件開放的相關信息,讓我們了解到Revit隱藏的各種數(shù)據(jù),從而讓我們更高效地挖掘和利用這些數(shù)據(jù)。
文章介紹:Revit軟件的建模功能非常強大,但在結構計算與分析、編輯鋼筋等方面的功能還存在很多不足,好在Revit提供了應用程序編程接口(Application Programming Interface,以下簡稱API)供第三方作二次開發(fā),通過這個接口,我們可以編寫開發(fā)插件以完善Revit的功能。簡而言之,API就是一個接口,是軟件開發(fā)人員用來與第三方軟件進行交互的工具。API允許用戶和開發(fā)人員通過編寫向軟件添加新功能的程序或腳本來擴展現(xiàn)有應用程序的功能。Revit API提供了Revit訪問接口的各種功能,用戶可以根據(jù)自己的需求對Revit進行功能擴展。借助Revit API,用戶可以直接更BIM模型中的構件,也可以訪問數(shù)據(jù)來實現(xiàn)一定的功能。高級用戶和軟件開發(fā)人員利用Revit API可根據(jù)自己的需求對Revit進行功能擴展,創(chuàng)建自定義工具,從而改善工作流程,提高建筑設計、施工、運維的效率。與具有25年以上的API和自定義歷史的AutoCAD相比,Revit API仍不算成熟。2005年,Autodesk在Revit8中正式引入了Revit API。從那時起,Revit API穩(wěn)步擴大和完善,盡管仍然存在很大的局限性,但現(xiàn)已成為擴展Revit功能、解決各種問題的有效工具。例如,利用Revit API擴展的數(shù)據(jù)提取和導入、幾何提取、屬性處理、建筑分析、基本設計自動化和配置、簡單的系列創(chuàng)建和管理、自動導出和打印等功能已經(jīng)相對成熟,而另一些更深層次的功能,例如交互式(拾取和放置)應用程序、大規(guī)模設計自動化、批處理自動化等還不能通過Revit API得到實現(xiàn)。文:周君蔚 版權歸原作者所有
文章介紹:Revit二次開發(fā)需安裝必須的二次開發(fā)平臺,明確開發(fā)環(huán)境、開發(fā)方式以及開發(fā)流程。開發(fā)環(huán)境Revit API可用與.NET Framework兼容的開發(fā)語言進行編程,.NET Framework為用戶程序開發(fā)提供了一套安全模型,在此模型中可以確保使用的代碼被識別,保證了編程語言的一致性。支持.NET的編程語言有C#、Visual Basic、C++等。由于CH語言.NET平臺耦合度很高,且語法簡潔,開發(fā)效率高,故選擇C#作為開發(fā)編程語言,安裝Microsoft.NET Framework 4.6。安裝Revit 2018作為建模平臺,選擇的開發(fā)軟件工具為Visual Studio 2013,在程序開發(fā)前引入RevitAPl.dIl”及“RevitAPIUI.dlI”動態(tài)鏈接庫。開發(fā)方式通過Revit API 擴展其功能模塊,主要有兩種特殊的接口派生類:外部命令(IExternalCommand)和外部應用(IExternalApplications)。IExternalCommand是RevitAPI中實現(xiàn)外部擴展的命令,內(nèi)含Excute函數(shù)。外部命令調(diào)用Excute函數(shù)來實現(xiàn)IExternalCommand,Excute 的定義方式public Autodesk.Revit.UI.Result Execute(ExternalCommandData cmdData,ref string message,ElementSet elements),分別為輸入?yún)?shù)CommandData(ExternalCommandData)、輸出參數(shù)message(string)、輸出參數(shù)elements(ElementSet)。開發(fā)者可以通過實現(xiàn)IExternalApplications來添加自己開發(fā)的Revit應用,IExternalApplication 的接口要實現(xiàn)兩個抽象函數(shù):OnStartup和 OnShutdown,利用OnStartup()函數(shù)和 OnShutdown)函數(shù)定制Revit啟動和關閉的時候所需的功能,開發(fā)時在外部命令中添加相應的功能代碼,依附于外部應用的框架,再利用.addin注冊文件共同控制著外部插件的識別和加載,一般用來創(chuàng)建插件的菜單欄。 RevitAPI為方便用戶配置自己的ExternalCommand和 ExternalApplication的行為提供了多種屬性,為命令類添加控制命令的事務模式和更新模式,通常選用手動(Manual)模式,Transactiori屬性,用戶必須在實現(xiàn)IExternalCommand接口時指定外面命令使用的TransactionMode屬性。Regeneration用于控制外部命令或外部應用程序的再生行為。為命令類添加控制命令的事務模式和更新模式[Transaction(TransactionMode.Manual)],[Regeneration(RegenerationOption.Manual)]使用API需要用到應用類和文檔類。應用類有UIApplication和 Application 。UIApplication用來提供訪問UI級別接口,包括訪問用戶界面·RibbonPanels,獲得用戶界面的活動文檔等能力。Application用來提供訪問其他應用級別內(nèi)容接口。文檔類有UIDocument和 Document。UIDocument用來提供訪問UI級別接口,Document用來提供訪問其他應用級別內(nèi)容接口。如圖所示為Revit二次開發(fā)基本流程。文:高建新 大連海事大學
文章介紹:Revit API為Revit的功能擴展提供了無限可能,能幫助我們提升開發(fā)效率。以下是二次開發(fā)中常用到的工具:(1)Visual StudioMicrosoft Visual Studio(簡稱VS)是一款功能強大的編程軟件,是一個全面的集成開發(fā)工具集。這款產(chǎn)品是市面上用戶群體最多,功能最為齊全的工具,個人用戶可以于微軟官網(wǎng)下載完全免費的社區(qū)版,對于普通個人用戶功能已經(jīng)完全夠用。最新的社區(qū)版中已經(jīng)支持了CodeLens工具,可以讓開發(fā)者找到對一段代碼的引用、對代碼的更改、鏈接錯誤等,大大提高了測試效率。(2)Revit AddIn-ManagerRevit AddIn-Manager是由Autodesk官方提供的一個插件加載及調(diào)用工具,利用該工具,用戶可以通過即插即用的方式加載開發(fā)的插件工具。Revit AddIn-Manager是我們開發(fā)過程中常用的客戶端調(diào)試工具。有了這個工具,開發(fā)者無需重復進行注冊操作,也無需在調(diào)試中反復啟動和關閉Revit。(3)Revit LookupRevit Lookup是由Autodesk Developer Network(ADN)技術專家Jeremy Tammik開發(fā)并開放源碼的Revit數(shù)據(jù)庫查看工具。利用Revit Lookup,開發(fā)者可以輕易地查看當前Revit文件中所有對象的大部分屬性信息,以及對象間的關系,從而快速定位開發(fā)過程中遇到的問題。(4)ILSpyILSpy是一款開源的.NET反編譯軟件。利用它可以看到C#代碼編譯及運行真相,對代碼優(yōu)化非常重要。同時也可以使用它反編譯公開的插件程序,是學習二次開發(fā)的好幫手。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:最初的Revit軟件并沒有API,Autodesk公司在2002年收購了Revit,在此前的基礎上進行了進一步的研發(fā),使其可以更好地服務于BIM技術,首先其代碼進行了相關規(guī)范,符合國際通用做法。Revit API的發(fā)展經(jīng)歷了很多階段,總得來說使其功能更加強大和靈活,同時更好地服務于開發(fā)者,直到現(xiàn)在仍在不斷地進行著更新,每天都了解到最新的API并不現(xiàn)實,因此可根據(jù)需要進行查閱。通過對Revit API開發(fā)的軟件進行長期測試表明,該軟件穩(wěn)定性非常好。用戶可以根據(jù)API接口進行二次開發(fā),通常所采用的計算機語言為C#或者VB.Net等。為了方便開發(fā)者,Revit提供了可以直接用于二次開發(fā)的文件包Revit SDK,包含測試工具、參考文檔及豐富的示例代碼。通過對Revit SDK的使用,可以大大的提高使用者的效率。在中國市場,Revit還有著廣闊的應用前景。在設計、施工和運營階段都可以運用BIM技術有效地提高效率,但若能真正地發(fā)揮作用,還需要對Revit進行進一步的二次開發(fā)。并且,對于一些復雜和大型的項目工程,Revit還可以根據(jù)項目的具體要求進行二次開發(fā),通過對Revit相關功能進行拓展和完善,來實現(xiàn)項目建模過程的簡化以及在項目組更深入的應用。在國內(nèi),相關的從業(yè)者非常少。為了使Revit更好地應用,需要使其更符合中國的國情和規(guī)范,這都需要對其進行二次開發(fā),由此將帶來巨大的應用價值。同時,不同軟件間的配合,往往能夠達到事半功倍的作用。如果能給打通各個軟件的通道,也將帶來巨大的應用價值。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:Revit API是Revit軟件二次開發(fā)的基礎,包含了Revit API.dll和Revit APIUI.dll兩大程序集,在對Revit進行二次開發(fā)時,必須引用程序集中的命令才能進行。外部命令和外部應用Revit API為Revit的二次開發(fā)提供了完整的規(guī)范和機制。其中Revit API.dll程序集提供了應用、文件、單元和參數(shù)的訪問方法。也包含了DB級別的外部應用接口和其他相關接口。Revit APIUI.dll程序集可用于定制和拓展Revit界面,并提供了相關的接口。 1、外部命令Revit的開發(fā)者可以通過外部命令來實現(xiàn)自己的功能,外部命令位于Revit的附加模塊中,需要.addin文件進行注冊。Revit在啟動后將自動識別.addin文件,經(jīng)過注冊的外部命令被激活。選擇附加模塊,即可在下拉菜單中看到已添加的外部命令,點擊即可執(zhí)行對應的函數(shù),當有其他操作進行或者執(zhí)行完畢后,外部命令將再次處于待執(zhí)行狀態(tài)。圖1描述了外部命令的調(diào)用方法。2、外部應用Revit的開發(fā)人員除了可以為Revit添加外部命令外,同樣也可為Revit添加外部應用,外部應用的功能可以更加強大。外部命令同樣需要通過.addin文件進行注冊,Revit啟動后可以自動讀取注冊文件。通過啟動后的Revit可以執(zhí)行外部應用,實現(xiàn)所需的功能。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:通過對Revit的二次開發(fā),用戶可以根據(jù)自己的需要自行進行功能區(qū)的拓展,首先需要以下幾點基礎的認識:1、Revit允許用戶通過API訂制自己的Ribbon空間,相關的程序接口位于Revit APIUI.dll,用戶只需要將自己的程序放置在相應的目錄下,Revit將會自動引用這個dll。2、用戶通過二次開發(fā)自定義的面板實現(xiàn)時機是,Revit在啟動時自定義的控件將自動加載。3、目前通過RevitAPI可自定義以下幾種控件:選項卡頁,面板,命令按鈕,下拉按鈕,文本框以及分隔符等。4、在幾種基本控件中,選項卡頁(RibbonTab)和面板(RibbonPanel)是容器類控件,主要作用是管理、放置具體的控件,沒有相應的外部命令可以執(zhí)行。容器類控件和其他控件的區(qū)別和關系為,基本按鈕和文本框必須放置在面板(RibbonPanel)中,選項卡最高。5、用戶可以自行定義自己的選項卡頁(RibbonTab),然后用于放置和管理具體的控件;也可以不創(chuàng)建選項卡頁,直接將自定義控件放置在Revit系統(tǒng)的選項卡頁中,目前僅限附加模塊(Add-Ins)選項卡頁和修改(Analyze)選項卡頁可以添加自定義的程序控件。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:Revit作為Autodesk公司重點推廣應用的三維信息化建模軟件,擁有非常強大的API功能,在公司封裝API提供二次開發(fā)后,升級版本的API得到了大量的優(yōu)化和擴展,從只能提供文檔對象的訪問,到可以創(chuàng)建工作集、實現(xiàn)用戶的選擇交互、族類型的過濾及參數(shù)的創(chuàng)建和修改等功能,還可以通過外部程序的調(diào)用實現(xiàn)界面交互方式很難或無法完成的功能。Revit API具有如下兩種開發(fā)工具:一是Visual Studio,針對Revit2018進行開發(fā)時,可以選擇VisualC#、VB.Net等支持.NET Framework的編程語言,且Revit2018需要基于.NET Framework4.6.1運行環(huán)境進行編譯,還需引用Revit API.dll、Revit API UI.dll和Revit AddIn Utility.dll接口文件;二是Revit自帶的開發(fā)環(huán)境VSTA,它是通過VisualC#、VB.Net語言生成腳本宏,并將其附著在模型上,通過運行宏來實現(xiàn)相應的功能。針對Revit軟件進行二次開發(fā)時,需要熟練掌握Autodesk公司開發(fā)的Add-In Manager插件和Revit Lookup插件。前者能夠在不重啟Revit軟件的前提下,直接修改插件中的代碼重新調(diào)試來實現(xiàn)插件的再次加載和運行,Revit Lookup不用寫代碼就可以直觀地看到API的對象。二次開發(fā)的方式Revit API是建立在Revit產(chǎn)品基礎之上,它是一個類庫,需要在Revit運行時才能夠工作。Revit API具有非常強大的功能,通過Revit API研發(fā)的插件,用戶能夠進行Revit軟件功能的擴展與實際應用。Revit API提供了一套機制和規(guī)范來擴展Revit的功能,Revit的擴展方式有三種:一是外部命令IExternal Command,Revit通過.addin文件來識別和加載外部插件;二是外部應用IExternal Application,同樣是通過.addin文件來識別和加載實現(xiàn)IExternal Application的外部插件;三是宏Macro,宏作為一種程序,目的是實現(xiàn)重復任務的自動化,每個宏都可以通過可重復的步驟和可預見的操作完成一系列預定義步驟的任務。作者:劉世茂 僅供學習交流 版權歸原作者所有 如有侵權請聯(lián)系刪除
文章介紹:Revit軟件具備豐富的API應用程序編程接口,結合工程項目的特點,BIM開發(fā)應用成為可能,高度參數(shù)化和協(xié)同設計大大提高了建模速度。Revit API中的空間和類庫,類似于Revit軟件里的族庫,能夠實現(xiàn)搭積木的模型創(chuàng)建過程。利用Revit API能夠實現(xiàn)用戶自定義程序編寫,進行Revit二次開發(fā),除了可以實現(xiàn)自身軟件平臺上的大部分功能,還能夠創(chuàng)建一些界面交互無法完成的任務,例如與非線性有限元分析軟件的交互等,顯著提高了用戶的建模效率。Revit API的功能如表下所示:(1)訪問模型的圖形數(shù)據(jù)(2)訪問模型的參數(shù)數(shù)據(jù)(3)創(chuàng)建、修改、刪除模型元素(4)創(chuàng)建插件來完成對UI的增強(5)創(chuàng)建插件來完成一些對重復工作的自動化(6)集成第三方應用來完成諸如連接到外部數(shù)據(jù)庫、轉換數(shù)據(jù)到分析應用等(7)執(zhí)行一切種類的BIM分析和自動創(chuàng)建文檔綜上所述,本文主要從三個方面說明進行Revit二次開發(fā)的必要性:首先,進行Revit二次開發(fā)可以實現(xiàn)批量化操作,提高了建模的工作效率;其次,Revit二次開發(fā)可以對Revit不完善的功能進行修補或添加沒有的功能,實現(xiàn)Revit自身的擴展;最后,進行Revit二次開發(fā)能夠進一步對接各種分析軟件或模擬軟件等,為模型的進一步分析提供更多可能性。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:雖然Revit軟件擁有非常強大的功能供BIM工程師使用,但仍然不可避免的有所限制,需要工程師對功能進行二次開發(fā)擴展。Revit二次開發(fā),即在Revit軟件的基礎之上,根據(jù)用戶的個性化需求,通過開放的底部接口擴展功能,實現(xiàn)功能的二次開發(fā)。Revit二次開發(fā)主要有兩種方式,第一種方式為編寫C#、C++等計算機語言程序,開發(fā)人員在開發(fā)平臺上依據(jù)個性化的需求,調(diào)用RevitAPI的底層代碼設計相關算法程序,并以插件的形式載入Revit平臺,從而實現(xiàn)功能的開發(fā);另一種方式為基于Revit內(nèi)置可視化編程插件Dynamo的二次開發(fā),在Dynamo中,已將基本的圖形算法內(nèi)嵌在節(jié)點中,其直觀表現(xiàn)形式為可供連接的小方塊,一個小方塊表示一個函數(shù)操作,依據(jù)個性化需求,調(diào)用一個個的節(jié)點并以邏輯關系連接節(jié)點,最終實現(xiàn)所需功能的開發(fā)。這兩種Revit二次開發(fā)方法各有優(yōu)劣,在操作難度上,前者需要開發(fā)人員擁有較為深厚的編程基礎,這對于建筑工程師十分不友好,而基于Dynamo的二次開發(fā)門檻較低,操作簡單,放置節(jié)點塊連線即可實現(xiàn)二次開發(fā);就開發(fā)功能的深度和廣度而言,前者所能實現(xiàn)的功能更加強大全面,后者受節(jié)點的限制實現(xiàn)功能有所欠缺,雖然也可基于Dynamo平臺編寫DesignScript語言乃至Python語言擴大開發(fā)功能,但效果依舊不如前者。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:Revit二次開發(fā)的流程主要包括:可行性分析、架構設計、編寫代碼、注冊加載、調(diào)試等步驟。1、可行性分析。在項目初始階段,確定項目的主要內(nèi)容,探究項目的條件和結果,從技術、經(jīng)濟、社會等方面進行綜合調(diào)查研究和分析比較,從而判斷項目的價值和實現(xiàn)途徑,為項目的啟動提供依據(jù)、奠定基礎。2、架構設計。在一個軟件項目開發(fā)過程的早期階段中,根據(jù)功能需求,制定這個項目的總體架構,用以指導整個開發(fā)團隊完成計劃,實現(xiàn)目的。3、編寫代碼。在Microsoft VisualStudio軟件平臺中創(chuàng)建項目,并添加相關引用。Revit軟件提供的外部程序實現(xiàn)接口有:外部命令(IExternal Command)、外部應用(IExternal Application)和數(shù)據(jù)庫(DB)級別的外部應用(IExternalDBApplication)。其區(qū)別在于接口和重載的函數(shù)不同,啟動方式也有所差別。在編寫代碼的過程中,開發(fā)者根據(jù)研發(fā)目的在自己開發(fā)的程序插件中繼承對應的特殊接口。4、注冊加載。在Revit中調(diào)用上述三種接口生成的插件,需要使用.addin文件對插件進行注冊。可以依據(jù)相對固定的格式自行創(chuàng)建.addin清單文件,也可以通過Add-inManager工具自動生成創(chuàng)建。創(chuàng)建完成后將.addin文件存入默認路徑,Revit軟件將會自動讀取文件內(nèi)容,并識別和執(zhí)行外部命令和外部應用程序。5、調(diào)試。調(diào)試程序是否正常運行,以及運行結果是否符合需求。若出現(xiàn)錯誤和故障,則要查找原因,進行故障排除,并再次調(diào)試,直到完美運行為止。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:我們在用Revit進行二次開發(fā)的時候通常要用到VisualStudio、Revit Lookup、以及Add-InManager工具。VisualStudioRevit建模平臺是基于.NET Framwork進行編寫的,故而二次開發(fā)也需要在.NET Framwork框架基礎上進行,需要選擇一款可以支持該框架的集成開發(fā)環(huán)境。集成開發(fā)環(huán)境(IDE,Integrated Development Environment)提供了程序開發(fā)所需的系列基礎工具集,其中包含編譯器、調(diào)試器以及界面設計器等基礎開發(fā)工具,具備代碼編寫、代碼分析、代碼編譯、代碼調(diào)試等多種功能。Microsoft Visual Studio是針對NETFramwork開發(fā)的集成開發(fā)環(huán)境,其中包含了.NETFramwork框架開發(fā)所需的基本工具集,且所創(chuàng)建項目可適用于微軟支持的所有平臺。故本文選用Microsoft Visual Studio作為開發(fā)用IDE。Revit LookupRevit Lookup是由Autodesk公司提供的SDK(Software Development Kit)中自帶的官方插件,用于Revit文檔數(shù)據(jù)的讀取,Revit Lookup工作界面見圖2.2。在Revit中一個構件包含的信息非常多,例如構件族類型、構件加載點位、構建參數(shù)以及構件單元ID、單元號、位置以及參數(shù)組等,這些信息保存在Revit文檔數(shù)據(jù)庫當中,并不向設計師進行直接展示。但這些數(shù)據(jù)對于BIM模型應用來說非常重要,開發(fā)者在開發(fā)過程中經(jīng)常需要對這些數(shù)據(jù)進行查看。Revit Lookup這款插件就可以幫助開發(fā)者更方便地對Revit文檔數(shù)據(jù)庫進行查閱瀏覽提升開發(fā)效率。Add-InManagerAdd-InManager也是由Autodesk公司提供的SDK(Software Development Kit)中自帶的官方插件,用于項目的調(diào)試,一般的調(diào)試過程需要對編譯生成的動態(tài)鏈接庫進行注冊,并且需要重新啟動Revit進行加載,效率低下。而通過Add-InManager插件,可以實時對生成的動態(tài)鏈接庫進行調(diào)用,省去了動態(tài)鏈接庫注冊和重啟加載的步驟,提升了開發(fā)效率。Revit原生二次開發(fā)系列課程:http://www.caogenso.com/series/52.html
文章介紹:Revit二次開發(fā),是在不更改Revit軟件內(nèi)核的基礎上,通過定制插件實現(xiàn)拓展功能,從而滿足用戶的需求。例如Revit鋼筋建模工作量極大,通過傳統(tǒng)做剖面的方法,不能準確布置鋼筋,給生成鋼筋明細表、統(tǒng)計工程量帶來相當大的阻力。Revit extensions插件,是一款典型的通過對Revit進行二次開發(fā),實現(xiàn)快速創(chuàng)建鋼筋的工具包。該插件針對梁、柱、墻、樁、樁承臺、連續(xù)基腳、擴展式基腳等不同的構件族,有針對性的開發(fā)鋼筋建模程序,無需再做剖面,僅根據(jù)彈出的窗口輸入?yún)?shù),即可實現(xiàn)鋼筋模型的參數(shù)化快速建立。橄欖山快模是針對Revit軟件快速建模的軟件。可以一鍵識別天正cad圖紙信息,自動建立revit建筑模型和結構模型,其中建筑翻模完善了門窗類型命名功能,可創(chuàng)建讀取到的門窗相應的族類型,并自動輸入編號。Twinmotion是EPIC旗下的一款虛擬引擎軟件,可實現(xiàn)模型三維漫游功能。Twinmotion DIRECTLINK插件允許同步Revit等多種格式的模型的幾何體和BIM信息。它可以保持組織和層次關系,而原始的表面和3D對象會自動替換為可以與環(huán)境交互的Twinmotion對象,使Revit模型能夠獲得實時3D可視化漫游效果。Revit二次開發(fā)課程:http://www.caogenso.com/series/52.html
文章介紹:對Revit進行二次開發(fā),其主要目的在于拓展用戶需求、方便用戶批量處理簡單的操作以及與其他軟件平臺交互。(1)拓展用戶需求BIM技術受到國家的大力推廣,Revit作為BIM技術的必備軟件,積累了廣泛的用戶。其中建筑、結構(鋼筋)、機電等不同專業(yè)的用戶對軟件的需求也大不相同,需要通過基于現(xiàn)有產(chǎn)品的定制開發(fā)來改善和擴展軟件的適用性。(2)方便用戶批量處理簡單的操作在建模過程中,大量的操作需要多次重復進行,比如修改門窗的族類型,并對門窗族命名。如橄欖山快模的出現(xiàn),通過識別cad圖紙,即可自動生成簡單的建筑、結構模型,自動生成對應的門窗族,并且自動輸入編號名稱。用戶無需去處理繁瑣的重復性操作,提升建模效率。(3)與其他軟件平臺交互由于BIM軟件種類繁多,常用的軟件如ARCHICAD,Revit,SketchUp Pro,Rhino(包括Grasshopper)等模型的格式都不相同,三維漫游的實現(xiàn),往往需要集成多種軟件平臺的模型,必須將不同軟件轉化為統(tǒng)一的格式。現(xiàn)在,大多數(shù)BIM應用程序已為開發(fā)人員打開了自己的應用程序編程接口,通過二次開發(fā)技術,可以引用其他BIM軟件的Interface來完成Revit與不同應用程序之間的數(shù)據(jù)交換。Revit二次開發(fā)課程:http://www.caogenso.com/series/52.html
文章介紹:雖然Revit官方給出了Revit軟件開發(fā)工具包(SDK),內(nèi)部含有參考文檔,以及API用戶手冊和示例文件,API手冊中給出了以下三種C#,C++,VB開發(fā)語言,以C#的應用最為廣泛,但若采用C#語言進行Revit二次開發(fā),相較于Dynamo而言,入門難度較高,必須掌握C#語言的語法,以及要深入理解面向對象的基本概念,還需通過RevitSDK工具包,熟悉用戶參考手冊,下載VisualStudio等編譯器,進行大量的配置引用操作,才可開始編程;且編程界面是以代碼的形式展現(xiàn),程序源碼難以理解,自行開發(fā)更是無從下手,不利于沒有編程基礎的工程人員入門。而Dynamo可以在Revit軟件內(nèi)打開,不需要進行大量的代碼編譯以及環(huán)境配置,便可直接編寫程序,能夠自動實現(xiàn)參數(shù)化建模,大幅提升建模效率。工程人員不用學習復雜的C#編程語言,只需調(diào)用Dynamo中現(xiàn)有的節(jié)點,即可運行自己的程序。Dynamo程序由多個具備不同功能的節(jié)點構成,節(jié)點以“電池”的形式封裝了內(nèi)部代碼,以“電線”來連接各節(jié)點,進行數(shù)據(jù)的讀取,查詢,修改與刪除等操作。節(jié)點以功能命名,使用戶通過“電池”名稱即可知曉節(jié)點的功能,同時,Dynamo還開放了自己制作“電池”的功能,有編程基礎的用戶可以自行開發(fā)想要的節(jié)點包,對常規(guī)的節(jié)點包進行整合優(yōu)化,也可通過Pythonscript節(jié)點編寫Python程序,并上傳到云端供其他用戶使用,為新手提供了極大的幫助,降低了軟件的學習成本,也增加了工程人員學習編程的興趣。
文章介紹:Revit API(Application programming Interface,應用程序編程接口)是基于Revit進行二次開發(fā)最重要的工具之一。Revit與.NET Framework通過接口相關聯(lián),接口即Revit API在Revit中大量的命名空間和使用類庫的集合。.NET Framework是可以用來開發(fā)應用軟件與托管類庫的一個平臺,其主要包含一個龐大的庫,通過面向對象編程技術從而使用代碼。與.NET Framework兼容的語言有C++、C、VB、C#等都可以使用該接口對Revit行二次開發(fā)。二次開發(fā)的工具Revit API的開發(fā)工具一般有兩種:一種是以Visual Studio為平臺,可以選擇C、C#、VB、C++等支持.NET Framework的語言,該方式針對于Visual Studio 2012及以上版本,該方法需要在開發(fā)時引用Revit接口組件文件Revit API.dll和Revit APIUI.dll。第二種方法是Revit軟件自帶的開發(fā)環(huán)境,名稱為VISTA。其可通過C#和VB語言生成宏腳本,將其附著在模型上,通過運行宏來實現(xiàn)相應的功能。對于Revit軟件的開發(fā)有兩種方式,一種是創(chuàng)建外部命令的方式,另一種是添加外部應用的方式,兩種方式都需要對插件進行注冊,也可以通過添加Revit官方插件Addin Mananger直接實現(xiàn)程序。
文章介紹:目前面向Revit的二次開發(fā)已經(jīng)趨于成熟,而Dynamo二次開發(fā)則相對較少,那么Dynamo怎么二次開發(fā)呢?想要知道這個問題的答案,我們需要了解Dynamo二次開發(fā)工具和開發(fā)語言。開發(fā)工具目前,使用最廣泛的Dynamo二次開發(fā)工具是美國微軟公司的Visual Studio(簡稱VS),VS是一個基本完整的開發(fā)工具集,支持用戶通過多種不同的程序語言進行開發(fā),從Visual Studio 2002到Visual Studio 2020,經(jīng)過了十幾年的發(fā)展幾乎包括了整個軟件生命周期中所需要的大部分工具,如代碼管控工具、UML工具、集成開發(fā)環(huán)境(IDE)等。在BIM軟件開發(fā)方面,大多工程師貢獻的項目案例都是基于Visual Studio開發(fā)的。開發(fā)語言可用于Dynamo二次開發(fā)的語言有C#、Visual Basic、VisualC++、J#等.NET開發(fā)語言,在Autodesk官方推出的眾多軟件開發(fā)教程中,一般會選擇使用C#語言,所以C#也稱為Autodesk平臺軟件二次開發(fā)使用最多的語言,也是Dynamo官方推薦的編程語言。值得一提的是Python也可以對Dynamo進行二次開發(fā),Dynamo提供了Python Script節(jié)點,能夠直接調(diào)用Revit API自動解析、編譯,其缺陷是可以實現(xiàn)單一性的功能,功能函數(shù)之間不能相互調(diào)用,無法滿足具有多種功能的系統(tǒng)性開發(fā)項目。與Python相比,用C#語言編寫開發(fā)Dynamo有許多優(yōu)點,C#代碼編譯后是dll文件,他們之間可以相互引用,代碼保密性和運行效率都有很好的保證。
文章介紹:Revit二次開發(fā)是對其進行功能的自定義和修改,根據(jù)用戶的需求,在Revit軟件原有功能的基礎上進行目標性拓展,從而實現(xiàn)用戶的定制需求。通過API可以實現(xiàn)這站類型的程序功能拓展,二次開發(fā)通常可以在不更改原始系統(tǒng)的情況下擴展并提高其工作質(zhì)量和效率。Revit的二次開發(fā)是利用Revit軟件自有的API接口,以通過程序代碼實現(xiàn)組件各個功能的開發(fā)。通常,普通的建模操作僅需要使用菜單欄中的按鈕功能進行。而Revit還具有程序員界面,該界面可用于調(diào)用外部命令,并使設計人員可以通過外部編程來編輯和訪問Revit。Revit API是一個門戶,開發(fā)人員可以通過該門戶訪問Revit的各種功能,在可視化與數(shù)據(jù)分析操作的基礎上程序開發(fā)人員可以根據(jù)用戶需求對Revit軟件功能進行目標拓展與優(yōu)化。作為程序員還可以訪問數(shù)據(jù)模型中的信息結構單元,添加屬性,更改和創(chuàng)建新組件以獲得相關數(shù)據(jù),分析數(shù)據(jù)等。目前來看,我們可以通過二次開發(fā)技術在應用軟件中實現(xiàn)以下等功能。(1)通過編寫代碼搭建能夠快速準確提取并修改構件參數(shù)信息的插件;(2)通過編輯程序實現(xiàn)移動樓板、添加墻體等軟件附加編輯功能;(3)建模時,省略繁瑣步驟,實現(xiàn)一鍵化識圖翻模;(4)通過外部程序接口,實現(xiàn)不同BIM軟件之間的數(shù)據(jù)互聯(lián)。(5)通過程序編并添加設計過程中所需運算函數(shù),并利用運算函數(shù)對模型進行數(shù)據(jù)分析。
文章介紹:任何軟件都無法做到能夠滿足每個用戶在所有領域的應用要求,再加之Tekla進入中國的時間并不長,軟件中的節(jié)點不能完全滿足國內(nèi)工程的要求,因此對于軟件的二次開發(fā)功能對用戶的個性化需求提供了最大化的滿足。另一方面,大型復雜的工程存在大量不同的節(jié)點,幾乎每一處構件連接的節(jié)點都不盡相同,假如每一個節(jié)點都需要設計人員手動去調(diào)整修改,那么工程的效率會大大降低,錯誤率也由此增大。因此,如何實現(xiàn)這些節(jié)點的智能化是我們解決問題的關鍵。Tekla二次開發(fā)策劃及基本流程 圖1Tekla二次開發(fā)策劃在Tekla Structures軟件中,可提供用于二次開發(fā)的對接口以及完全開放的編程指令內(nèi)碼,這些可為用戶帶來個性化的工具和專業(yè)化的定制服務,對于高級用戶滿足了其更加全面、專業(yè)的個性化需求。對于提高工程效率、工程質(zhì)量起到了關鍵的作用。同大多數(shù)CAD軟件一樣,使用編程訪問Tekla中的節(jié)點對象可分為兩種形式:第一種是進程內(nèi)宏程序,第二種是進程外的程序。進程內(nèi)宏程序通俗簡單,可實現(xiàn)的功能比較少,適用于中小型項目。進程外程序即Tekla宏代碼與外部應用程序在不同的程序中運行,通常所講的二次開發(fā)大多數(shù)指進程外的設計方式。如圖1所示為二次開發(fā)策劃的步驟。 圖2二次開發(fā)流程圖提供即時更新的軟件程序文件和所需的節(jié)點安裝包,是二次開發(fā)的硬件條件。為了提高深化設計的效率,還需要制定合理的開發(fā)流程(如圖2所示),既是詳圖設計的必要條件,也是二次開發(fā)技術的重點。
文章介紹:在實際應用中,Revit二次開發(fā)模式與Dynamo開發(fā)模式存在一定的差異,主要表現(xiàn)在以下幾個方面。第一,開發(fā)基礎方面。Revit二次開發(fā)插件程序的編寫需要用戶至少掌握一種符合公共語言規(guī)范的程序語言,并且有一定的程序設計與實踐基礎。對于沒有程序語言基礎的設計人員及BIM技術使用者而言,其操作難度過大。而Dynamo可以針對自身實踐中的需求進行定制化開發(fā)。其操作更加簡單易用,用戶不用花費大量成本進行計算機編程等知識的學習便可以輕松地完成Dynamo程序的編寫。第二,在開發(fā)復雜度方面,兩種開發(fā)模式都需要用戶熟悉Revit中的各項操作。一般來說,對于可以在Revit中手動操作實現(xiàn)的功能,Revit二次開發(fā)以及Dynamo開發(fā)支持的概率在80%以上。其中,Revit二次開發(fā)代碼編寫需要簡明的算法與嚴謹?shù)倪壿嫞a數(shù)量會隨著命令復雜程度的升高而增加,而且容易出現(xiàn)程序漏洞,需要進行反復調(diào)試。而Dynamo編程邏輯較為簡單,用戶只需連接編程所需要的節(jié)點,實現(xiàn)命令所需要的節(jié)點數(shù)量與命令的復雜度無關,如圖所示。 第三,在成果輸出方面,Revit二次開發(fā)模式具有系統(tǒng)性、普遍性的特點,可以把很多功能集成于一個系統(tǒng),用戶可以直接在軟件的選項卡中進行查找及運行。而每個Dynamo程序以DYN文件的形式獨立運行,每次使用時需要重新對選取的Revit構件進行關聯(lián),在一定程度上限制了程序的使用范圍。文:張笑彥(青島理工大學)僅供學習交流 版權歸原作者所有 如有侵權請聯(lián)系刪除
文章介紹:如今想學Revit二開的小伙伴可謂是越來越多了,作為腿腿教學網(wǎng)的小編,每天都能在后臺受到很多關于Revit二開的咨詢。簡單來說,Revit二次開發(fā)的實現(xiàn)方式主要包括兩種,一種是IExternal Command;另一種是IExternal Application。(1)外部命令Revit外部插件的研發(fā)人員能夠利用IExternal Command將開發(fā)的外部應用程序插入Revit中,之后Revit軟件可以通過.addin文件進行外部插件的識別和加載。外部命令通過以上形式加載到Revit軟件中后,有兩種方式可以實現(xiàn)外部命令的觸發(fā),分別為外部工具菜單(界面如圖1所示)和自定義菜單(界面如圖2所示)。 圖1外部工具菜單 圖2自定義菜單IExternal Command這個接口中僅僅包含一個抽象函數(shù)Excute,IExternal Command功能的實現(xiàn)是通過重載這個函數(shù)。(2)外部應用外部應用的實現(xiàn)方式與外部命令相同,都是利用.addin文件實現(xiàn)的,不同之處在于IExternal Application接口包含兩個抽象函數(shù),分別是OnStartup和OnShutdown。OnStartup在Revit啟動時發(fā)揮作用,OnShutdown在Revit關閉時發(fā)揮作用。最后讓小編為大家推薦一套課程:Revit原生二次開發(fā)系列課程課程目標:讓學員掌握Revit非插件開發(fā),充分擴展Revit的自身功能 。適用于BIM從業(yè)者,整個課程主要講解的是對Revit自身隱藏的功能的開發(fā)該課程以實例為講課背景,學完就能用到工程實際!課程地址:http://www.caogenso.com/series/52.html
文章介紹:Revit軟件作為目前BIM領域最常用的建模軟件,為建筑行業(yè)的建模工作提供了豐富的功能,它可以為建筑、機電、結構等各類專業(yè)提供基于BIM的解決方案。在對Revit三維視圖進行操縱時,會實時獲取與操作相關的數(shù)據(jù)信息,寫入數(shù)據(jù)庫,并將其與Revit模型構件相關聯(lián)。Revit豐富的功能能夠憑借信息化方式達成建筑剖面圖、二維及三維視圖等的自動修正。作為BIM建模軟件,Revit為建筑行業(yè)的工作人員提供了各類建模功能的幫助。Revit能夠通過其豐富強大的功能來快速搭建出美觀的三維模型。此外,模型中保存了許多的參數(shù)信息,支持建立參數(shù)化對象。并且,Revit中擁有大量的構件及材質(zhì)數(shù)據(jù),還支持創(chuàng)建自定義材質(zhì),使操作更加便捷。用戶能夠借助Revit進行各專業(yè)的建模設計,還能夠通過協(xié)同設計,將最終各方完成的模型整合在一起,并且Revit建模有著良好的精度,將能夠印證工程項目的設計,能夠應用于工程的全生命周期。最重要的是,Autodesk公司為Revit提供了API接口,使得其能夠擁有更多功能。用戶可以利用二次開發(fā)對Revit功能進行自定義增加。二次開發(fā)的實現(xiàn)方式本文選擇C#語言進行Revit開發(fā)。所采用的編程軟件為VisualStudio2017。使用C#語言進行Revit二次開發(fā)一般有兩種開發(fā)方式:(1)外部命令(IExternalCommand)方式(2)外部應用(IExternalApplication)方式。(1)外部命令(IExternalCommand)IExternalCommand是RevitAPI中開發(fā)人員擴展Revit時需要實現(xiàn)的接口。通過這個類,開發(fā)人員能夠在Revit中加入自定義拓展插件,并載入外部命令方法,最后加載功能代碼,實現(xiàn)所需功能。在外部命令類中,Execute()方法中三個重要參數(shù),它們分別是程序與文檔對象獲取參數(shù)、對象集合傳出參數(shù)及提示字符串傳出參數(shù)。通過這些參數(shù),可以開發(fā)出自己所需的功能。(2)外部應用(IExternalApplication)開發(fā)人員能夠利用實現(xiàn)IExternalApplication接口來擴展自己的插件程序。Revit也能通過.addin文件來載入實現(xiàn)外部應用的外部插件。通過外部應用接口的OnStartup()和OnShutdown()兩個方法,能夠完成在Revit中加入自己的功能并在Revit的“附加模塊”面板中創(chuàng)建插件模塊。由于這兩種方法都將在Revit啟動和關閉時自動運行的,所以在進行Revit二次開發(fā)時通常都使用該接口來創(chuàng)建菜單面板。內(nèi)容來源:《基于BIM的基坑工程安全監(jiān)管平臺的研發(fā)與應用》 房曉豐僅供學習交流 版權歸原作者所有 如有侵權請聯(lián)系刪除
文章介紹:由于Revit 2016需要在.NET4.5下運作,所以必須選用Visual Studio進行開發(fā)。Revit API可以讓用戶使用各種與.NET兼容的語言來進行開發(fā),編程語言能夠用C#、C++等。而使用不同的編程語言進行開發(fā)時,所編譯的語句是不同的。例如當開發(fā)人員想使用數(shù)據(jù)庫元素時,在C#中是Autodesk.Revit.DB.Element。而在C++中所用的則是Autodesk Revit DBElement,本文選用的是C#編程語言進行開發(fā)。在進行開發(fā)前,還需安裝好Revit軟件并了解其功能操作以及API接口的使用方法。 圖1 外部工具菜單RevitSDK是Revit開發(fā)的工具包,其中包括Revit API庫、API參考文檔以及API演示Demo,其中還有供開發(fā)人員參考學習的示例代碼。其中Getting Started with Revit API.doc是進行開發(fā)的初始文件,包含有關Revit API基礎知識的信息,是熟悉Revit API的起點。而工具包中的Revit API.chm對Revit API接口的用法進行了詳盡闡述,它在開發(fā)中有著不可或缺的作用。開發(fā)者能夠使用SDK工具包根據(jù)自己所需進行相應參數(shù)的查找,從而擴展Revit的功能,而像SDK工具包這樣的Revit輔助開發(fā)工具還有很多。一般使用外部程序管理器來注冊和加載.addin文件,生成相應的插件,從而實現(xiàn)對Revit的二次開發(fā)應用。當RevitSDK安裝后,外部插件加載選項將會在Revit的“附加模塊”菜單的外部工具中加載。通過該功能,可以十分便捷地進行二次開發(fā)插件的調(diào)試及加載,如圖1所示。另外,開發(fā)者也能夠自己來進行.addin插件的編寫,并且將編寫完成的.addin外部插件文件存儲在相應的Revit文件夾路徑之下。 圖2 使用Revit Lookup查看構件的信息當用戶打開Revit后,將會通過Revit Add-InManager加載自定義插件,而想要清除不用的插件時,則能夠通過刪除.addin文件的方式實現(xiàn)自定義插件的高效卸載。ILSpy是一種擁有強大功能的.NET反編譯工具。利用該工具,能夠把一個程序轉成C#語言。通過ILSpy的反編譯功能,能夠查看在程序中編寫的所有變量及方法。而RevitLookup是為輔助Revit二次開發(fā)所設計的專業(yè)工具,它在Revit二次開發(fā)過程中有著非常重要的作用,而在RevitSDK的工具包中便有該插件文件。使用該插件能夠在不寫代碼的情況下實現(xiàn)對相關API對象參數(shù)的查看,以便開發(fā)人員更加效率地進行所需功能的開發(fā),如圖2所示。Add-InManager工具同樣是Autodesk公司為開發(fā)人員所提供的插件,通過SDK工具包便可以獲得插件文件,通過該插件能夠實現(xiàn)在Revit中進行所開發(fā)插件代碼的調(diào)試,并能夠調(diào)試完成后進行插件的加載運行。通過這些工具,能更便捷地進行Revit開發(fā)。內(nèi)容來源:《基于BIM的基坑工程安全監(jiān)管平臺的研發(fā)與應用》 房曉豐僅供學習交流 版權歸原作者所有 如有侵權請聯(lián)系刪除
文章介紹:API全稱叫Application Programming Interfaces(應用程序編程接口),是軟件開發(fā)者預先定義的一些函數(shù),目的是在無需訪問程序源代碼的前提下,基于某軟件或硬件給開發(fā)人員與應用程序提供訪問一組例程的能力。簡單地說,就是一套要求,用來管理應用程序與程序之間的溝通,在使用計算機時,正是API實現(xiàn)了數(shù)據(jù)在各個程序之間的傳輸。API是把程序內(nèi)部的部分功能有限地向使用者開放,便于各應用程序之間基于各自的利益分享數(shù)據(jù),而又不需要開發(fā)者公布所有的軟件源代碼。API可以看成是程序的一扇門或窗,通過API實現(xiàn)應用程序和外部的有效溝通。Revit API是Revit提供的一系列的命名空間和類庫,目的是方便用戶基于Revit平臺通過二次開發(fā)的方式重新定義已有功能或根據(jù)需求創(chuàng)建相應的功能,因此Revit API作為用戶開發(fā)插件程序與Revit連接的接口十分重要。Revit系列的建筑、結構、設備三個產(chǎn)品都有相應的API,因為這三個產(chǎn)品的API都十分相似,Autodesk公司把它們集成一起,統(tǒng)稱為Revit API。經(jīng)過很多年的發(fā)展豐富,Revit API不斷完善優(yōu)化其基本功能并進行逐步擴展,如今每個Revit版本的API都會在基本功能的基礎上做最大的優(yōu)化和擴充,Revit API已經(jīng)形成了一個完整的功能體系。Revit提供給用戶的豐富的API可用于自定義Revit現(xiàn)有功能或者添加全新的功能,或者使用API將創(chuàng)建的的工具和功能可以直接載入Revit中,實現(xiàn)擴展其功能的目的。Revit API是.Net API,只要是與Microsoft.Net Framework 2.0兼容的語言都可以調(diào)用Revit API,如:VB、C#等。
文章介紹:基于Dynamo平臺可幫助建筑工程師進行基于工程需求的二次開發(fā),其開發(fā)線流程遵循著一個基本思路,可將其概括為“需求分析、程序設計、調(diào)試優(yōu)化、程序輸出”共四步。1.需求分析需求分析即分析工程問題,明確需要Dynamo解決的工程問題。在解決工程問題的過程中,第一步即判斷能否將工程問題轉化成數(shù)學問題,其次判斷利用Dynamo平臺能否解決工程問題。在滿足以上兩個條件的情況下,將工程問題進行問題分解,將大的工程問題轉化為多個小問題,利用計算機技術進行程序編寫。2.程序設計程序設計可理解成目標需求分析后,用編程的方式把需求變成具體功能的工作流程。不論是基于節(jié)點的可視化編程還是基于代碼的語言式編程,程序設計都是十分重要的環(huán)節(jié)。Dynamo在程序設計的過程中有獨特的優(yōu)勢,其注重再編寫過程中整個程序的邏輯結構,其對編程語句并無太大要求,與流程圖極為相似。工程師只需在編寫過程中,仔細疏通內(nèi)在邏輯,從Dynamo節(jié)點庫中找到對應的節(jié)點函數(shù),并對每個節(jié)點內(nèi)的數(shù)據(jù)進行數(shù)據(jù)結構處理。在編寫過程中,以數(shù)據(jù)為主線,使用“數(shù)據(jù)輸入—數(shù)據(jù)處理—數(shù)據(jù)輸出”的三步設計方法。3.調(diào)試優(yōu)化在完成程序編寫之后,此時需要不斷地運行程序,發(fā)現(xiàn)程序的錯誤之處,并對錯誤之處進行程序的調(diào)試優(yōu)化,優(yōu)化后的程序應具備以下優(yōu)點:?程序運行不報錯?參數(shù)設置數(shù)量少但精準,可滿足所有的數(shù)據(jù)調(diào)整?程序本身結構清晰,并根據(jù)功能進行區(qū)域劃分并做好命名?節(jié)點、語句數(shù)量在盡量少的情況下滿足全部功能需求基于Dynamo的可視化編程,在調(diào)試優(yōu)化的過程具有得天獨厚的優(yōu)勢。在程序運行完成后,若是遇到節(jié)點顯黃的情況,這說明程序在該節(jié)點處的運算出錯,需要進行調(diào)整。此外,通過“凍結”和“預覽”的指令,也可以快速地發(fā)現(xiàn)編程的錯誤之處。使用節(jié)點的“凍結”指令,程序將自動關閉該與該節(jié)點關聯(lián)的后續(xù)運算,即程序運行至“凍結”節(jié)點后將不再運算;打開或者取消節(jié)點的“預覽”指令后,程序將不在Dynamo的展示界面內(nèi)展示該節(jié)點的可視化運算結果,但并不影響該節(jié)點后的程序運行。“凍結”與“預覽”功能的配合大大提高了開發(fā)人員發(fā)現(xiàn)錯誤的效率,加快了功能開發(fā)進度。4.程序輸出在程序編寫完成后,開發(fā)者便可使用該程序快速解決工程問題,或者將該程序輸出為dyn文件供他人多次使用。
文章介紹:Revit API提供了一套機制和規(guī)范來拓展 Revit的功能。 Revit API.dll程序集中包含了訪問Revit DB級別的Application、Document、Element以及Parameter的方法,也包含了一些接口。 Revit APIUI.dll包含了所有操作和定制UI的接口, 包括外部命令IExternalCommand相關接口, IExternalApplication相關接口, Selection選擇;菜單類RibbonPanel以及其子類等。 想利用Revit API來訪問和拓展Revit相關功能,需要在自己的插件中引入相應的接口文件, 這些接口包括外部命令, 外部應用和外部數(shù)據(jù)庫應用。Revit二次開發(fā)的流程可以概括如下圖: 調(diào)用 IExternalApplication 接口 , 此接口 通過兩個抽象函 數(shù) OnStartup 和OnShoutdown, 分別制定在 Revit 啟動和關閉時候所需的功能。 采用此方法, 需要設計界面編程, 添加一個菜單或工具條, 涉及到 Button, Panel, RibbonTab等控件, 最后通過 C \ ProgramData \ Autodesk\ Revit\Addin 目錄下的.addin 文件加載程序命令。外部命令 IExternalCommand 接口需要在 Revit 沒有其他命令運行, 或者沒有處于編輯模式的狀態(tài)下, 用 Add-In Manager 加載, 若插件被選中, 那么就會執(zhí)行 Execute 函數(shù), 從而實現(xiàn)外部命令集成到 Revit。 也可以利用 addin 文件加載程序命令。Revit二次開發(fā)課程:http://www.caogenso.com/series/52.html
文章介紹:1..NET編程環(huán)境。對Revit的二次開發(fā)需要使用.NET Framework平臺,.NET是基于Windows操作系統(tǒng)運行的操作平臺,實際上是一簇各種技術的集合。它支持多種語言之間的交互操作如C#、VB等,一個新的組件可以通過面向對象技術重用另一組件中的信息,即.NET通過將各語言先編譯成中間語言(IL),然后再執(zhí)行時用即時(Just In Time)編譯器將其轉換成本地平臺代碼來實現(xiàn)異構平臺下對象的互操作如圖所示。 它的類庫包含了數(shù)千個預先設置好的類,這些類是我們一切編程的基礎。了解每個類的功能,清楚不同類之間的繼承關系,應用程序開發(fā)人員僅需按需求調(diào)用相關的類,完成邏輯框架層面的代碼,就可以實現(xiàn)程序的開發(fā)。VisualStudio作為.NET軟件開發(fā)集成的工具,包含了豐富的提高代碼編寫效率和支持軟件調(diào)試的工具及特性,例如實時監(jiān)測變量值,自動檢測錯誤,參數(shù)對象自動補全,并自動附帶該對象的屬性、方法等信息。2.Revit SDK。RevitSDK里面包含了大量可以幫助開發(fā)的文檔,以及帶源代碼的例子,對初級開發(fā)者來說,資料十分重要。3.Revit Lookup。Revit Lookup是歐特克公司研發(fā)的不用源代碼就可以直觀的看到API對象的插件。開發(fā)人員可以拿到源代碼以后自己編譯。Revit二次開發(fā)課程:http://www.caogenso.com/series/52.html
文章介紹:Revit.NET API英文全稱為Revit.NET Application Programming Interface,中文全稱為Revit.NET應用程序編程接口(以下簡稱RevitAPI),是Revit自帶的用于與二次開發(fā)程序進行交互的程序接口。該接口擁有較好的語言兼容性,可用任何與.NET框架兼容的語言進行編程。此外,RevitAPI自帶極其豐富的類型庫,能最大限度的滿足開發(fā)需求,降低開發(fā)成本。通過RevitAPI,用戶能通過外部編程,達到訪問、創(chuàng)建、編輯及刪除模型數(shù)據(jù)等功能。Autodesk公司為提高Revit的可開發(fā)性,提供大量的開發(fā)輔助插件。為提高開發(fā)效率,必須安裝的插件包括RevitLookup及addinmanager兩個插件,下面分別介紹。(1)Revit LookupRevit Lookup是一個對象可開發(fā)數(shù)據(jù)訪問插件,其能快速、便捷地顯示對象的幾何、物理等信息,方便開發(fā)者快速定位參數(shù)位置、種類及參數(shù)值。插件可在Autodesk官網(wǎng)下載后進行安裝。其操作界面如圖1。 (2)Addin Manager該插件用于快速顯示并加載、卸載二次開發(fā)程序。AddinManager在Revit安裝包內(nèi)自帶的SDK(Software Development Kit)中。插件操作界面如圖2所示。 圖2AddinManager操作界面
文章介紹:Revit二次開發(fā)需要具備的三個條件來營建開發(fā)環(huán)境:一是Revit產(chǎn)品,二是Revit SDK文件,三是一款開發(fā)工具。本文采用的是Revit2018版本,通過Autodesk的官方網(wǎng)址下載、并安裝了Revit SDK文件,采用的開發(fā)工具是Microsoft Visual Studio。開發(fā)工具中使用的版本是Visual Studio 2017,運行環(huán)境采用.NET Framework4.7,開發(fā)語言使用C#計算機語言。開發(fā)環(huán)境配備好之后,需要完成以下準備工作:安裝RevitLookup插件,RevitLookup是Autodesk開發(fā)的插件,包含在RevitSDK文件中,主要作用是利用該插件直觀看到API的對象;安裝AddinManager插件,AddinManager是Autodesk的一個插件,主要作用是加載并運行Revit的插件。Revit二次開發(fā)主要通過“外部命令(IExternalCommand)”、“外部應用(IExternalApplication)”兩種方式來實現(xiàn)。詳細的開發(fā)過程如下:(1)在VisualStudio2017開發(fā)平臺中新建一個類庫工程。(2)在VisualStudio中引用接口裝配文件RevitAPI.dll和RevitAPIUI.dll,為了防止dll文件在編譯過程中復制到本地屬性,需要將其修改為False。(3)在編輯界面添加需要使用的數(shù)據(jù)庫命名空間引用,如:usingAutodesk.Revit.UI;usingAutodesk.Revit.DB;usingAutodesk.Revit.ApplicationServices;usingAutodesk.Revit.UI.Selection;……這些命名空間都是在Revit二次開發(fā)中很常用的幾種,使得二次開發(fā)擁有不同的功能,若需要實現(xiàn)其他功能還可以添加相應的命名空間。(4)設置命令屬性,主要有三種事物模式,如自動模式(Automatic)、手動模式(Manual)和只讀模式(ReadOnly)。在本文的開發(fā)程序中,最常用的就是手動模式。(5)添加二次開發(fā)的實現(xiàn)方式,如IExternalCommand或者IExternalApplication。這里采用外部命令的實現(xiàn)方式,首先將新創(chuàng)建的類由ExternalCommand接口派生,再通過IExternalCommand.Execute()方法重載。(6)利用C語言、VB語言等編寫程序代碼,實現(xiàn)所需要的功能。(7)完成代碼調(diào)試后,生成dll文件,利用AddinManager插件將文件導入Revit并加載程序。以上過程就完成了Revit二次開發(fā)的所有流程,可以通過AddinManager插件運行程序,實現(xiàn)所需要的功能。
文章介紹:Revit作為BIM技術的核心軟件之一,具有靈活開放的二次開發(fā)平臺,提供了應用程序編程接口(Application Program Interface,簡稱API),此接口為軟件的二次開發(fā)提供了強大功能。Revit API能夠提供軟件各種應用的功能接口,促進Revit的信息數(shù)據(jù)集成。Revit API是一個類庫,需要在Revit運行時才能夠工作,借助VisualBasic.NET、C#以及C++等.NET編程語言來完成編程,實現(xiàn)二次開發(fā)。Revit API中包含有Revit API.dll程序集和Revit APIUI.dll程序集。Revit API.dll程序集包含了訪問Revit中的DB級別的Application、Document、Element以及Parameter的方法,也包含了IExterDB Application接口和其他相關接口。Revit APIUI.dll程序集包含了所有操作和制定RevitUI的接口,包括:IExter Command相關接口、IExternal Application相關接口、Selection選擇、菜單類RibbonPanel RibbonItem以及其子類、TaskDialogs任務對話框。Revit二次開發(fā)主要通過兩種方式來添加自己的應用,即外部命令(IExter Command)和外部應用(IExter Application)。Revit二次開發(fā)技術能夠在軟件應用方面提供以下功能:(1)通過API接口訪問、提取模型中的各種信息。(2)通過編輯程序實現(xiàn)在Revit軟件中直接對構件進行編輯操作。(3)在建模過程中,通過編程簡化繁瑣的操作。(4)通過API接口引用外部應用程序來操作信息模型。(5)通過編程來設置運算函數(shù),實現(xiàn)對模型的數(shù)據(jù)分析運算。
文章介紹:Revit軟件的二次開發(fā)對于不同版本的軟件會存在些許的差異,主要采用.NET4.5環(huán)境來編譯。Visual Studio 2017是迄今為止最具生產(chǎn)力的版本,為用戶提供了創(chuàng)建程序或將現(xiàn)有程序進行升級改造等功能,同時鏈接原有服務與數(shù)據(jù)為二次開發(fā)提供技術支持。除了編程軟件,開發(fā)過程中還有一些特定的工具,對提升用戶的開發(fā)效率有很大幫助。例如Revit SDK包括Revit API的幫助文檔以及源代碼的案例,供用戶在進行二次開發(fā)是參考與學習;RevitLookup可以輔助開發(fā)人員在Revit中查看Revit底層數(shù)據(jù)庫中的元素對象、屬性、關系等內(nèi)容,更加直觀和方便的實現(xiàn)數(shù)據(jù)信息的查找,免除了用戶逐個查詢SDK的時間的耗費;AddInManager是用來在開發(fā)過程中調(diào)試命令和程序,無需啟動Revit就可以修改插件代碼并再次加載和運行,提高用戶的開發(fā)工作效率。Revit二次開發(fā)流程如下:(1)準備工作:需提前安裝開發(fā)所需軟件,包括Autodesk Revit、Microsoft Visual Studio,還需要掌握一些開發(fā)語言(如C#),以及Revit相關的一些基本概念;(2)創(chuàng)建項目:打開VisualStudio,單擊菜單欄“File”→“New”→“Project…”,或者按快捷鍵(Ctrl+Shift+N),打開“NewProject”對話框。在該對話框中,選擇“VisualC#”→“Windows”,在“Templates”中選擇“ClassLibrary”,在“Name”欄中輸入項目名稱“HelloRevit”,單擊“OK”;(3)添加引用:選擇“SolutionExplorer”的“References”節(jié)點,右擊選擇“Add Reference…”,打開“Add Reference”對話框。在該對話框中,選擇“Browse”選項卡,進入Revit安裝目錄,選擇“Revit API.dll”以及“Revit APIUI.dll”兩個動態(tài)鏈接庫,單擊“OK”添加到項目引用;(4)編寫代碼:完成上述各項操作后,開始編寫所需二次開發(fā)功能的具體代碼;(5)注冊外部命令:新建一個文本文件,將文件放入C:\ProgramData\Autodesk\Revit\Addins\2017\;(6)執(zhí)行命令:完成上述步驟后,啟動Revit軟件,在“外部工具”中就可以找到二次開發(fā)所得到的功能。
文章介紹:Revit作為一個功能十分強大的建模軟件,除了自身擁有的建模等功能外,還為用戶提供了應用程序編程接口(Application Programming Interface,簡稱API),借助于Revit API的二次開發(fā),搭建BIM技術的二次開發(fā)環(huán)境,可以實現(xiàn)以下功能:(1)開發(fā)插件實現(xiàn)BIM模型數(shù)據(jù)的讀取、導入以及導出等:例如利用Microsoft Visual Studio軟件的自定義編程功能,通過C#、C++、VB.NET等編程語言,完成用戶的各種開發(fā)需求,針對BIM模型中的所有結構,可以通過預先編程來讀取模型的幾何屬性、材料屬性、圖案樣式等信息,并將所需數(shù)據(jù)信息導入有限元計算軟件,實現(xiàn)Revit與有限元軟件的數(shù)據(jù)交互;(2)通過API和.NET技術來創(chuàng)建用戶所需的交互界面,快速的對模型中構件進行移動、復制、旋轉、剪切等操作;(3)利用插件自動完成一些需要重復操作的工作,通常二次開發(fā)創(chuàng)建的插件,快速的完成模型構件的重復操作,例如通過插件編程實現(xiàn)橋墩樁基模型的復制建模;(4)開發(fā)Revit軟件本身尚不具有的功能,創(chuàng)建Revit和其他軟件平臺交互的接口,實現(xiàn)模型數(shù)據(jù)的自動化處理功能,可以與其他軟件平臺數(shù)據(jù)進行集成,如連接到外部數(shù)據(jù)庫、進行數(shù)據(jù)分析等,實現(xiàn)數(shù)據(jù)共享與使用,極大地提高數(shù)據(jù)利用率和設計效率;當前有部分公司已經(jīng)開始投入到Revit的二次開發(fā),尋求BIM軟件與其他專業(yè)軟件的數(shù)據(jù)轉換,轉換的方式包括如下兩種方式:(1)建立與BIM軟件的聯(lián)系,通過軟件提供的API接口,開發(fā)數(shù)據(jù)轉換接口程序,提取模型數(shù)據(jù)信息;(2)通過VB.NET編程語言識別模型數(shù)據(jù)信息,并導入到有限元軟件中進行計算分析。
文章介紹:VS(Microsoft Visual Studio)是美國微軟公司開發(fā)的系列工具包產(chǎn)品。它包含了軟件在整個生命周期內(nèi)所需的大部分工具。開發(fā)者在此編譯環(huán)境中所編寫的代碼支持所有微軟的平臺,包括Microsoft Windows、.NETFramework、及Windows Phone等。對于開發(fā)Windows系統(tǒng)產(chǎn)品,VisualStudio是當前應用最廣泛的集成開發(fā)環(huán)境。Revit API可以允許與.NET兼容的語言來進行編程,主要包括C#、VB以及F#等。C#英文名CSHARP,是微軟公司發(fā)布的一種面向對象的編程語言,運行在.NET Framework環(huán)境中。C#集成了VB的可視化操作以及C++的高運行效率等巨大優(yōu)點。C#還以其強大的操作能力成為.NET環(huán)境中進行開發(fā)的首選語言。腿腿教學網(wǎng)小編這里采用軟件是Revit 2020、Visual Studio 2019、Revit SDK 2020、開發(fā)環(huán)為.NET Framework 4.7.0。Revit以二次開發(fā)方式去更好的實現(xiàn)在建筑工程項目中某項功能的應用時,必須借助一定的軟件開發(fā)工具,目前,對于第三方開發(fā)者來說,對Revit進行二次開發(fā)時一般采用VSTA(Visual Studio Tools for Application)開發(fā)工具。VSTA是內(nèi)置在Revit軟件中的應用開發(fā)工具,使用C#以及C++等編程語言便可以對Revit進行二次開發(fā),以此達到擴展的功能。VS是在MicrosoftVisualStudio軟件中編寫出具有功能的代碼然后結合Revit API,通過代碼驅動外部命令實現(xiàn)Revit對VS功能代碼的調(diào)用,此過程可以通過支持.NET Framework的C#、C++以及VB等計算機編程語言來實現(xiàn)。除了上述開發(fā)工具的介紹外,Revit軟件進行二次開發(fā)時,Autodesk公司還為開發(fā)者提供了Add-InManager插件管理器。Add-InManager插件管理器可以用來加載開發(fā)者編寫的Revit插件,可以用來對編譯的代碼程序進行調(diào)試,是二次開發(fā)必備的工具。
文章介紹:Revit系列軟件作為BIM技術的核心建模軟件,其強大的功能為建設項目的信息化提供了有力支撐;Revit被收購之前,Revit Technology Corporation公司計劃提供完整的解決方案,提供設計人員所需要的全部功能。這個想法針對美國或局部地區(qū)是可以的,但是如何兼顧全球的市場并非易事。Autodesk公司深知API(Application Programming Interface)的重要性,只有API能解決各國不同標準之間的契合問題。因此Revit被Autodesk公司收購后,開始封裝API供二次開發(fā)使用。2005年Autodesk推出Revit8.0,開始提供API,到今天RevitAPI應用迅速發(fā)展,從最開始的API只能訪問文檔中的對象到后續(xù)版本中的交互API,文檔級別的事件API機制,對象的過濾API,族創(chuàng)建API,在模型上顯示分析結果,模型動態(tài)更新等等。API數(shù)量每年大幅度遞增,涵蓋的功能也越來越強。借助API,第三方軟件軟件提供商可以使用Revit的功能,提供在建筑全生命周期中所需要的軟件。美國Trelligence公司的一個建筑規(guī)劃階段的軟件Affinity。其功能是在建筑規(guī)劃設計時,使房間規(guī)劃符合業(yè)主提出的要求,比如,房間總數(shù)量,面積大于50平米的會議室數(shù)量,房間之間的毗連關系。建筑師在設計過程中可以隨時查看初步設計是否符合業(yè)主的要求。Affinity在Revit Architecture上用API實時取出設計模型的房間信息,快速給出設計規(guī)劃。使用Affinity,建筑師的設計很容易保證所作的設計符合要求,減少以后詳圖設計階段發(fā)現(xiàn)不合格要修改設計的巨大浪費。應用Revit二次開發(fā),Affinity很容易就開發(fā)出了這個報告分析,無需開發(fā)建模和數(shù)據(jù)管理程序。使用Revit Architecture的建筑師很容易成為Trelligence的用戶。開發(fā)一套具有三維建模功能的圖形平臺是一件巨大的工程,開發(fā)一套高效可靠的建模系統(tǒng)更加困難,使用Revit二次開發(fā),可以直接定義這些功能。隨著國內(nèi)建設行業(yè)對于信息化要求的不斷提高,對使用BIM技術的呼聲也越來越高,近年來國家陸續(xù)不斷的出臺了許多關于BIM技術應用的標準及相關規(guī)范,可以預見在不久的將來BIM技術將在國內(nèi)實現(xiàn)全面普及,如今Revit系列軟件也不斷的被市場接受,Revit二次開發(fā)的愛好者也越來越多,有些軟件已經(jīng)建立了與Revit之間互導數(shù)據(jù),比如YJK,這也為加速BIM軟件國內(nèi)化提供了一種模板,有些愛好者作了些高效內(nèi)部使用工具,例如廣東省建筑設計院,天津水泥院,機械部六院等。
文章介紹:這里以Revit Structure 2015版本為例,因此需要NET Framework 4.5的運行環(huán)境以及Visual Studio 2012的編譯環(huán)境,Revit二次開發(fā)支持的編程語言包括C#、C++以及F#等,在二次開發(fā)前需要做一下準備工作:(1)安裝Revit SDK,內(nèi)含Revit API幫助文檔。(2)安裝ILSpy,ILSpy是一個.NET反射工具,可用來查看類和函數(shù)以及類之間的關系。(3)安裝Revit Lookup,Revit Lookup包含在Revit SDK中,用它可以直觀的查看API的對象,甚至不用編寫代碼就可以實現(xiàn)。(4)安裝Addin Manager,它是一種插件,主要用來加載Revit的插件,Addin Manager的特點在于不用重啟Revit就可以修改插件代碼并再次加載和運行。Revit二次開發(fā)的實現(xiàn)方式實現(xiàn)Revit二次開發(fā)的方式主要有兩種,即“外部命令”和“外部應用”,這兩種方式是基于不同的接口來實現(xiàn)通過RevitAPI訪問和擴展Revit軟件的。(1)外部命令外部命令的開發(fā)方式主要通過IExternal Command接口來實現(xiàn)對Revit軟件的訪問和擴展,IExternal Command接口是通過唯一的抽象函數(shù)Excute來實現(xiàn)的,因此在執(zhí)行的過程中Excute被當作主函數(shù)來調(diào)用;編譯好的接口插件通過.addin文件來識別和加載,如圖所示為外部命令調(diào)用方式,描述了外部命令是如何被調(diào)用的。 (2)外部應用基于外部應用IExternal Application的實現(xiàn)方式是通過.addin文件來識別和加載實現(xiàn)IExternal Application的外部插件,與外部命令的實現(xiàn)方式相比IExternalApplication接口有兩個抽象函數(shù)OnStartup和OnShutdown,因此可以通過重載OnStartup和OnShutdown函數(shù)在軟件Revit啟動和關閉的時候定制所需的功能,如下文中的代碼片段具體定義了這兩個函數(shù)的用法。Public interface IExternal Application{Autodesk.Revit.UI.Result OnShutdown(UIControlledApplication aapplication);Autodesk.Revit.UI.Result OnStartup(UIControlledApplication aapplication);}
文章介紹:Revit可以通過Visual Studio 2017編寫二次開發(fā)代碼,主要有兩種形式:(1)外部命令(External Command)。其最主要的功能:添加一個Revit外部命令,并可由用戶點擊按鈕來啟動命令,是目前二次開發(fā)中使用最頻繁,最快捷的操作方式。其中Execute函數(shù)是外部命令的主函數(shù),Execute中包括一個輸入?yún)?shù)和兩個輸出參數(shù):輸入?yún)?shù)commandData(IExternalData),它的主要作用是調(diào)取Revit中所有的參數(shù)信息;輸出參數(shù)message(Steing),它的主要作用是當外部命令在執(zhí)行過程中出現(xiàn)錯誤時,可及時返回錯誤信息;輸出參數(shù)elements(ElementSet),它的主要作用是當外部命令執(zhí)行失敗時,對應的構件可被選中并點擊顯示,elements中的圖元將被高亮顯示。(2)外部應用(External Application)。它的主要功能:可以添加菜單和工具條,或執(zhí)行其他初始化命令。它包括兩個抽象函數(shù):OnStartup和OnShutdown,用戶可在啟動和關閉Revit.exe程序時自動執(zhí)行這兩個函數(shù)。其主要用來在Revit中提供特定需求功能和定制插件效果(在菜單欄添加插件圖標并實現(xiàn)對應功能)等。通常一個外部應用可以包含多個外部命令,這解釋了為什么在操作軟件時,只是點擊了一個圖標,卻完成了很多操作指令。編程時,需要靈活結合運用外部命令與外部應用兩種方式,完成對程序的二次開發(fā)。經(jīng)過研究學習相關二次開發(fā)書籍、課件,總結出二次開發(fā)基本流程,主要步驟如下:(1)新建項目:打開visual studio新建Windows通用C#類庫項目(ClassLibrary),并命名項目為Carpotheight(車位凈高檢測)。(2)添加引用:在解決方案資源管理器中右鍵引用→添加引用,找到Revit安裝目錄中的RevitSDK中的RevitAPI.dll以及RevitAPIUI.dll。(3)編寫代碼:在生成的類class.cs文件類頭中添加using函數(shù)以及外部命令中的Execute函數(shù)來實現(xiàn)對Revit的車位凈高(Carpotheight)代碼的編寫。(4)部署插件:通過寫Addin的方式加入到Revit附加模塊中。此步驟經(jīng)過多次反復寫入實踐后,筆者通過學習、總結出更加便捷,有效的方法:通過用txt文本寫出文件調(diào)用路徑外,然后更改文件格式為.dll即可。(5)執(zhí)行插件:經(jīng)過以上操作步驟,重啟Revit軟件之后,便可在軟件附加模塊中找到名稱為車位凈高(Carpotheight)的插件。
文章介紹:要想完成對Revit的二次開發(fā),工具當然是不必可少的,目前Revit二開常用的三款工具主要是:Visual Studio 2017、RevitSDK以及ILSpy。下面進行逐一介紹:(1)Visual Studio 2017Revit 2017是基于.NET下的運行環(huán)境,所以需要使用Visual Studio 2017的.NET環(huán)境來編寫。Visual Studio 2017目前最完善的C#編程語言開發(fā)平臺,所有關于二次開發(fā)的編輯、測試、修改都需要在Visual Studio 2017上運行。(2)Revit SDKRevit SDK包含Revit的幫助文檔及帶源代碼的例子。SDK的全稱是:Software Development Kit(軟件開發(fā)工具包),主要目的是方便編程人員獲取幫助、源代碼的例子和一些實用開發(fā)具。Revit SDK相當于Revit的字典,編程時可以參考SDK,更容易編寫代碼,熟練之后可以減少使用次數(shù)。字典是非常重要的環(huán)節(jié),但也不能完全照搬。在SDK中包含:說明性文檔,比如:Read Me First.doc、Getting Started with the Revit API.doc。開發(fā)參考文檔,比如:Revit API.chm,制作安裝程序時的Revit AddIn Utility.chm,制作用戶界面時的Autodesk Icon Guidelines.pdf。同時還包含兩個重要工具:Add-InManager和Revit lookup。Revitlookup是Autodesk公司開發(fā)的插件,主要是用來直觀查看API的對象。包含在Revit SDK中,可以供用戶利用源代碼自行編譯。Add-InManager同樣是Autodesk公司開發(fā)的官方插件,用來加載Revit的插件。主要優(yōu)點是可以不用重啟Revit就可以修改插件代碼并再次加載運行,包含在Revit SDK中。(3)ILSpyILSpy是一個免費的.NET反射工具,可以用來查看.NET Assembly的類和函數(shù)以及之間的關系。開發(fā)過程中經(jīng)常利用它來查看類和函數(shù)以及類之間的關系,比如繼承關系,或搜索開發(fā)者想要的內(nèi)容。
文章介紹:隨著我國建筑業(yè)設計、建造過程綠色、精益技術的發(fā)展,BIM技術越來越得到整個建筑行業(yè)的認可和使用。運用BIM技術解決實際工程問題的時候,常常會面對很多比軟件初始設定的解決方案要復雜、難解決的問題。單靠某一款軟件或依靠軟件提供的更新迭代往往無法全部解決這些問題。面對這樣的情況,Autodesk公司開始提供RevitAPI接口,面向全社會,供所有開發(fā)者使用。編程相應問題的二次開發(fā)成果是基于Revit軟件的插件,它不僅能夠創(chuàng)建、調(diào)取BIM模型參數(shù)還能夠實現(xiàn)批量、智能化操作。通過這樣的方式能讓原本復雜的工作由軟件程序代替完成,從而大大減少工作量,進而提升整體工作效率。采用二次開發(fā)程序解決實際工程問題遠比依賴軟件自身要方便、快捷、高效,同時也使Revit的應用范圍更加廣闊。Revit二次開發(fā)所需準備在進行二次開發(fā)前,需要知道“類”的概念。“類”是C#的核心概念,類包含構造器、屬性、方法,“類”是創(chuàng)建“對象”的模板,“對象”包含了“類”的一系列功能。“對象”通過“類”構造,“類”也可以作為參數(shù)傳遞信息。同時不論是圖元還是處理圖元的方法,一律都封裝在類中,各種類又分別放置在不同命名空間下,最終都以函數(shù)庫.dll文件存在,通過接口可以使用這些函數(shù)庫。為了完成對Revit的二次開發(fā),主要需要準備以下方面的內(nèi)容:(1)C#編程語言:提供基礎的編程代碼及操作邏輯。在Revit平臺中,可用編程語言種類豐富,只要是基于.NET框架下的語言都能夠在其中進行二次開發(fā)。但經(jīng)過綜合分析對比,C#編程語言是一種安全的、穩(wěn)定的、簡單的,由C和C++衍生出來的面向對象的編程語言。C#綜合了VB簡單的可視化操作和C++的高運行效率,是.NET開發(fā)的首選語言。同時C#也是是目前國內(nèi)資源最多,受眾人群最廣,對Autodesk公司最兼容的編程語言。所以選用C#作為Revit平臺二次開發(fā)的編程語言。(2)Revit 2017平臺:程序運行的基礎。(3)開發(fā)工具:Visual Studio或Sharp Develop。程序研發(fā)所需的編程環(huán)境。(4)RevitSDK:為編程提供幫助。
文章介紹:用戶進行Revit的開發(fā)時首先需要引用程序集Revit API.dll和Revit APIUI.dll,其中Revit API.dll程序集中包含了IExtennalDBApplication和其他的相關接口,而RevitAPIUI.dll程序集中包含了IExternalCommand和IExternalApplication接口。用戶需要在開發(fā)的插件中實現(xiàn)這些接口,才能對Revit進行訪問和擴展。(1)外部命令(IExternalCommand)IExternalCommand接口的作用是用戶用來擴展相關功能,該接口僅有一個抽象函數(shù)——Excute,通過重載這個函數(shù)來實現(xiàn)接口,這個函數(shù)將作為外部命令的主函數(shù)被調(diào)用,在完成執(zhí)行后,外部命令對象會直接被銷毀。因此,數(shù)據(jù)僅能保持在當次執(zhí)行的外部命令對象之中。(2)外部應用(IExternalApplication)IExternalApplication接口的主要作用是用于添加設計的應用,Revit通過.addin文件對開發(fā)的外部插件進行識別與加載。IExternalApplication接口有兩個抽象函數(shù)——OnStartup和OnStartdown,通過重載這兩個函數(shù)來定制Revit在啟動和關閉時觸發(fā)的功能,可以對軟件UI進行定制。(3)數(shù)據(jù)庫級別的外部應用(IExtennalDBApplication)數(shù)據(jù)庫(DB)級別的外部應用相較于上述的外部應用而言,它并未提供任何的RevitUI接口,主要作用是對于事件的處理,開發(fā)人員可以通過IExtennalDBApplication接口來添加所必需的外部應用。而其與IExternalApplication也具備相同點,IExtennalDBApplication同樣是OnStartup和OnStartdown兩個抽象函數(shù),OnStartup方法用于用戶對事件進行注冊。
文章介紹:Revit二次開發(fā)有三種方式:外部命令(IExternalCommand)、外部應用(IExternalApplication)和宏(Macro)。下面將簡要說明外部應用、宏的開發(fā)過程,并著重說明外部命令的開發(fā)過程。1.宏(Macro)宏是基于RevitAPI編寫的程序,能實現(xiàn)重復任務的自動化,是最簡單的二次開發(fā)方式。在“管理”選項卡—“宏管理器”里面可以進行宏的使用。可以通過Revit自帶的編譯器完成代碼的編寫和編譯,RevitAPI的功能基本上都可以被宏使用。Revit本身自帶宏管理器,負責運行宏程序,不需要額外的插件。2.外部應用(IExternalApplication)開發(fā)者可以通過外部應用來添加自己的應用。外部應用開發(fā)的插件,可以在啟動和關閉Revit軟件時自動執(zhí)行,插件本身被添加到菜單中,外部應用的優(yōu)點是不需要手動加載二次開發(fā)的插件,但很少通過外部應用的方式來實現(xiàn)Revit的擴展功能。IExtermalApplication接口具有兩個均為UIControlledApplication類型的抽象函數(shù):OnStartup和OnShutdown。通過外部應用中重載OnStartup和OnShutdow函數(shù),在啟動和關閉Revit軟件時自動調(diào)用來實現(xiàn)所需功能。外部應用方式無法訪問Revit文檔及相關操作,需要通過UIControlledApplication訪問定制UI和注冊事件。3.外部命令(IExternalCommand)IExternalCommand是RevitAPI用戶通過外部命令來擴展Revit時必須在外部命令中實現(xiàn)的接口。外部命令是應用最頻繁的二次開發(fā)的方式。IExternalCommand接口只有一個抽象函數(shù)Excute(),用戶可以在這個函數(shù)中添加Revit命令,當用戶點擊啟動命令按鈕,程序會重載這個函數(shù)來實現(xiàn)IExternalCommand,即可實現(xiàn)二次開發(fā)。Excute()與一般程序中的Main函數(shù)的功能一致,是程序的入口。
文章介紹:使用Revit API進行二次開發(fā)對計算機的硬件性能有一定的要求,比如的CPU為Intel(R)Core(TM)I7-7700,顯卡為NVIDIA GeForce GTX 1080,運行內(nèi)存為32G,操作系統(tǒng)為64位的windows10。同時開發(fā)也需要一定的軟件要求,本文的軟件工具主要有Revit 2018、Microsoft Visual Studio 2019、Revit SDK(Software Develop mentKit,軟件開發(fā)工具包)、Revit LookUp。1)Microsoft Visual Studio2019Microsoft Visual Studio 2019是微軟公司開發(fā)的新一代集成開發(fā)環(huán)境(Integrated Development Environment,IDE),簡稱VS,具有強大的軟件開發(fā)功能,支持多種編程開發(fā)語言。2)Revit SDK開發(fā)工具包Revit SDK是Revit二次開發(fā)必需的工具,是Autodesk官方提供的開發(fā)工具包。包含了開發(fā)所需要的各種工具,如Add-InManager插件工具、Samples(帶源代碼)文件夾、Revit API.chm開發(fā)幫助文檔等。①Add-InManager插件Add-InManager是Autodesk提供的官方插件,是用來快速加載或者卸載二次開發(fā)程序的工具,不需要手動創(chuàng)建Addin文件,就可以自動保存加載命令。其特點是修改插件程序代碼時,不用重啟Revit可以直接加載運行,方便開發(fā)人員進行調(diào)試。該插件通過SDK安裝,將SDK安裝文件中Add-InManager文件夾里的“Add InManager.dll”和“Autodesk.AddIn Manager.addin”文件按路徑“C:\Users\Administrator\AppData\Roaming\Autodesk\Revit\Addins\2018”復制到“2018”文件夾,即可完成安裝。安裝后,在Revit軟件中的“附加模塊”選項卡頁面下的“外部工具”中使用。它有三種加載方式:“ManualMode”、“Manual Mode,F(xiàn)aceless”、“ReadOnlyMode”,其中“Manual Mode”對應手動(Manual)事務模式、“Read Only Mode”對應只讀(Read Only)事務模式,“Manual Mode,F(xiàn)aceless”表示運行前一次剛剛運行的插件。②Samples源代碼文件夾Samples文件夾提供了各種程序代碼和示例,可以用VisualStudio2019打開“SDKSamoles.sln”文件,檢索關鍵字來查找所需類,查看相應的代碼實例,進而幫助開發(fā)者更好的理解學習Revit API中各種類的使用方法。③Revit API.chm開發(fā)幫助文檔SDK中的Revit API.chm文檔包含了API中所有的類、方法和屬性的詳細解釋,是二次開發(fā)者必須參考的重要文檔。Revit API.chm文檔中給出了C#、VB和C++語言的代碼示例Examples。3)Revit LookUp插件Revit LookUp也是由Autodesk官方提供的開發(fā)插件,提供了快速查看圖元屬性和參數(shù)信息等功能。該插件安裝完成后,啟動Revit軟件時,在“附加模塊”下即會出現(xiàn)RevitLookup調(diào)用按鈕。使用RevitLookup插件可以查看Revit內(nèi)圖元的參數(shù)和屬性信息。比如,選中BIM模型中的樓板構件,便可以通過該插件查看樓板實例的各項屬性和參數(shù),且可追溯到該實例的族類型Floor。
文章介紹:在對Revit進行二次開發(fā)時,我們必不可少地要用到一些工具,如Microsoft Visual Studio、Revit Software Development Kit等。下面就為大家總結Revit二次開發(fā)的必備工具:RevitRevit軟件是Autodesk公司開發(fā)的用于三維建筑信息模型設計的一款軟件,它由Revit Architecture(建筑專業(yè))、RevitMEP(機電專業(yè))和Revit Structure(結構專業(yè))三個部分組成。Revit軟件一經(jīng)推出,便得到了國內(nèi)科研機構、高校、設計院、施工技術人員等的青睞,并且在國內(nèi)市場得到了快速的發(fā)展與推廣。通過該軟件,設計人員可以按照自己的思考方式更加直觀的進行設計,從而提高了設計質(zhì)量,并為工程項目管理人員提供了更加精確的結構設計作品,使工程項目管理人員能夠更加精細化的進行項目管理。另外,Revit軟件應用了可以簡化工作流的Ribbon界面。使用者可以根據(jù)自身的實際需求修改、規(guī)劃設計界面布局。Microsoft Visual StudioMicrosoft Visual Studio是一種軟件開發(fā)平臺,它包含了軟件二次開發(fā)所需要的大部分工具。它也是一種語言編程軟件,可以使用各種語言在VS中進行編程,完成代碼的編譯。Revit Software Development Kit在進行Revit軟件安裝時,會附帶一個軟件開發(fā)工具包(Software Development Kit)的安裝包。在軟件開發(fā)工具包中,具有入門文檔、開發(fā)手冊或幫助文檔、樣板案例文件夾Samples等。其中最常用的資源主要是RevitAPI.chm和Samples文件夾。RevitAPI.chm中包含了所有RevitAPI相關接口的詳細說明,對于Revit二次開發(fā)人員來說,在開發(fā)過程中是一個非常重要的參考工具。在開發(fā)手冊的Index頁面可查找一些接口,在查找的過程中,接口記錄欄會根據(jù)輸入內(nèi)容快速進行過濾。接口信息展示區(qū)主要內(nèi)容有接口類和接口名稱、接口定義(一般同時給出C#、VB、C++三個版本的定義)、參數(shù)說明、代碼示例等。Samples文件夾中包含有很多官方的實例項目,對于Revit二次開發(fā)初學者入門學習有著很好的指導意義。RevitLookupRevitlookup是Autodesk公司開發(fā)的官方插件,不需要編寫代碼就可以直觀看到API對象。它是一款非常實用的輔助Revit二次開發(fā)人員了解構件元素的強有力工具,其由Autodesk公司的著名軟件咨詢分析師Jeremytammik開發(fā)而成。并且在GitHub上進行了開源。通過Git客戶端工具將源碼從GitHub上克隆到本地進行編譯并放置Addin文件即可使用。RevitLookup插件版本必須和自身使用Revit版本相一致,否則在開發(fā)過程中該插件無法使用。開發(fā)人員在進行Revit二次開發(fā)之前可以使用RevitLookup查看構件的一些隱藏屬性,比如Revit構件對象的屬性、參數(shù)等信息。除此之外還可以通過該插件快速獲取源代碼。它包含于SDK工具包的壓縮包中,也可以通過源代碼編譯獲得RevitLookup插件。官方插件Add-InManagerAdd-InManager同樣是Autodesk公司開發(fā)的一種官方插件,通常用它來加載基于Revit的各種功能的插件。它也包含于RevitSDK中,在Add-InManager插件出現(xiàn)之前,在進行Revit二次開發(fā)時,時常會遇到插件運行錯誤、出現(xiàn)異常或者實現(xiàn)有誤等情況,一般情況下都需要關閉Revit軟件修改插件代碼,然后再重新啟動Revit進行調(diào)試,這樣整個開發(fā)過程就顯得非常繁瑣。Add-InManager插件具有不用重啟Revit軟件就可以修改各種插件代碼并重新加載和運行的優(yōu)點。因此很好的解決了上述問題。ILSpy工具ILSpy是一種開源免費的.NET反射工具,使用十分方便。它可以將將插件程序生成的DLL文件轉換為C#語言以及進行C#、VB、IL三種語言之間的轉換。我們在學習他人代碼時,利用ILSpy的反編譯功能可以方便查看他人所寫程序的類庫及相關接口。在Revit二次開發(fā)過程中可以使用ILSpy工具查看.NETAssembly的類、函數(shù)以及類之間的關系,例如類之間的繼承關系。
文章介紹:今天我們來簡單聊聊關于Revit二次開發(fā)的那些事:Revit的可擴展性從2005年開始Autodesk公司便開始提供Revit API,版本從Revit 8.0到Revit2017。Revit API是應用程序接口,其英文全稱為Application Programming Interface,是軟件二次開發(fā)中不可或缺的基本因素。起初,Revit8.0的API只能訪問文檔中的對象。經(jīng)過長時間的研究之后便可以在Revit2010版本的API進行文檔對象的過濾以及族庫的建立,而自從Revit2012版本的面世以來,其API已經(jīng)可以實現(xiàn)大量的定制拓展,以滿足各個領域的需求。Revit API能夠提供軟件各種應用的功能接口,促進Revit可視化功能和數(shù)據(jù)分析的信息集成。Revit使用者可以根據(jù)操作需求進行功能拓展。Revit API則是通過與計算機工作環(huán)境Microsoft.Net Framework兼容的語言如:Microsoft VisualC#或VB.Net來進行調(diào)用的。API功能介紹設計人員一般進行建模操作時只需要使用菜單欄中的按鈕功能就可以實行。而Revit還提供了協(xié)助調(diào)用外部命令的程序接口API,使得設計人員可以通過編寫外部程序,從而對Revit中建立的模型數(shù)據(jù)進行批量操作。其能夠實現(xiàn)的功能如下:1)可以通過插件的開發(fā)來達到訪問模型信息數(shù)據(jù)的目的。2)在建模過程中,本來要進行多步才能完成的操作,通過一鍵化操作完成。3)通過接口對外部應用程序進行引用來實現(xiàn)對模型的操作。API開發(fā)方式當使用外部命令方式進行軟件開發(fā)時,主要分以下幾步進行操作[37]:1)需要新建類,并從IExternalCommand接口派生;2)然后重載IExternalCommand.Execute()方法;3)添加用戶代碼實現(xiàn)命令功能。Revit API開發(fā)工具有兩種:一種是VisualStudio,針對Revit各種版本,一般選擇Microsoft Visual Studio 2013,引用接口組件文件Revit API.dll、Revit APIUI.dll,然后將接口組件通過本地引用到模型上便可以執(zhí)行相應的功能。第二種開發(fā)工具是VSTA(Visual Studio Tools for Application),是Revit自帶的開發(fā)環(huán)境,這就類似于AutoCAD中的VBA或OFFICE中的VBA開發(fā)工具,VB.NET和C#語法都可以適用于VSTA的操作。通過生成腳本宏的基本原理將程序附著在模型之上,通過宏的運行實現(xiàn)功能的操作。
文章介紹:軟件的二次開發(fā)是在現(xiàn)有的軟件上通過編程語言進行功能的擴展,滿足自己的需求,不會改變原有軟件的內(nèi)核,實質(zhì)上是軟件創(chuàng)新的過程。CATIA二次開發(fā)的方式主要有3種:基于知識工程的EKL語言、Automation API和CAA,其具體介紹如下:(1)基于知識工程的EKL語言EKL全稱Enterprise Knowledge Language(企業(yè)知識語言),是在V6/3DExperience環(huán)境下基于知識工程的一種編程語言,屬于進程內(nèi)的訪問,與CATIA軟件可同時執(zhí)行,它的目的是在更尋常的條件下開發(fā)和集成應用程序。EKL具有可移植、面向對象、不需要編譯、自動化、能直接操作V6對象等特點,可以用作在數(shù)據(jù)庫中搜索對象、瀏覽不同結構、創(chuàng)建產(chǎn)品和PLM對象、導出數(shù)據(jù)至Excel或Xml中、設置或讀取產(chǎn)品屬性。EKL從低到高被定義為數(shù)學企業(yè)語言、核心企業(yè)語言、高級企業(yè)語言和可擴展企業(yè)語言4個等級,前三者一般應用在參數(shù)、公式、設計表、規(guī)則、檢查等知識工程工具中,可擴展企業(yè)語言用于用戶更高級定制開發(fā)中。EKL語言面向對象編程,語法簡單。語言瀏覽器類似于幫助文檔,通過搜索需要操作的對象,可以查找其對象的支持/繼承類型、屬性、使用此類型的函數(shù)、返回此類型的函數(shù)和函數(shù)的具體使用方法。(2)AutomationAPI(Automation Application Programming Interface)AutomationAPI全稱AutomationApplicationProgrammingInterface(自動化應用接口)。CATIA基于AutomationAPI進行二次開發(fā)的技術是一種基于COM原理,在腳本解釋環(huán)境下執(zhí)行的技術,繼承了COM技術優(yōu)點,簡化了底層實現(xiàn)細節(jié),為二次開發(fā)提供了很大的便利。COM(ComponentObjectModel)是由微軟推出的一套接口規(guī)范,通過設定不同組件之間的標準和協(xié)議,實現(xiàn)多語言、跨進程的模塊通信,增強了代碼的復用率,實現(xiàn)程序的可定制性。這種技術的核心就是通過一個組件去調(diào)用另外一個組件,因而不能直接的去獲取和處理數(shù)據(jù)。在CATIAAutomation中,所有數(shù)據(jù)被封裝成了對象的形式,并具有方法和屬性,形成了特定的樹形結構,Application是根對象,下面又派生出許多子對象。Automation API是CATIA預先編寫的函數(shù)接口,專門用來與外部通信。不同的對象擁有不同的API,通過API調(diào)用對象的方法和屬性,則間接的對CATIA軟件進行操作。(3)CAA(Component Application Architecture)CAA全稱Component Application Architecture(組件應用架構)是一種采用COM原理和OLE技術,通過面向對象語言來實現(xiàn)CATIA二次開發(fā)的方式。CATIA軟件按照組件模型原理建立,因而用戶可以開發(fā)出定制化組件,對軟件進行擴展;也可以將自己開發(fā)的組件結合起來,實現(xiàn)自定義的應用。CAA采用C++語言編寫,有完整的一套基于CATIA底層的C++函數(shù)庫,用戶在RADE環(huán)境下通過API接口與CATIA進行通信。RADE(Rapid Application Development Environment)是達索公司提供的快速應用研發(fā)環(huán)境,是一個可視化并擁有完整編程工具組的集成開發(fā)環(huán)境。RADE以Microsoft VisualStudio為載體,開發(fā)工具集成在VC++環(huán)境中,包含TCK(關鍵工具配置)、MAB(多空間應用生成器)、CUT(C++單元調(diào)試管理器)、MKMK(CAA編譯工具)和CID(C++交互式面板)等一系列工具。API則提供了操作對象模型的方法和函數(shù)。——節(jié)選自《基于 BIM 技術的橋梁工程參數(shù)化建模方法及設計系統(tǒng)的研究》張云鶴版權歸原作者所有 侵刪
文章介紹:你對Revit二次開發(fā)的了解有多少?今天腿腿小編帶大家了解一下Revit二次開發(fā)的工具與基礎:Visual StudioMicrosoft Visual Studio(簡稱VS)是微軟公司的開發(fā)工具包系列產(chǎn)品。VS包括了如集成開發(fā)環(huán)境(IDE)、UML工具、代碼管控工具等在軟件生命周期中所需要的大部分工具。它主要是對計算機程序以及網(wǎng)站、Web應用程序、Web服務和Mobile應用程序等進行開發(fā)。Visual Studio使用Microsoft軟件開發(fā)平臺,例如WindowsAPI、Microsoft Silver light等。Visual Studio包含一個支持IntelliSense(代碼完成組件)和代碼重構的代碼編輯器。集成調(diào)試器不僅能用于源級調(diào)試器,還能用于機器級調(diào)試器。其中的Tools包括代碼剖析器、用來構建GUI應用程序的設計器、Web設計器、Class設計器和Database模式設計器。它擁有在每個級別上增強其功能的插件,包括添加對源代碼控制系統(tǒng)(如Subversion和Git)的支持,以及添加新Tools集(例如用于特定領域語言的編輯器和可視設計器)或用于實現(xiàn)其他功能的Tools集。C#.NET.NET實質(zhì)上是Microsoft XML Web services的服務集成平臺,允許在任何操作系統(tǒng)和編程語言的應用程序中通過Internet進行通訊和數(shù)據(jù)共享,并且擁有無縫、流暢的操作體驗。C#由微軟公司在2000年發(fā)布,由安德斯·海爾斯伯格領導開發(fā)。它是第一個面向組件的編程語言,也是面向對象、運行于.NETFramework之上的高級程序設計語言。在一定程度上,由于開發(fā)人員的關系,C#看起來與Java相似,同時和Delphi一致,直接集成COM,重點使用于.NETwindows網(wǎng)絡框架。C#簡單易用又安全穩(wěn)定,衍生于C語言和C++,又去掉了一些它們的復雜特性,使得C語言和C++編程人員可以很快轉向C#編程開發(fā)工作。它同時具備C++的高運行效率和VB的可視化操作特性,能夠運用Microsoft.NET提供的一系列工具和服務,從而成為.NET開發(fā)的首選語言。C#中有多種數(shù)據(jù)類型,常用的有布爾型、常量、變量、數(shù)組、字符串、結構體、對象等。Revit APIAPI(Application Programming Interface)為應用程序接口,Autodesk Revit系列軟件的所有產(chǎn)品都會提供相應的API,這使得第三方開發(fā)者可以通過接口自主開發(fā)相應軟件的插件,并附加到軟件當中,方便設計者使用。Revit通過API將軟件設計者等設計的應用程序集成到Revit系列產(chǎn)品中,實現(xiàn)Revit功能的擴展。RevitAPI為Revit的功能模塊,與Architecture、MEP和Structure模塊相似,相當于Revit的附加功能,需要在Revit運行時才能工作。其使用語言需與.NET兼容,可使用如VB、.NET、C#及C++等計算機語言。通過API可以訪問Revit后臺,通過點、線、面建立三維模型,過濾器篩選模型的圖形數(shù)據(jù)并更改模型參數(shù)數(shù)據(jù),從而實現(xiàn)對模型元素的修改。通過創(chuàng)建插件,建立窗體程序來完善用戶的交互界面,通過編程循環(huán)或篩選功能可完成一些重復工作的自動化,通過后臺計算功能可完成模型的部分計算,這是Revit原來所不具備的。RevitAPI不僅對Revit功能進行了補充,還可以將插件程序應用到基于Revit的各層產(chǎn)品,幫助其他軟件建立模型及進行計算,實現(xiàn)完整的BIM分析流程,極大的解放了設計人員,也增強了軟件設計的精確度。
文章介紹:Revit軟件是Autodesk公司用于三維設計的重要軟件,是目前全球最具影響力的BIM工具之一。軟件可以滿足建筑與設計方面的多種要求,提供準確無誤的設計信息,通過相應的建筑信息模型設計工具,保證建筑結構整體從設計到最終成品在各個方面保持一致性。Revit作為建筑、結構與機電為一體的建筑設計軟件,可以設計包含暖通、電氣和給排水等設計的復雜的建筑模型,更高效的完成標準設計,能夠很好的體現(xiàn)基于BIM的裝配式建筑信息化的過程,實現(xiàn)BIM信息應用的目的。在Revit中的族分成三大類,分別是內(nèi)建族、系統(tǒng)族和可載入族:系統(tǒng)族在Revit中可自定義,以創(chuàng)建諸如墻體、梁、地板等基本元素。類型是族的屬性,因此相同的類型族可以有多種尺寸。Revit二次開發(fā)概述隨著建筑設計的迅猛發(fā)展,傳統(tǒng)設計不能滿足目前的設計模式,由于三維信息建模表達形式更加準確,直觀,因此逐漸被應用。Revit作為一個BIM建模平臺軟件,其二次開發(fā)功能不僅僅能創(chuàng)建模型以及批量操作構件,還能連接與其他軟件的信息傳遞共享。
文章介紹:Revit API接口體現(xiàn)了Revit的可擴展性,其對應的應用程序編程即Revit API為二次開發(fā)提供了很大的便利。用戶可根據(jù)自己的需求運用軟件的可擴展性功能。現(xiàn)階段軟件開發(fā)人員更多的是對Revit原本的功能進行優(yōu)化編碼,嘗試為軟件進行新功能的擴展。Revit API包含眾多命名空間,且所涉及專業(yè)較廣泛。每一個空間對應有符合的工具類別。由于Revit API是屬于在Revit基礎上的一種類庫,需在Revit軟件運行時才能工作,因此可通過添加外部工具等插件來擴展和增強軟件的應用。Revit API可在上述的Revit Architecture(建筑)、Revit Structure(結構)及Revit MEP設備(水、暖、電)之上進行實現(xiàn)開發(fā)功能。Revit API是擴展Revit功能的程序開發(fā)接口。二次開發(fā)時Revit API有兩個接口,分別是外部命令External Command和外部應用External Application兩種模式。第一,External Command外部命令。外部命令與菜單一一對應,每一個外部命令都需要實現(xiàn)Autodesk.Revit.UI.IExternalCommand接口,該接口只需要實現(xiàn)Execute接口中必須重寫其中的抽象函數(shù):Excute(),該函數(shù)是External Command接口的入口函數(shù),必須重寫。第二,External Application外部應用。外部應用是把一系列外部命令打包成一個應用包,同時外部應用還可以通過啟動時注冊Revit的addin文件來擴展Revit功能;外部應用隨著Revit程序有關聯(lián)性。因此這個函數(shù)在實現(xiàn)IExternal Application的接口之后,需要重寫OnStartup()函數(shù)和OnShutDown()這兩個函數(shù)。Revit API二次開發(fā)流程如下:1)創(chuàng)建一個C#項目。2)添加上述兩個引用(Revit API.dll和Revit APIUI.dll),實現(xiàn)接口書寫代碼,為命令類添加屬性。3)選擇擴展Revit功能的方式(External Command外部命令External Application外部應用)。4)在Execute中添加編程代碼來實現(xiàn)功能的創(chuàng)建,并加載DLL文件。5)打開軟件Revit,點擊附加模塊外部工具模塊,進行運用。
文章介紹:目前,對于各BIM軟件二次開發(fā)工具的對比較少,但對各BIM廠商內(nèi)部軟件開發(fā)工具介紹的較多。各軟件二次開發(fā)工具各不相同,但基本上都有內(nèi)嵌簡易開發(fā)工具、利用軟件接口完整程序的開發(fā)兩種使用形式,下面結合本人測試結果,對各BIM軟件二次開發(fā)工具異同對比如下:(1)Catia二次開發(fā)概述Catia二次開發(fā)主要有三種方式,分別是知識工程中使用的知識工程(Knowledge ware)、自動化應用接口(Automation API)的宏、CAAV5的C++和Java應用接口。知識工程是一套預定義的服務,以規(guī)則、檢查為基本使用場景,從函數(shù)、規(guī)范到組件和系統(tǒng)來一步一步實現(xiàn)的。它主要采用KWE語言(與VB.NET相似但更簡單),主要用于三個方面:知識顧問、知識專家和產(chǎn)品工程優(yōu)化。Automation API用于自動化(Automation)組件,日志(Journaling),利用visualBasic和JavaScript/HtIlll的開發(fā),這是一種交互方式的定制。該定制方式允許用戶獲取CATIA的數(shù)據(jù)模型。AutomationAPI具備了與任何OLE所兼容的平臺進行通訊的能力。CAAV5基于組件的定制開發(fā)。CAA是組件應用架構(Component Application Architecture)的縮寫,是Dassault System產(chǎn)品擴展重要組成方式。CAAC++可以進行最有效率的應用程序開發(fā),但入門困難。CAA Automation功能限制相當大.但入門容易。知識工程EKL語言最簡單,但是擴展功能有限,不能訪問幾何圖形及屬性信息,只能獲得有限的參數(shù)信息。(2)Revit二次開發(fā)層次概述Revit的二次開發(fā)主要有Dynamo可視化開發(fā)、RevitAPI兩種形式。Dynomo是一個基于Revit的可視化編程平臺,通過代碼塊(可使用內(nèi)部提供的塊或自己開發(fā)新的塊)實現(xiàn)單一功能,再通過邏輯線進行邏輯關聯(lián)。主要編程語言為DesignScript和Python。設計師通過定義程序流程,探索參數(shù)化設計方案和自動化建模與模型檢查工作流,幫助用戶實現(xiàn)互操作性的工作流程和文檔管理,自動的模型創(chuàng)建、協(xié)調(diào)、模擬和分析。RevitAPI(Application Programming Interface,應用程序編程接口)是Revit二次開發(fā)的工具。RevitAPI是在Revit中大量的命名空間和使用類庫的集合,是Revit與.NETFramework的接口。.NETFramework是可以用來開發(fā)應用軟件與托管類庫的一個平臺。與Microsoft.NETFramework兼容的語言,如C++、C語言、VB等編程語言都可以使用該接口對Revit進行二次開發(fā)。用戶可以使用自己熟悉的編程語言通過該接口對Refit進行二次開發(fā),最終達成結果。不同語言開發(fā)的插件可以交互。(3)Microstation二次開發(fā)概述Microstation有三種二次開發(fā)接口:MDL(Microstation Development Library)、Microstation VBA、Microstation Addins三種。其中,MDL是一種結構化編程語言,以C語言為基礎,其具有編譯程序、鏈接程序、運行時間庫、庫管理程序。VBA是Microstation提供的基于VB面向對象的編程語言,它需要與MicroStation同時運行,對MicroStation進行編程控制是以MicroStation Object Library接口為基礎的。Addins基于.NET開發(fā),可使用C語言、VB.NET進行編程,由其編譯后的DLL文件與MicroStation進行交互。MDL可以直接在MicroStation中運行并且表現(xiàn)為MicroStation本身的一部分,程序運行效率較高,但人門困難。VBA語法結構簡單,開發(fā)快速高效,其界面可以由豐富的WinForm資源設計,更加美觀,且方便地同.NET平臺的其他軟件集成,但由于Microstation窗體資源有限,不對代碼進行編譯,無法對程序保密.Addins在MicroStation程序的外部單獨編譯,對三維模型元素的操作效率較低。
文章介紹:Revit API是建立在Revit產(chǎn)品的基礎之上的。它是一個類庫,必須在Revit運行時才可以工作。通過運用API,可以獲取模型的圖形數(shù)據(jù)、參數(shù)數(shù)據(jù);建立、調(diào)整、移除模型元素;通過生成插件對UI強化、對復雜工作進行智能化;通過整合第三方應用,來完成包括鏈接到外部數(shù)據(jù)庫、轉移數(shù)據(jù)結果到分析應用中等。Revit中的Architecture模塊、Structure模塊與MEP模塊的API十分類似,因此共同稱為Revit API。Revit API可以通過C#一程序開發(fā)語言來編寫,也能夠通過使用編程完成對模型元素的建立、調(diào)整和移除等功能。通過創(chuàng)建插件來實現(xiàn)對UI用戶界面功能的強化,以及對某些重復性管理工作的智能化,還能夠把應用程序整合到基于Revit的各層產(chǎn)品。同時還能夠進行所有類型的BIM數(shù)據(jù)分析,以及進行自動建立項目文件。通過對Revit進行二次開發(fā),將簡單基本參數(shù)和重要基本參數(shù)的相對關系以及簡單基本參數(shù)之間的約束關聯(lián)和Revit連接,從而完成了采用Revit平臺對新族的參數(shù)化構建。Revit API提供了用戶與Revit的接口,可以實現(xiàn)瀏覽BIM模型參數(shù)、建立UI交互界面等功能。常用的二次開發(fā)工具有VisualStudio2017開發(fā)軟件、RevitSDK工具包、RevitLookup插件和AddInManager插件。VisualStudio2017是基本的軟件開發(fā)平臺,其上承載了大量包含C#語言、F#語言、C++語言等和.NET兼容的編程語言,使用這些編程語言就能編寫出可以在Revit API上運行的程序。 以上就是Revit二次開發(fā)用什么語言的全部內(nèi)容了,每個人觀點不同,希望本篇文章能夠幫助大家!
文章介紹:Revit是由Autodesk公司于2002年收購,并基于BIM理念繼續(xù)開發(fā)完善而推出的平臺級建模軟件,與Navisworks、Robot等專業(yè)軟件組成了Autodesk公司的BIM解決方案。該軟件面向建筑、結構、鋼結構、機電設備等多個專業(yè),提供了基本的建模功能、視圖功能、分析功能、出圖功能和協(xié)作功能等。Revit軟件具備BIM技術中的可視化、協(xié)同性、可出圖性和參數(shù)化等特點,做到在任一視圖中對模型的改動,將會關聯(lián)到整個模型以及所有的視圖,這是與二維施工圖設計軟件最本質(zhì)的區(qū)別。Autodesk公司為Revit軟件提供了二次開發(fā)的接口RevitAPI(ApplicationProgrammingInterface,應用程序接口),使得用戶對Revit的使用可不再局限于手動地選擇命令,而是可以通過代碼自動執(zhí)行一系列Revit的建模等命令,這大大提高了Revit的使用效率,促進了Revit的應用和普及。應對實際項目對Revit軟件提出的更高更復雜的要求,往往需要設計者利用二次開發(fā)工具,通過RevitAPI自行開發(fā)所需的功能。RevitAPI主要由“RevitAPI.dll”和“RevitAPIUI.dll”等在Revit運行期間運行的類庫組成。“RevitAPI.dll”包含用于訪問Revit的應用程序、文件、圖元等方法,還包含了IExternalDBApplication(數(shù)據(jù)庫級別的外部應用)及其接口。“RevitAPIUI.dll”包含了ion(選擇)等操控方法以及RibbonPanel(功能區(qū)面板)、TaskDialogs(對話框)等與人機交互和Revit界面相關的API接口,另外還包含了IExternalCommand(外部命令)及其接口、IExternalApplication(外部應用)及其接口。開發(fā)者通過RevitAPI將其開發(fā)的應用程序集成到Revit軟件中,形成Revit插件,以擴展和增強Revit的功能和應用。RevitAPI開發(fā)的軟件穩(wěn)定性很好。近年來Autodesk公司對RevitAPI的優(yōu)化不斷深入,尤其在架構和規(guī)范方面不斷完善,修改了部分方法使其歸屬到相同的類中以幫助用戶更好地理解和使用接口。RevitAPI借助MicrosoftVisualStudio平臺,依托與Microsoft.NETFramework兼容的C#等編程語言進行Revit二次開發(fā)。Revit二次開發(fā)所需的條件包括:Revit軟件、MicrosoftVisualStudio、RevitSDK(SoftwareDevelopmentKit,軟件開發(fā)工具包)等。 上述就是為大家整理的什么是Revit二次開發(fā),希望本篇文章能夠幫助大家!
文章介紹:Revit API提供了強大的類庫,配備一套完整的機制規(guī)范和擴展Revit的功能,Revit主要提供了RevitAPI.dll和RevitAPIUI.dll兩個類庫文件,其中封裝了大量的庫函數(shù)供開發(fā)者調(diào)用,一般開發(fā)者都需要調(diào)用IExternalCommand函數(shù)來實現(xiàn)外部應用,如果Revit處于運行狀態(tài)下,外部命令就會被觸發(fā)激活,當使用者調(diào)用該命令,軟件會自動地去訪問模型數(shù)據(jù)。如果開發(fā)者創(chuàng)建的外部命令被集成在Revit中后,一般通過Revit功能區(qū)的附加模塊欄目或者外部自定義菜單欄進行觸發(fā)。Revit提供了IExternalCommand接口用于使用者訪問模型數(shù)據(jù),該接口只提供Excute()函數(shù),因此用戶需要重載該函數(shù)來進行開發(fā),該函數(shù)主要提供了輸入?yún)?shù)commandData、輸出參數(shù)message和輸出參數(shù)elemnt,不同的參數(shù)功能基本能滿足用戶者的需求。當調(diào)用到接口后,如果實際訪問到模型數(shù)據(jù),需要使用庫函數(shù)中的類函數(shù),Revit為用戶訪問數(shù)據(jù)提供了UIDocument和Document兩個大類,Document類主要用于訪問模型上的數(shù)據(jù),例如模型的場地和位置、模型中梁板柱等元素的數(shù)據(jù)等,UIDocument類提供更好的用戶交互性,比如當用戶希望獲取選中的Revit模型中某個構件的數(shù)據(jù),利用該類中的函數(shù)將會獲得軟件給出的數(shù)據(jù)。Revit也為用戶提供了用于添加外部應用的接口IExternalApplication,該接口封裝了OnStartup和OnShutdown函數(shù)。如果用戶希望在Revit原有的功能欄中添加需求的功能項目,該接口將能提供更多的方便用于個性化UI開發(fā),但是無法訪問模型的數(shù)據(jù)。Revit將每次修改模型的操作都會進行一個自動記錄,該行為稱為事務,如果一個修改操作沒有被完成,當軟件執(zhí)行外部命令的時候就會拋異常,這時候會產(chǎn)生事務回滾的現(xiàn)象。事務的模式主要有手動模式和自動模式,其也提供了Transaction、SubTransaction以及TransactionGroup三個類。 以上就是Revit二次開發(fā)中接口的概述,為大家簡單介紹,希望本篇文章能夠幫助大家!
文章介紹:Revit進行二次開發(fā)時,需要用戶在插件中實現(xiàn)特殊的接口,其中API函數(shù)提供了兩種主要的接口形式,分別是外部命令接口和外部應用接口。AutodeskRevit提供了開放的API數(shù)據(jù)接口,方便用戶根據(jù)功能需求,對軟件進行個性化的定制開發(fā),可以極大地提高設計工作的效率。1.外部命令接口(IExternalCommand):新命令可以被放在附加模塊(Add-Ins)標簽下面的外部工具(ExternalTools)菜單下,該接口只有一個抽象函數(shù)Execute(),Execute函數(shù)有一個輸入?yún)?shù)和兩個輸出參數(shù)。輸入?yún)?shù)是commandData,輸入?yún)?shù)的類型是ExternalCommandData;輸出參數(shù)有message和elements,輸出參數(shù)對應的類型分別是String和ElementSet,插件的功能通過重載這個函數(shù)來觸發(fā)實現(xiàn)。2.外部應用接口(IExternalApplication):用戶定制的新功能會在Revit啟動時在附加模塊(Add-Ins)標簽下自動新建功能面板,該接口有兩個UIControlledApplication類型的抽象函數(shù),這兩個抽象函數(shù)分別是OnStarup和OnShutdown,UIControlledApplication類不提供訪問Revit文檔的途徑,開發(fā)者可以通過重載這兩個抽象函數(shù)來實現(xiàn)在Revit啟動和關閉時的定制功能。Revit二次開發(fā)有兩種模式,一種開發(fā)模式是在Revit軟件自帶的VSTA環(huán)境下通過API定義的宏來實現(xiàn)個性化的功能開發(fā);另一種是在MicrosoftVisualStudio2015和Microsoft.NETFramework4.6的環(huán)境,可選用VB或者基于.NET的語言進行開發(fā)(C#、C、C++),由于C#語言結構簡單,且有C++和C語言的優(yōu)點,故一般采用這種語言進行Revit的二次開發(fā)。通過引用Revit軟件安裝目錄的RevitAPI.dll和RevitAPIUI.dll兩個動態(tài)鏈接庫即可實現(xiàn)調(diào)用RevitAPI的函數(shù)。 好了,怎么使用Revit軟件進行二次開發(fā)平臺就為大家介紹到這,希望本篇文章能夠幫助大家!
文章介紹:Revit可以利用調(diào)用其自身的關系數(shù)據(jù)庫來實現(xiàn)三維模型的高效創(chuàng)建,并且,模型中存儲了大量的參數(shù)信息,利用軟件的功能,還能夠生成不同視圖的二維圖紙,滿足項目的需要。進行Revit二次開發(fā),分為兩種解決方案:一、傳統(tǒng)方案Reivt軟件內(nèi)附加二次開發(fā)模塊,實現(xiàn)Revit軟件的功能升級,由Revit附加模塊連接企業(yè)信息庫,實現(xiàn)模塊自動升級、數(shù)據(jù)交換等,適用于設計業(yè)。二、在線應用方案脫離Revit軟件在網(wǎng)頁上調(diào)用模塊數(shù)據(jù)實現(xiàn)顯示、操作、熱點等功能,由網(wǎng)站服務器、數(shù)據(jù)庫服務器、文件服務器協(xié)同工作,適用于有裝配式、模塊化特點的工程項目或產(chǎn)品、智能家居等。1.Revit智能系統(tǒng)具有模塊化、裝配式特點的建筑物或構筑物均可定制開發(fā)相應的revit設計系統(tǒng),實現(xiàn)模塊拼裝、價格預算,輔以后臺數(shù)據(jù)庫、后臺管理網(wǎng)站、登錄系統(tǒng)即可進一步實現(xiàn)模型數(shù)據(jù)共享、產(chǎn)品系列更新等功能。2.自動建模結合CAD在線看圖技術中的dwg圖紙讀取功能亦可實現(xiàn)平面設備圖自動生成revit模型之功能。 以上就是進行Revit二次開發(fā)有的兩種方案,每個人觀點不同,希望本篇文章能夠幫助大家!
文章介紹:Revit的功能主要致力于三維模型的建立以及信息的存儲。Revit二次開發(fā)是以Revit軟件為平臺,通過其所提供的API(ApplicationProgrammingInterface,應用程序接口),來進行適用于不同專業(yè)、供用戶根據(jù)自己的實際需要的外部應用開發(fā)。其中,對于一些具體功能的實現(xiàn),API是外部應用程序與Revit之間的信息交互紐帶。Revit API不支持在多線程里調(diào)用,必須在主線程里調(diào)用。Revit API的接口有兩種:一是ExternalCommand外部命令,程序安裝后將會出現(xiàn)在外部工具下拉菜單中,能在Revit界面上添加新命令;二是ExternalApplication外部應用,程序安裝后會在Revit啟動時加載,并在功能區(qū)新建面板。同時,也有兩種開發(fā)環(huán)境可選,一種是在VisualStudio開發(fā)環(huán)境下進行,采用支持.NET開發(fā)的編程語言,如VB、C#等開發(fā)語言;另一種是使用由Revit自帶的VSTA開發(fā)環(huán)境,在其自帶的開發(fā)環(huán)境下通過APIRevit二次開發(fā)在國外應用較為廣泛,如RoboBAT、CSI、CSC、RISA、USCost等,利用Revit提供的API成功開發(fā)了結構計算和概預算類應用軟件。在國內(nèi),針對Revit二次開發(fā)的應用較少,并且多數(shù)是利用二次開發(fā)創(chuàng)建新族。但隨著BIM技術在國內(nèi)大力推廣,國內(nèi)許多企業(yè)、學者逐漸認識到了Revit二次開發(fā)的重要性和方便性,開始加大二次開發(fā)的研究力度。最初的Revit API功能有限,只能提供訪問文檔中的對象。然而到目前為止,Revit API已經(jīng)基本滿足建筑工程的需要。通過對Revit API的開發(fā),Revit的功能更加完善,應用范圍也更為廣闊。API編程對Revit的二次開發(fā),具體可以實現(xiàn)的以下功能:1.對建筑模型包含的圖形數(shù)據(jù)和參數(shù)信息進行過濾訪問2.創(chuàng)作新的族類型3.對模型中各個構件的創(chuàng)建、編輯、刪除功能4.對消防管道壓力值參數(shù)相關的計算5.對建筑模型的視圖生成的設計6.遍歷模型中的構件,顯示一定條件下的模型信息7.過濾構件,只在模型中顯示所需要的構件。當前Revit功能已經(jīng)十分豐富,Revit2014提供的API還增加了點云、屬性訪問等功能 上述就是Revit二次開發(fā)是什么以及功能,希望本篇文章能夠幫助到大家!
文章介紹:Revit API是Revit軟件提供的一系列類庫和命名空間,也是提供的編程接口。編程人員在Revit平臺使用該接口來進行程序開發(fā)時能夠更加便捷,并且可以通過這個接口來開發(fā)定制用戶所需要的功能。Autodesk公司將RevitAPI視為Revit二次開發(fā)中重要的組成部分。迄今為止,RevitAPI也發(fā)展的越來越完善,系統(tǒng)從只能訪問文檔的對象到可以新增用戶交互API,對象過濾API等,功能變得更加的豐富和強大。通過RevitAPI,用戶可以創(chuàng)建插件自動執(zhí)行重復性任務,自動檢查糾錯并生成相應報告。Revit二次開發(fā)對象結構主要分為三類,即Application應用類、Document文檔類和Element元素類。在RevitAPI的類繼承關系中,頂層類對象是Application和Document。Application對象代表著當前與之交互的Revit程序,用戶可以通過它來操作當前打開的所有文檔以及Revit中的一些設置,Document對象代表打開Revit文檔(.rvt、.rfa),可以通過它操作當前文檔中的各元素。View對象的活動文檔Document的重要元素,并通過各個View視圖構成Revit的可視界面和項目出圖圖紙,通過對View對象的操作可控制項目的可視化和出圖效果。RevitAPI主要類的關系如圖1所示,其繼承關系如圖2所示。圖1Revit主要類關系圖圖2Revit類繼承關系圖 以上就是Revit二次開發(fā)對象結構有幾類的全部內(nèi)容了,希望本篇文章能夠幫助大家!
文章介紹:起初Revit是沒有二次開發(fā)的,Autodesk根據(jù)一貫的做法對Revit進行了二次開發(fā)接口API的提供,開始時直接再次封裝所有需要的API,隨著開發(fā)者的要求越來越高,封裝遠遠達不到開發(fā)者對API的需求速度,所以后來又從軟件結構上做了優(yōu)化,進幾年RevitAPI處于高速發(fā)展中。可以說Revit就是CAD時代的AutoCAD,沒有其它任何的軟件能提供像Revit那樣精確的模型和自動化的施工圖,這滿足了從CAD時代設計者的最基本要求,最重要的是Revit可以協(xié)同建筑、結構、設備等專業(yè)工程,可以進行碰撞分析、建筑功能分析、效果圖渲染等多領域的工作,同一個平臺下各專業(yè)兼容性很高,這對需要投入實際工程的單位是很具有吸引力的。由于Revit軟件自身功能的局限,無法滿足工程需求,基于軟件進行二次開發(fā)是非常必要的。Revit本身帶有二次開發(fā)工具,即Macro(宏),這種開發(fā)方式局限性較大,并不常用,較常用的二次開發(fā)是借助VS(VisualStudio)。開發(fā)環(huán)境:revit是基于.NET的運行環(huán)境下,需要使用VisualStudio,根據(jù)Revit的版本選擇對應支持的VisualStudio和.NET版本。1.RevitSDK:Autodesk為了方便開發(fā)人員進行開發(fā),提供了包含Revit API的幫助文檔、100多個含有源代碼的開發(fā)學習案例、以及一些重要的工具,如ADD-InManager和RevitLookup等。2.ILSpy:ILSpy是一個免費、便捷的.NET反編譯軟件,它的作用很多,可以用來查看一個.NETAssembly的類和函數(shù),功能插件開發(fā)過程中還可以查看文件對應的反編譯之后的代碼等。3.RevitLookup:RevitLookup在RevitSDK壓縮包中,可以讀取revit對象的屬性和參數(shù),提供源代碼和工具類。是Autodesk公司專門為開發(fā)者打造的二次開發(fā)組件,不用寫代碼就可以直觀的看到API對象數(shù)據(jù)以及對象之間的相互關系,有效的幫助解決了開發(fā)過程中的編寫代碼問題,使開發(fā)者快速開發(fā)出需要的功能。4.AddinManager:AddinManager也是Autodesk的官方插件,主要功能是加載Revit插件,調(diào)試過程中可以直接修改插件代碼后重新加載運行,不需要重新啟動Revit,有效地幫助解決加載花費時間較長的問題。 Revit二次開發(fā)適用工具介紹內(nèi)容就到這了,希望本篇文章能夠幫助到大家!
文章介紹:Revit有外部命令和外部應用兩種形式家在創(chuàng)建的外部應用插件,IExternalCommand是外部命令的接口,Excute是其對應的唯一函數(shù),功能代碼編寫之前需要加載Excute函數(shù)才能吊用功能。 二次開發(fā)流程Revit二次開發(fā)流程包括代碼編譯與代碼調(diào)試。第一步是開發(fā)環(huán)境的搭建,環(huán)境搭建必不可少的三要素是開發(fā)對象、編程軟件和編程語言,以Revit模型作為開發(fā)對象,啟動VisualStudio2019編程軟件,選擇C#作為編程語言,在VisualStudio2019中新建一個類庫工程。為項目文檔增添接口引用,RevitAPI.dll、RevitAPIUI.dll,由于項目中需要創(chuàng)建Excel表格,還需要添加MicrosoftExcel的引用。設置目標框架,將目標框架改為適合自己計算機系統(tǒng)的框架,否則程序會自動報錯。第二步是編寫代碼,根據(jù)自己想要實現(xiàn)的功能,編寫相應的代碼。可以通過查看RevitLookup整理開發(fā)所需要的方法與屬性,借助Revit API中豐富的類、方法、屬性來完成特定功能代碼的編寫。第三步是對編寫完成的代碼進行代碼調(diào)試,功能插件運行之前,需要先在VisualStudio2019中進行調(diào)試,調(diào)試成功后將生成的.dll文件復制到Revit文件中。如果代碼調(diào)試不成功,還需要重新檢查代碼,根據(jù)提示對錯誤代碼的進行修正,重復調(diào)試指導調(diào)試成功。第四步是插件的運行,編譯成功后,首次運行插件,進入Revit應用界面點擊“附加模塊”,會彈出新的選擇框,在彈出的新菜單中點擊“外部工具”,然后再次彈出新的命令選擇框,選擇“AddinManager”加載窗口,將完整的.dll文件路徑復制到對話框中,點擊“Run”運行程序,在Revit中實現(xiàn)代碼編程的相應功能。 以上就是Revit二次開發(fā)流程,希望本篇文章能夠對大家有幫助!
文章介紹:插件在Revit二次開發(fā)的過程中能夠起到節(jié)省時間的作用,在我們安裝完Revit后,也要將插件進行對應的安裝,為后期加載外部命令和外部程序提供幫助。Revit SDKAutodesk公司為了滿足提高開發(fā)人員的開發(fā)效率,為開發(fā)人員提供了快速學習的資料集合,RevitSDK作為Revit二次開發(fā)的軟件工具包,包含了許多說明性文檔、開發(fā)參考文檔、–些重要工具ADD-InManager和RevitLookup以及100多個帶源代碼開發(fā)的學習實例。開發(fā)人員可以通過Visual Studio 2013打開該實例進行快速查看學習,可以大大提高開發(fā)人員的開發(fā)效率。一、插件ADD-InManagerRevit二次開發(fā)技術正在飛速發(fā)展,二次開發(fā)人員發(fā)現(xiàn)在每次開發(fā)的過程中,一次代碼的編寫并不能完全滿足所有的功能需求,面對這種情況,需要每次重新啟動Revit,由于Revit在加載外部環(huán)境時需要時間比較久,從而大大降低了開發(fā)人員的工作效率,隨著插件ADD-InManager的出現(xiàn),很大程度上解決了重啟Revit的問題,從而很大程度的提高了開發(fā)人員的工作效率。先點擊加載按鈕,找到之前編寫代碼生成的動態(tài)連接庫dll文件,加載進來之后選中這個文件名,點擊運行按鈕﹐就會開始執(zhí)行程序。二、插件RevitLookupRevitLookup插件是開發(fā)過程中必不可少的工具,該工具在SDK的根目錄下,主要功能是可以讀取Revit對象屬性和參數(shù),提供源代碼和工具類,并且可以快速查看對象數(shù)據(jù)以及對象之間的關系。隨著插件RevitLookup的出現(xiàn),很大程度上解決了開發(fā)過程中遇到的編寫代碼問題,從而提高了開發(fā)人員的開發(fā)效率。先選中需要查看的構件,然后點擊Lookup按鈕,就可以查看對象的信息,并且相關的信息一層一層的都可以查找到。 以上就是Revit二次開發(fā)用什么插件的全部內(nèi)容了,每個人觀點不同,希望本篇文章能夠幫助大家!
文章介紹:一匹馬兒兩人騎,你要高來我就低指的是生肖馬、指的是生肖牛、指的是生肖兔。 一匹馬兒兩人騎,你要高來我就低在十二生肖中代表生肖兔、馬、牛、羊對于屬虎的男生和屬蛇的女生,他們互相之間是存在著很大的個性差異的,他們對于事物都有自己不同的看法,所以他們在一起不是很好的選擇。命運掌握在自己的手里,無論是感情還是婚姻,都需要靠自己去爭取,與生肖屬相沒有關系。在我們的日常生活當中,我們都知道,在婚姻的配對當中,生肖配對的好壞一直以來都是都人們很重視的一個問題,因為如果兩個生肖不合和話,就會產(chǎn)生犯沖,就會使得兩個人在婚后的生活變得十分糟糕。巳時出生的屬虎人命運不太穩(wěn)定,他們這期間脾氣暴躁,會讓人感覺到敬而遠之。這期間出生的屬虎人遇到問題時,很容易暴躁易怒,會認為身邊的人有二心或是沒有利用價值時,他們會果斷地把殺人鎖踢開,一個人坐享其成,難以被好運所包圍,甚至會一直被霉運所陷害,難以擁有穩(wěn)定的人生軌跡。