下載app免費(fèi)領(lǐng)取會(huì)員
文章來源:慧航BIM匯
來源:徐振
很多人對Revit軟件可能已經(jīng)非常熟悉,軟件上上下下各項(xiàng)功能已經(jīng)滾瓜爛熟了,但是很多人卻一直有一個(gè)疑問:軟件管理選項(xiàng)卡中最后兩個(gè)按鈕“宏管理器”、“宏安全性”是什么東西,是做什么用的,宏是什么,宏可以做什么?接下來我們將了解Revit中宏的定義與宏的作用,并給出一個(gè)案例,展示宏在實(shí)際工作中的用處。最后給出一些常用的操作代碼片段。
首先宏可以理解為是一種程序,用戶可以一些將重復(fù)性的工作交給計(jì)算機(jī)自動(dòng)完成,節(jié)省用戶的時(shí)間,這些預(yù)定義的操作流程是可以自由設(shè)計(jì)的,并且操作流程是可預(yù)見的。當(dāng)然宏是基于RevitAPI來編寫制作的,使用宏需要通過編寫簡單的代碼,定義操作邏輯和調(diào)用RevitAPI的接口,但是一些簡單的操作也是很好實(shí)現(xiàn)的,并不需要系統(tǒng)完整的去編寫一個(gè)插件,一個(gè)軟件。
No.1 如何創(chuàng)建一個(gè)宏
點(diǎn)擊“宏管理器”按鈕,彈出宏管理器窗口。窗口中有應(yīng)用程序選項(xiàng)卡和一個(gè)名為PC的選項(xiàng)卡,其中應(yīng)用程序選項(xiàng)卡中包含的宏是可以在該Revit打開的所有的項(xiàng)目中運(yùn)行的,是應(yīng)用程序級別的,而PC選項(xiàng)卡中所包含的宏只能在PC這個(gè)項(xiàng)目中運(yùn)行,它是文檔級別的,如果軟件打開多個(gè)項(xiàng)目,那么相應(yīng)的在宏管理器中也會(huì)出現(xiàn)多個(gè)選項(xiàng)卡。
(宏管理器)
點(diǎn)擊模塊按鈕,彈出創(chuàng)建新模塊窗口,窗口中輸入模塊名稱(模塊名稱盡量使用英文,命名不規(guī)范軟件會(huì)提示),語言默認(rèn)選擇C#即可,說明可根據(jù)需求填寫一些提示文字,確定后,軟件將自動(dòng)打開編輯器,初始狀態(tài)下如圖所示,兩側(cè)為解決方案中的文件,中間為代碼編寫區(qū)域。
(編輯器)
No.2 如何制作一個(gè)宏
完成宏的創(chuàng)建后便可開始制作一個(gè)簡單的程序,我們在編輯器中找到Module_Startup這個(gè)代碼片段,如圖所示,這個(gè)可以理解模塊啟動(dòng)時(shí)會(huì)運(yùn)行的一個(gè)方法,在花括號(hào)里面則是需要運(yùn)行的代碼。
我們在花括號(hào)內(nèi)部寫入代碼:TaskDialog.Show("Revit","我的第一個(gè)宏程序");如圖所示,這句話的含義是彈出一個(gè)提示窗口,窗口中的內(nèi)容是“我的第一個(gè)宏程序”。
No.3 如何運(yùn)行一個(gè)宏
我們在代碼片段中寫入了一條執(zhí)行的語句,然后點(diǎn)擊編輯器中編譯按鈕,即編譯按鈕,編譯完成后程序會(huì)自動(dòng)運(yùn)行。然后你就會(huì)發(fā)現(xiàn)Revit軟件中果然彈出一個(gè)提示窗口,內(nèi)容是“我的第一個(gè)宏程序”。
(程序運(yùn)行結(jié)果)
需要注意的是,每寫完一個(gè)程序,編譯后需關(guān)注錯(cuò)誤欄,如果代碼編寫有誤,那么程序?qū)⒉粫?huì)被編譯,也實(shí)現(xiàn)不了所寫的內(nèi)容,如果程序沒有錯(cuò)誤的話,該窗口中錯(cuò)誤顯示為0,則代表編譯成功,可以開始運(yùn)行程序。
(編譯錯(cuò)誤列表)
當(dāng)然將程序直接寫在模塊啟動(dòng)事件中是不實(shí)用的,回到宏管理器窗口,會(huì)發(fā)現(xiàn)創(chuàng)建下面除了創(chuàng)建模塊,還可以創(chuàng)建宏,我們選中剛剛創(chuàng)建的Study模塊,點(diǎn)擊創(chuàng)建宏按鈕,同樣彈出創(chuàng)建窗口,輸入完宏名稱后,會(huì)發(fā)現(xiàn)Study模塊中多出了一個(gè)宏的子目。如下圖所示。
我們回到編輯器,會(huì)發(fā)現(xiàn)代碼的下面增加了publicvoidtest()方法,并且在宏管理器中選擇子目后,右側(cè)運(yùn)行按鈕居然亮顯了,因此我們可以這樣理解,如果點(diǎn)擊允許了某個(gè)子節(jié)點(diǎn),那么接下來就會(huì)允許這個(gè)子節(jié)點(diǎn)所對應(yīng)的代碼中的方法。大家可以將上面彈出提示框的代碼寫到下面的方法中,點(diǎn)擊運(yùn)行后,是否會(huì)出現(xiàn)同樣的效果。
案例:
接下來我們通過一個(gè)實(shí)用的案例來更加直觀的學(xué)習(xí)宏的功能,案例代碼量會(huì)更多,但是我會(huì)詳細(xì)解釋每行代碼的含義,沒有revit開發(fā)經(jīng)驗(yàn)的也不要擔(dān)心,為了簡化,我們只實(shí)現(xiàn)功能,盡量減少流程。
案例:給項(xiàng)目模型中所有的墻模型名稱統(tǒng)一增加加前綴
我們的案例就不再新建宏了,寫在直接publicvoidtest()方法中。
首先理一理思路,首先需要獲取到模型中所有的墻的模型,并且通過這些墻獲取到所有的墻類型,最后再統(tǒng)一修改墻類型的類型名稱即可,思路相當(dāng)簡單。
獲取模型中的所有墻體模型,實(shí)現(xiàn)代碼如圖所示,其中第42行是將Revit軟件中正在編輯的模型的文檔數(shù)據(jù)獲取到并賦值給revitdoc變量,然后在43行是直接調(diào)用API將該項(xiàng)目文檔中激活的視圖中的所有模型實(shí)例獲取到collects中,最后通過過濾器將所有的Wall類型過濾出來,也就是墻類型。
(得到所有墻實(shí)例)
獲取到所有的墻類型,以上我們只是獲取到墻的實(shí)例,接下來則是通過這些取到所有的墻類型,如圖所示。其中wallTypes是一個(gè)數(shù)組,可理解為是用來臨時(shí)存放所有墻類型的,WallType是墻類型的類名稱,foreach是一個(gè)循環(huán)語句,即依次遍歷所有的墻實(shí)例,然后將墻實(shí)例的墻類型獲取下來。第56行是判斷語句,判斷數(shù)組中是否已存在此時(shí)遍歷到的族實(shí)例的類型,如果已經(jīng)存在,那么直接continue跳過,如果不存在那么就通過List數(shù)組的Add方法添加一項(xiàng)。
(提取所有墻類型)
修改族類型,RevitAPI中要求所有對模型文檔的做出修改的操作均需放置在事務(wù)中,圖中65行出定義了一個(gè)事務(wù),然后在操作前啟動(dòng)了事務(wù),運(yùn)行完成后通過Commit()方法隨即關(guān)閉了事務(wù),第72行則是具體修改墻前綴的代碼,通過遍歷數(shù)組中每個(gè)墻類型,為每個(gè)墻類型名稱前面增加了”1F”這個(gè)字符串。當(dāng)然最好的方式是彈出一個(gè)輸入框,輸入具體前綴的值,該案例為簡化流程則直接在代碼中定義前綴名稱。
(修改前綴)
如下圖所示為案例的所有代碼:
(增加前綴墻)
(完整實(shí)現(xiàn)代碼)
常用操作代碼片段:
總結(jié):
合理的使用宏程序,積累一些常用的程序功能有助于提高工作效率的,宏的使用難度相對于Revit是簡單的,因?yàn)橛煤陮?shí)現(xiàn)的操作也是相對簡單的,當(dāng)然也可以實(shí)現(xiàn)像插件一樣的復(fù)雜完整的程序。對于初學(xué)者來說,難點(diǎn)主要在于對調(diào)用RevitAPI不是特別熟悉。
Revit中文網(wǎng)作為國內(nèi)知名BIM軟件培訓(xùn)交流平臺(tái),幾十萬Revit軟件愛好者和你一起學(xué)習(xí)Revit,不僅僅為廣大用戶提供相關(guān)BIM軟件下載與相關(guān)行業(yè)資訊,同時(shí)也有部分網(wǎng)絡(luò)培訓(xùn)與在線培訓(xùn),歡迎廣大用戶咨詢。
網(wǎng)校包含各類BIM課程320余套,各類學(xué)習(xí)資源270余種,是目前國內(nèi)BIM類網(wǎng)校中課程最有深度、涵蓋性最廣、資源最為齊全的網(wǎng)校。網(wǎng)校課程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等幾十種BIM相關(guān)軟件的教學(xué)課程,專業(yè)涵蓋土建、機(jī)電、裝飾、市政、后期、開發(fā)等多個(gè)領(lǐng)域。
需要更多BIM考試教程或BIM視頻教程,可以咨詢客服獲得更多免費(fèi)Revit教學(xué)視頻。
l BIM項(xiàng)目實(shí)戰(zhàn)訓(xùn)練營
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
上一篇:Revit技巧 | revit畫水管步驟:revit中管道繪制的前提工作
下一篇:Revit技巧 | revit套管明細(xì)表怎么做?管綜易套管使用技巧(四)套管洞口如何統(tǒng)計(jì)
推薦專題