亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Revit平臺二次開發(fā)模式的研究

        2019-03-27 11:33:48
        土木建筑工程信息技術(shù) 2019年1期
        關(guān)鍵詞:二次開發(fā)建筑功能

        (青島理工大學(xué) 土木工程學(xué)院,青島 266033)

        Revit是BIM系列軟件中應(yīng)用最廣范的一款基礎(chǔ)建模軟件,基于Revit平臺進(jìn)行二次開發(fā)是完善BIM技術(shù)的一項(xiàng)重要舉措。目前基于Revit平臺有兩種主流開發(fā)模式,第一種是在Visual Studio 平臺上用編程語言(C#或者VB.NET)進(jìn)行二次開發(fā)形成.dll文件,并以插件的形式載入到Revit的附加模塊中,本文把這種模式稱之為 “Plugin+Revit”開發(fā)模式[1];另一種是利用開源插件Dynamo直接在Revit平臺上進(jìn)行二次開發(fā),通過連接作用不同的Dynamo節(jié)點(diǎn)實(shí)現(xiàn)開發(fā)功能,本文把這種模式稱之為“Dynamo+Revit”開發(fā)模式。本文對這兩種模式進(jìn)行了詳細(xì)介紹與分析研究。

        1 “Plugin+Revit”開發(fā)模式

        1.1 “Plugin+Revit”模式的開發(fā)現(xiàn)狀

        Revit作為一款普適性三維建模軟件,其全面準(zhǔn)確的建筑數(shù)據(jù)和強(qiáng)大的建模工具為建筑信息化打下良好基礎(chǔ)。在Dynamo還未與Revit結(jié)合之前,人們常說的Revit二次開發(fā)即指“Plugin+Revit”開發(fā)模式。

        通過Autodesk公司提供的RevitAPI,軟件商、設(shè)計方、施工方都能開發(fā)便利自己的插件。自RevitAPI開放以來,短短十幾年,國內(nèi)外基于Revit平臺開發(fā)了一大批面向建筑行業(yè)的實(shí)用插件,如美國CSI公司研發(fā)Revit與結(jié)構(gòu)計算軟件ETABS互導(dǎo)的CSIxRevit插件、Trelligence公司直接在Revit Architecture基礎(chǔ)上自主研發(fā)出用于在建筑規(guī)劃設(shè)計時根據(jù)用戶需求更新規(guī)劃的Affinity軟件[2]、美國CTC公司的BIM管理套件以及印度ProtoTech Solutions公司的OBJ Exporter For Revit插件。我國基于Revit的二次開發(fā)相對較晚,東經(jīng)天元公司于2011年開發(fā)出 R-Star CAD插件標(biāo)志著我國 Revit 二次開發(fā)進(jìn)入成長階段,同年北京盈建科軟件有限責(zé)任公司開發(fā)了盈建科建筑結(jié)構(gòu)設(shè)計軟件系統(tǒng)( YJK)[3]。其后Revit二次開發(fā)在我國迎來了百花齊放的局面,出現(xiàn)了一大批優(yōu)秀的Revit二次開發(fā)插件。

        結(jié)合對國內(nèi)外Revit二次開發(fā)插件的研究,Revit插件可分成五類:族庫類、設(shè)計類、翻模類、綜合類、互操作類。各類插件的功能以及代表性插件如表1。

        1.2 “Plugin+Revit”開發(fā)流程

        “Plugin+Revit”模式開發(fā)流程一般為:在Visual Studio 2017中新建項(xiàng)目,創(chuàng)建類庫;在項(xiàng)目中添加RevitAPI裝配文件RevitAPI.dll和RevitAPIUI.dll,在程序的頭部添加在程序編寫過程中用到的命名空間引用,如using Autodesk.Revit.UI、using Autodesk.Revit.DB等;引用外部命令接口IExternal Command,重載Execute()方法,編寫Execute代碼并經(jīng)過實(shí)驗(yàn)調(diào)試實(shí)現(xiàn)既定功能[1]。 開發(fā)流程見圖1。

        表1 Revit插件類型

        插件類型插件功能代表性插件族庫類提供Revit族庫下載、管理構(gòu)件等功能構(gòu)件鄔、型兔、NBIMer族助手、族庫大師、isBIM族立方設(shè)計類在建筑、結(jié)構(gòu)、設(shè)備設(shè)計時具有輔助作用鴻業(yè)科技BIM協(xié)同設(shè)計平臺BIMspace、里正BIM翻模類在Revit軟件中基于CAD圖紙智能化建模海頤威模盒、翻模大師綜合類一個內(nèi)置的管理系統(tǒng),具有多種功能的插件合集呆貓、ISBIM、橄欖山互操作類使Revit與其他建筑專業(yè)軟件相互導(dǎo)入導(dǎo)出Lumion Collada Ex-porter、IFC2017、魯班萬通revit

        2 “Dynamo+Revit”開發(fā)模式

        2.1 “Dynamo+Revit”模式開發(fā)現(xiàn)狀

        從Revit2014開始,Dynamo以Revit附加模塊的形式出現(xiàn),近幾年Revit版本不斷升級,Dynamo的穩(wěn)定性也逐步加強(qiáng)。在Revit2017中Dynamo已成為Revit的內(nèi)置功能,其啟動位置移到管理菜單,成為系統(tǒng)管理的重要工具。Dynamo增加了Revit的“易用性”,它打破了建筑與計算機(jī)行業(yè)的行業(yè)壁壘,使建筑從業(yè)人員可以利用Dynamo基于Revit平臺開發(fā)所需功能,實(shí)現(xiàn)了“專業(yè)的人做專業(yè)的事”,而不用通過編程人員進(jìn)行插件定制[4-5]。

        “Dynamo+Revit”開發(fā)模式已經(jīng)深入到國內(nèi)外建筑行業(yè)的各個方面。在建筑設(shè)計階段,Dynamo可以輔助設(shè)計師進(jìn)行建筑外型設(shè)計,實(shí)現(xiàn)設(shè)計方案的動態(tài)模擬;在模型建立階段,開發(fā)出許多快速建模和模型組件自動化的輔助程序,提高了由二維設(shè)計圖紙到三維模型轉(zhuǎn)化的作業(yè)效率[6-7];在管線綜合階段,開發(fā)出利用Dynamo快速判斷空間凈高的輔助程序,直接利用Dynamo判斷管線模型是否符合相關(guān)規(guī)范;在法規(guī)檢討階段,利用Dynamo建立步行距離檢討及空間面積計算等輔助程序,協(xié)助我們進(jìn)行相關(guān)法規(guī)檢討;對于營建項(xiàng)目而言,通過自行編寫Dynamo的圖紙創(chuàng)建輔助程序,避免人為輸入錯誤的情況。

        圖1 “Plugin+Revit”模式開發(fā)流程

        在橋梁工程中,Dynamo與Revit相互配合能精確定位橋梁各構(gòu)件位置,并提升構(gòu)件布置效率;在水利工程中,通過Dynamo進(jìn)行開發(fā),實(shí)現(xiàn)了水工建筑物的三維模型全參數(shù)化[8];在隧道工程中,實(shí)現(xiàn)了Revit+Dynamo參數(shù)化隧道模型的構(gòu)建[9]。

        2.2 “Dynamo+Revit” 開發(fā)流程

        “Dynamo+Revit” 開發(fā)流程一般為:在Revit軟件的管理界面中打開Dynamo,新建一個DYN文件;通過搜索節(jié)點(diǎn)命令或者聯(lián)網(wǎng)下載Dynamo軟件包找到開發(fā)功能所需節(jié)點(diǎn),也可用Python語言在Code Block節(jié)點(diǎn)內(nèi)進(jìn)行代碼編寫自制節(jié)點(diǎn);將節(jié)點(diǎn)放置在界面空白處,按節(jié)點(diǎn)限定條件依次連接;經(jīng)過多次調(diào)試完成Dynamo命令開發(fā)。開發(fā)流程見圖2。

        3 兩種開發(fā)模式的分析與比較

        以上兩種主流Revit二次開發(fā)模式都有自身的優(yōu)勢,為了便于比較這兩種模式的異同,我們從開發(fā)人員、開發(fā)基礎(chǔ)、開發(fā)復(fù)雜度三個方面進(jìn)行比較分析。

        3.1 開發(fā)人員

        “Plugin+Revit”模式開發(fā)人員一般從事計算機(jī)軟件行業(yè),具有一定的編程基礎(chǔ),開發(fā)出的插件大體符合功能要求,但在細(xì)節(jié)方面并不完全契合建筑人員的需求[10-11],例如橄欖山是我國比較知名的Revit二次開發(fā)軟件商,但橄欖山插件的功能并不能完全實(shí)現(xiàn)其開發(fā)本意,單單房間裝修命令就出現(xiàn)識別不到墻、重復(fù)裝修等問題。

        “Dynamo+Revit”模式開發(fā)人員大多是建筑行業(yè)從事人員,能利用Dynamo根據(jù)自身需求進(jìn)行定制級開發(fā),所開發(fā)功能完全契合自身需求。Dynamo可以提供Revit內(nèi)部的功能,讓用戶在不借助API編程的情況下進(jìn)行開發(fā)[7]。用戶能夠更加輕松地定制自己的Revit命令,而不用花時間學(xué)習(xí)代碼、編譯和調(diào)試,Dynamo的這項(xiàng)功能使該模式更加易用,貼合實(shí)際。

        圖2 “Dynamo+Revit”開發(fā)流程

        3.2 開發(fā)基礎(chǔ)

        “Plugin+Revit”模式需要美國微軟公司的開發(fā)工具包系列產(chǎn)品Microsoft Visual Studio配合,以RevitAPI為基礎(chǔ),通過專業(yè)編程人員進(jìn)行代碼編寫,實(shí)現(xiàn)所需功能。Revit雖然不是BIM系列軟件中最符合建筑人員使用習(xí)慣的軟件,但其普及度最高的原因就是能夠提供開放的API,在“Plugin+Revit”開發(fā)模式中,RevitAPI是打通各款建筑專業(yè)軟件信息交流的重要工具,借助RevitAPI可以把瑣碎的建模工作自動化,將其他軟件的功能集成或連接到Revit中,這樣在一個平臺上就能完成幾乎所有的功能。但該模式在Visual Studio平臺上進(jìn)行代碼編寫,并不能將開發(fā)效果實(shí)時反映到Revit中,一個命令的開發(fā)需要經(jīng)過多次調(diào)試修復(fù)BUG,開發(fā)過程十分繁瑣。

        “Dynamo+Revit”模式直接在Revit中進(jìn)行開發(fā),其開發(fā)基礎(chǔ)是Dynamo節(jié)點(diǎn)庫,該模式能夠?qū)㈤_發(fā)效果直觀地反映到Revit中,若將某節(jié)點(diǎn)關(guān)聯(lián)到構(gòu)件上,通過調(diào)節(jié)該節(jié)點(diǎn),可以在Revit中看到構(gòu)件屬性的變化。Dynamo除自帶節(jié)點(diǎn)庫外,還提供聯(lián)網(wǎng)下載節(jié)點(diǎn)包與自制節(jié)點(diǎn)的功能。在Dynamo程序界面上有軟件包命令欄,集成搜索、管理、發(fā)布軟件包等功能,通過發(fā)布軟件包命令可以上傳自定義Dynamo節(jié)點(diǎn)包,通過搜索軟件包命令可以聯(lián)網(wǎng)搜索并下載國內(nèi)外Dynamo研究人員無償發(fā)布的節(jié)點(diǎn)包,其涉及建筑、道路、橋梁等多個專業(yè)。當(dāng)Dynamo自帶節(jié)點(diǎn)庫與聯(lián)網(wǎng)節(jié)點(diǎn)庫中沒有所需節(jié)點(diǎn)時,開發(fā)人員可以在“Code Block”節(jié)點(diǎn)中直接編寫DesignScript代碼,自制功能節(jié)點(diǎn)。Dynamo的開源性,促進(jìn)了“Dynamo+Revit”開發(fā)模式的發(fā)展,但由于Dynamo節(jié)點(diǎn)包保密性差,不如編程的封裝性好,在一定程度上限制了該模式的發(fā)展規(guī)模。

        3.3 開發(fā)復(fù)雜度

        兩種模式開發(fā)基礎(chǔ)不同,導(dǎo)致開發(fā)難度有很大差異。因Dynamo操作容易,邏輯簡單,只要根據(jù)具體思路進(jìn)行即可,實(shí)現(xiàn)一個命令所需節(jié)點(diǎn)數(shù)的多少并不完全代表該命令的復(fù)雜程度;而代碼編寫邏輯復(fù)雜,代碼行數(shù)隨命令復(fù)雜程度的升高而增加,且更加容易出現(xiàn)BUG,調(diào)試工作困難。下面通過實(shí)例對兩種開發(fā)模式的復(fù)雜度進(jìn)行比較。

        在CODING(研發(fā)流程與管理平臺)下載Revit某插件源代碼,與Dynamo節(jié)點(diǎn)進(jìn)行比較。記錄實(shí)現(xiàn)相同命令所需要Dynamo節(jié)點(diǎn)數(shù)與代碼行數(shù),如表2,表格從上到下命令的復(fù)雜度逐漸增加,其中“創(chuàng)建樓板面層”與“創(chuàng)建墻體面層”兩個命令復(fù)雜度基本相同。

        表2 實(shí)現(xiàn)相同命令所需要Dynamo節(jié)點(diǎn)數(shù)與代碼行數(shù)

        命令所需Dynamo節(jié)點(diǎn)/個所需代碼/行獲取墻長度320過濾結(jié)構(gòu)柱242創(chuàng)建樓板面層27310創(chuàng)建墻體面層45320天正轉(zhuǎn)Revit75800

        由表2可知,代碼行數(shù)與命令的復(fù)雜程度大致呈線性關(guān)系,而Dynamo節(jié)點(diǎn)數(shù)并不完全遵循此規(guī)則,如“過濾結(jié)構(gòu)柱”比“獲取墻長度”復(fù)雜,但所需Dynamo節(jié)點(diǎn)卻比“獲取墻長度”多1個;“創(chuàng)建樓板面層”與“創(chuàng)建墻體面層”兩個命令復(fù)雜度基本相同,但所需Dynamo節(jié)點(diǎn)數(shù)卻相差18個。從邏輯上看,因代碼行數(shù)成百上千,“Plugin+Revit”模式需要簡明的算法與嚴(yán)謹(jǐn)?shù)倪壿嫞駝t會出現(xiàn)差之毫厘謬以千里的效果;“Dynamo+Revit”模式不需要邏輯十分嚴(yán)謹(jǐn),只要放置的節(jié)點(diǎn)與節(jié)點(diǎn)之間能夠正常連接,就可以實(shí)現(xiàn)所需功能。

        圖3 代碼演示

        “Plugin+Revit”模式可以將某一方向的很多功能集成于一個系統(tǒng),以插件的形式載入到Revit選項(xiàng)卡中。實(shí)現(xiàn)這種功能進(jìn)一步增加了該模式的復(fù)雜度,但方便使用者進(jìn)行查找和應(yīng)用開發(fā)功能[12]?!癉ynamo+Revit”模式只能以DYN文件的形式運(yùn)行開發(fā)功能,每次使用需重新關(guān)聯(lián)Revit構(gòu)件,該模式降低了開發(fā)復(fù)雜度,但在一定程度上限制了所開發(fā)功能的使用范圍。

        4 案例分析

        Revit不能實(shí)現(xiàn)批量添加樓板的功能,通過兩種模式對該功能進(jìn)行開發(fā)。

        使用“Plugin+Revit”模式編寫代碼310余行,截取部分代碼如圖3。該模式需要定義多種方法,比如定義獲取房間列表方法為public ListRoomList(Document doc)、定義獲取樓板列表方法為private ListFloorList(Document doc)及定義顯示框方法private ListShowDialog(ListroomList,ListfloorTypeList),以上方法皆被圖3中顯示代碼調(diào)用,內(nèi)部代碼及其他方法不做贅述。代碼編寫完成后,制作插件加載文件(擴(kuò)展名為addin),將其放到programdata/autodesk/revit/addin/201* 目錄下,打開Revit后就可以在工具欄中找到此命令。

        使用“Dynamo+Revit”模式連接節(jié)點(diǎn)27個,其思路為:選中所有房間→按條件過濾房間→提取房間輪廓與標(biāo)高→處理輪廓與標(biāo)高數(shù)據(jù)→選擇樓板類型→生成樓板。實(shí)現(xiàn)該功能所需節(jié)點(diǎn)在已發(fā)布的節(jié)點(diǎn)包中均能找到。

        通過用兩種模式對批量添加樓板功能進(jìn)行開發(fā),可以發(fā)現(xiàn)“Plugin+Revit”模式的缺點(diǎn)是開發(fā)時間長,對編程能力要求高,容易出現(xiàn)BUG且調(diào)試?yán)щy,無法針對個人需求提出解決方案;優(yōu)點(diǎn)是封裝性能好,使用開發(fā)命令方便。而“Dynamo+Revit”模式優(yōu)缺點(diǎn)正好與之相反,Dynamo為建筑人員提供了一把通向編程的鑰匙,大大加強(qiáng)了Revit的適用性,建筑人員能利用Dynamo根據(jù)自身需求進(jìn)行定制級開發(fā),所開發(fā)功能完全契合自身需求,所以“Dynamo+Revit”模式可以輔助解決專業(yè)問題。

        5 結(jié)論

        綜上,“Plugin+Revit”模式更適用于開發(fā)具有系統(tǒng)性、普遍性的功能,是解決BIM模型一模多用的關(guān)鍵,適合軟件公司進(jìn)行商業(yè)化開發(fā);“Dynamo+Revit”模式更適用于開發(fā)專業(yè)性的功能,使BIM模型更加貼合設(shè)計意圖,符合土建專業(yè)的要求,是實(shí)現(xiàn)BIM模型落地的關(guān)鍵,適合建筑與土木工程專業(yè)人員進(jìn)行內(nèi)部開發(fā)。

        BIM作業(yè)若真正要產(chǎn)生價值,投入的時間與成本相當(dāng)可觀。但是合理進(jìn)行二次開發(fā),選擇恰當(dāng)?shù)拈_發(fā)模式,既可以提升Revit的建模效率,又可以實(shí)現(xiàn)BIM模型的一模多用。這就打破了BIM產(chǎn)生的價值與花費(fèi)成本間的正比例關(guān)系,一方面可以降低建模與出圖的人力和時間的投入;另一方面又可以更深入地應(yīng)用模型中的信息,提供更加務(wù)實(shí)的BIM拓展應(yīng)用點(diǎn),這便是Revit二次開發(fā)的價值所在,也是BIM革命的核心所在。

        猜你喜歡
        二次開發(fā)建筑功能
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        《北方建筑》征稿簡則
        北方建筑(2021年6期)2021-12-31 03:03:54
        關(guān)于建筑的非專業(yè)遐思
        文苑(2020年10期)2020-11-07 03:15:36
        建筑的“芯”
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        獨(dú)特而偉大的建筑
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        久久亚洲高清观看| 少妇性l交大片免费1一少| 少妇又紧又色又爽又刺| 日本黑人乱偷人妻在线播放| 男女做爰高清免费视频网站| 国语少妇高潮对白在线| 国产美女免费国产| 春色成人在线一区av| 日本一区二区亚洲三区| 高清不卡日本v二区在线| 国产一区二区三区视频网| 久久精品色福利熟妇丰满人妻91| 精品av熟女一区二区偷窥海滩| 免费看黑人男阳茎进女阳道视频| 国产成年女人特黄特色毛片免| 欧美一片二片午夜福利在线快| 人妻丰满熟妇AV无码片| 一区二区三区手机看片日本韩国| 中文国产乱码在线人妻一区二区| 日日碰日日摸日日澡视频播放 | 精品在线视频免费在线观看视频| 国产一级内射一片视频免费| 日韩精品亚洲一区二区| 黑人巨大跨种族video| 午夜亚洲www湿好大| ZZIJZZIJ亚洲日本少妇| 亚洲国产精品亚洲高清| 亚洲中文字幕久久在线| 国产成人亚洲精品青草天美| 亚洲色大成网站www永久一区| 偷拍区亚洲区一区二区| 成年女人午夜特黄特色毛片免| 精品一二三四区中文字幕| 日本老熟妇毛茸茸| 久久精品国产丝袜| 亚洲午夜无码久久久久软件| 91精品蜜桃熟女一区二区| 亚洲综合精品亚洲国产成人| 三年在线观看免费大全下载| 亚洲日韩中文字幕在线播放| 一区二区三区四区日韩亚洲|