劉月涵 焦柯 霍浩彬 阮浩德 張小良 胡成恩 陳芳 陳祚衡
(1. 廣東省建筑設(shè)計(jì)研究院有限公司,廣州 510010;2. 廣東省城鄉(xiāng)規(guī)劃設(shè)計(jì)研究院有限責(zé)任公司,廣州 510010;3. 廣東省機(jī)電設(shè)備招標(biāo)中心有限公司,廣州 510010)
在工程設(shè)計(jì)領(lǐng)域,由于智慧城市建設(shè)的不斷發(fā)展,傳統(tǒng)的二維模式已不能滿足要求,三維設(shè)計(jì)逐漸成為行業(yè)的發(fā)展趨勢。如Revit、Bentley、Catia 等三維設(shè)計(jì)軟件已在工程設(shè)計(jì)中得到了廣泛應(yīng)用。其中Revit 市場占有率高、通用性、交互性良好。近年來,許多結(jié)合各類算法的,基于Revit 平臺的二次開發(fā)項(xiàng)目相繼涌現(xiàn),進(jìn)一步拓展了其應(yīng)用范圍。例如,在市政管線設(shè)計(jì)中,結(jié)合地理信息系統(tǒng)(GIS)及遺傳算法,對新建地下管線實(shí)現(xiàn)路線優(yōu)化布置[1];在交通工程中,通過可視化編程工具實(shí)現(xiàn)空間曲線模擬及Revit 自適應(yīng)構(gòu)件布置[2];在能源項(xiàng)目中,采用遺傳算法對天然氣管網(wǎng)規(guī)劃進(jìn)行優(yōu)化[3];在裝配式建筑中,結(jié)合Python 語言實(shí)現(xiàn)標(biāo)準(zhǔn)化設(shè)計(jì)[4];在建筑機(jī)電工程中,管線系統(tǒng)復(fù)雜性且工程數(shù)據(jù)量大,其碰撞檢測及優(yōu)化的工作難度大且易出錯(cuò),通過調(diào)用Revit API 函數(shù)進(jìn)行的二次開發(fā),可以有效提高設(shè)計(jì)效率[5,6]。
為了解決工程三維設(shè)計(jì)中的圖紙、模型等資料信息量大、內(nèi)容變更頻繁、信息交換等復(fù)雜問題,本文提供了一種基于Revit 的不同階段BIM 模型的差異比較方法。該方法直接在Revit 平臺內(nèi)實(shí)現(xiàn)了不同階段的版本對比、顯示以及內(nèi)容過濾[7]。還可以在Revit 平臺中直接打開需要編輯或查看的文件,直接選取所需的工作文件進(jìn)行對比,而無需借助第三方平臺。對比結(jié)果直接在Revit 中呈現(xiàn),并根據(jù)設(shè)計(jì)人員的需求進(jìn)行分類展示,這一方法避免了大量文件導(dǎo)入導(dǎo)出、格式轉(zhuǎn)換等重復(fù)操作所導(dǎo)致的信息丟失問題,從而顯著提升三維設(shè)計(jì)的工作效率和圖紙?jiān)O(shè)計(jì)的質(zhì)量。
Revit 中的所有圖元模型都是基于族構(gòu)建的,族有助于管理模型中的圖元數(shù)據(jù)。每個(gè)族圖元可以定義多種類型,每種類型有不同尺寸、形狀、材質(zhì)設(shè)置或其他參數(shù)變量。對模型在不同階段的差異性比較,本質(zhì)上是對不同族的檢測,用以識別和分析不同類型的族在模型不同階段之間的差異[8]。本文主要包括:構(gòu)件重疊與內(nèi)嵌清理、模型分離與合成、基于遺傳算法的管線綜合優(yōu)化等三個(gè)關(guān)鍵技術(shù),這些技術(shù)主要包括:建立窗體數(shù)據(jù)庫、窗體搭建、階段文件選擇、文檔處理、對象篩選、文件對比、生成清單、前臺文件顯示比對結(jié)果和結(jié)果顯示等步驟。
在設(shè)計(jì)過程中,由于頻繁地進(jìn)行批量復(fù)制粘貼、分模合模等操作,往往會(huì)造成大量構(gòu)件重疊,進(jìn)而在算量時(shí)導(dǎo)致構(gòu)件被重復(fù)計(jì)算,從而影響提取模型量的準(zhǔn)確性。在Revit 平臺中,構(gòu)件之間通常存在著緊密的關(guān)聯(lián),例如梁與柱、墻與門等。通過審查這些關(guān)聯(lián),可以判斷構(gòu)件是否重疊,或是通過導(dǎo)出構(gòu)件信息來檢查潛在的重疊問題。例如,可以導(dǎo)出梁的相關(guān)信息,檢查其長度和截面尺寸等參數(shù),判斷構(gòu)件是否重疊。但以上方法僅能初步判斷構(gòu)件重疊的可能性,仍需進(jìn)一步地詳細(xì)檢查和調(diào)整。本研究旨在提供一種應(yīng)用,可以快速清理構(gòu)件重疊、內(nèi)嵌等問題,構(gòu)件重疊判斷流程如圖1 所示,構(gòu)件重疊清理流程如圖2 所示。
圖1 構(gòu)件重疊判斷流程
圖2 構(gòu)件重疊清理流程
第一步,提取同類構(gòu)件位置、定位線參數(shù)。通過遍歷模型中的族對象提取位置、定位線參數(shù),并使用窗體數(shù)據(jù)庫調(diào)用用戶窗體接口IExternalCommand(外部命令),該接口只包含一個(gè)抽象函數(shù)Execute(),用于執(zhí)行命令的邏輯。通過提取當(dāng)前文件的CommandData對象獲取相關(guān)信息。在構(gòu)件重疊清理的過程中,在前臺打開新版本模型,同時(shí)在后臺打開需要比較的舊版本模型,以便進(jìn)行構(gòu)件重疊的檢測和處理,比較新舊版本之間的差異;
第二步,判斷位置、定位線是否重疊。利用Revit自定義插件快速找出模型中未包含規(guī)定關(guān)鍵字的族,幫助識別設(shè)計(jì)中的問題和風(fēng)險(xiǎn),并生成文件選擇窗體。使用openFileDialog 類創(chuàng)建實(shí)例,并在窗體中顯示可選的關(guān)鍵字列表,讓設(shè)計(jì)人員和BIM 建模人員通過點(diǎn)選關(guān)鍵字的方式進(jìn)行映射,同時(shí)將選擇的關(guān)鍵字合并到報(bào)表中,以便進(jìn)一步的分析和跟蹤,避免傳統(tǒng)檢查的不透徹、不全面問題;
第三步,判斷構(gòu)件面積、體積等體量參數(shù)。根據(jù)BIM 建模標(biāo)準(zhǔn)和設(shè)計(jì)需求所規(guī)定的類型參數(shù)名稱,通過插件循環(huán)遍歷模型中的構(gòu)件,判斷每個(gè)參數(shù)是否為空值,如果參數(shù)為空,表示該構(gòu)件的體量參數(shù)未被正確獲取或未定義,進(jìn)而識別出可能存在的數(shù)據(jù)問題和模型缺陷。獲取對比文件路徑后,將文件載入到緩存中,相對于同時(shí)打開兩個(gè)文件,在緩存中進(jìn)行對比能提高效率,避免頻繁的文件讀取和操作,減少I/O 開銷,從而提高處理速度;
第四步,若判斷獲取失敗時(shí),程序則開啟異常處理,并將所有需要補(bǔ)填參數(shù)的族類型匯總到報(bào)表中進(jìn)行批量操作。在階段文件選擇中,對前臺和后臺兩個(gè)文件進(jìn)行對比,在前臺文件中創(chuàng)建窗口,通過階段文件選擇器對后臺文件進(jìn)行選擇,可以在前臺文件中確認(rèn)需對比文件的內(nèi)容,進(jìn)而減輕工作強(qiáng)度,降低設(shè)計(jì)出錯(cuò)概率[7];
第五步,對重疊和內(nèi)嵌采取不同的清理模式,明確對應(yīng)模型中的族實(shí)例(Instance), 通過定位方式在模型視圖中鎖定相關(guān)實(shí)例,并返回所選文件路徑,通過OpenFileDialog 視圖信息將區(qū)域、立面和高度偏移等實(shí)例參數(shù)返回所選文件的路徑名稱,最后調(diào)用文檔處理模塊,獲取路徑名稱并進(jìn)入下一步處理,構(gòu)建重疊查找效果如圖3 所示,檢查構(gòu)件發(fā)現(xiàn)重疊原因,效果如圖4 所示。
圖3 通過Dynamo 進(jìn)行重疊查找
圖4 檢查發(fā)現(xiàn)重疊原因
在項(xiàng)目設(shè)計(jì)過程中,由于設(shè)計(jì)人員分配和成果提交要求等因素,需要對模型進(jìn)行專業(yè)和樓層等方面的拆分或合成,而手動(dòng)操作該過程較為復(fù)雜。本研究提供的方法可以根據(jù)分類標(biāo)準(zhǔn),快速進(jìn)行模型的拆分與合成,流程如圖5 所示。模型分離的目的在于滿足從設(shè)計(jì)、施工再到運(yùn)營等多個(gè)階段的不同應(yīng)用需求,例如,在設(shè)計(jì)階段,模型使用人員較多,需按專業(yè)和各自負(fù)責(zé)區(qū)域進(jìn)行劃分;在運(yùn)營階段,不同類型的設(shè)施或不同區(qū)域的負(fù)責(zé)人需要對模型進(jìn)行劃分,以滿足各自的管理需求;模型合并是在構(gòu)件重疊清理的基礎(chǔ)上,清理重復(fù)內(nèi)容后進(jìn)行合并,確保模型數(shù)據(jù)的唯一性,并為后續(xù)項(xiàng)目管理、造價(jià)管理和運(yùn)營管理等提供準(zhǔn)確的基礎(chǔ)數(shù)據(jù)[9]。
圖5 模型分離與合成流程
第一步,將模型中的構(gòu)件,如建筑元素、設(shè)備、管道和結(jié)構(gòu)等構(gòu)件,按構(gòu)件的專業(yè)(如結(jié)構(gòu)、機(jī)電和給排水等)、樓層(如地上樓層和地下樓層)或類別功能(如辦公區(qū)、會(huì)議室和廁所等)進(jìn)行分類拆分,根據(jù)拆分方式的相關(guān)參數(shù)對構(gòu)件進(jìn)行分類,拆分的目的是將整個(gè)建筑模型按照一定的規(guī)則或標(biāo)準(zhǔn)進(jìn)行分組,通過將構(gòu)件進(jìn)行分類,可以更好地管理和處理建筑模型的各個(gè)部分。在進(jìn)行構(gòu)件分類拆分的同時(shí),提取每個(gè)構(gòu)件的定位點(diǎn)。定位點(diǎn)是構(gòu)件中用于確定其位置的關(guān)鍵點(diǎn)和參考點(diǎn),定位點(diǎn)可以用于生成相對位置信息,方便在模型分離與合成過程中進(jìn)行路徑相關(guān)的操作和信息提取;
第二步,將本類拆分的構(gòu)件和數(shù)據(jù)暫存,在內(nèi)存中創(chuàng)建相應(yīng)的數(shù)據(jù)結(jié)構(gòu),并獲取應(yīng)用程序?qū)嵗?。通過不同拆分方式的相對應(yīng)參數(shù),對所篩選的構(gòu)件進(jìn)行分類,并獲取當(dāng)前活動(dòng)文件實(shí)例。通過獲取對比文件路徑,將文件加載到緩存中,相較于同時(shí)打開兩個(gè)文件,在緩存中進(jìn)行對比更能有效地提高效率;
第三步,循環(huán)判斷下一類拆分方式。在不干擾設(shè)計(jì)人員的前提下,在后臺自動(dòng)加載所需的文檔,調(diào)用插件提取定位點(diǎn),并將實(shí)例文檔載入。設(shè)計(jì)人員可以通過選擇文檔路徑,將所需數(shù)據(jù)信息,如更新模型中的屬性、元數(shù)據(jù)或其他相關(guān)信息,填入到對應(yīng)的實(shí)例中,并將文檔相關(guān)數(shù)據(jù)加載到后臺合成暫存文件,同時(shí)判斷文件的加載情況,如加載數(shù)據(jù)是否完整,錯(cuò)誤數(shù)據(jù)及其他異常情況等;
第四步,循環(huán)輸出拆分文件合成。程序調(diào)用構(gòu)件篩選模塊,并在后臺同步開啟用戶選擇文檔,以及當(dāng)前打開的Revit 文件寫入篩選功能模塊。篩選后,將文件流轉(zhuǎn)至下一步進(jìn)行處理。判斷是否加載成功,當(dāng)成功加載時(shí)循環(huán)輸出文件,直至輸出完成,最后將文件存檔。通過以上優(yōu)化,可以提高Revit 模型的分離與合成效率,簡化程序復(fù)雜度。
在搜索最優(yōu)解方面,遺傳算法是一種廣泛應(yīng)用且高效的全局搜索智能優(yōu)化算法,將BIM 技術(shù)與遺傳算法相結(jié)合,用于優(yōu)化建筑管線的綜合布局,不僅能夠?qū)崿F(xiàn)仿真模擬、碰撞檢測和數(shù)據(jù)建模等功能,還能夠?qū)Σ町惐容^性進(jìn)行優(yōu)化分析,但這種方法需要大量的數(shù)據(jù)支持和定量分析。本研究通過將BIM 技術(shù)、遺傳算法和管線綜合優(yōu)化理論有機(jī)融合,可以有效提取Revit 提供所有風(fēng)管、水管和橋架的尺寸標(biāo)高和橫縱坐標(biāo)信息,解決建筑管線綜合優(yōu)化領(lǐng)域數(shù)據(jù)獲取、定量分析等難題,使管線優(yōu)化達(dá)到管線無碰撞或碰撞結(jié)果數(shù)量為最低的最佳狀態(tài),調(diào)整后重疊構(gòu)件減少如圖6所示。
圖6 調(diào)整后重疊構(gòu)件減少
第一步,提取Revit 提供所有風(fēng)管、水管、橋架的尺寸標(biāo)高和橫縱坐標(biāo)。在管線區(qū)域內(nèi)以管線直徑為柵格進(jìn)行劃分,以柵格左上角為原點(diǎn)建立直角坐標(biāo)系,每個(gè)柵格用(x,y)定位,單柵格在允許區(qū)域內(nèi)賦值為1,否則賦值為0;
第二步,適應(yīng)度函數(shù)決定了遺傳算法的效率,根據(jù)規(guī)范和所有管線之間影響因素,選取適應(yīng)度評價(jià)函數(shù)導(dǎo)入所有管線之間最優(yōu)距離和室內(nèi)凈高,并以最短距離帶進(jìn)作為目標(biāo)函數(shù)修正項(xiàng),從而解決運(yùn)算中因間斷點(diǎn)而引起的距離過近問題,對所有管線進(jìn)行全局計(jì)算,求導(dǎo)全局最優(yōu)解;
第三步,Revit 中的所有模型都基于族,在對族進(jìn)行深入研究的基礎(chǔ)上,對Revit API 進(jìn)行二次開發(fā),通過校核模型是否滿足建模標(biāo)準(zhǔn)對族進(jìn)行檢測,從構(gòu)成模型的可載入族(構(gòu)建族)、系統(tǒng)族與內(nèi)建族等族中去拾取,對照建模標(biāo)準(zhǔn)的相關(guān)條目,優(yōu)化到管線無碰撞或碰撞結(jié)果數(shù)量為最低[10]。
本文提供的基于Revit 的不同階段BIM 模型的差異比較的方法,貫穿從策劃、設(shè)計(jì)、項(xiàng)目管理到成本控制的設(shè)計(jì)全過程,為建筑工程全生命周期提供了顯著地效益。通過對不同階段的模型進(jìn)行差異比較,實(shí)現(xiàn)了可控且實(shí)時(shí)地造價(jià)控制過程,為工程管理提供了有力的支持,確保項(xiàng)目在各個(gè)階段都得到有效的管理和優(yōu)化。
該項(xiàng)技術(shù)實(shí)現(xiàn)了軟件內(nèi)原生對比功能,在Revit 平臺內(nèi)可實(shí)現(xiàn)階段版本對比、內(nèi)容過濾和顯示功能。在實(shí)際應(yīng)用中,無需進(jìn)行繁瑣的文件格式轉(zhuǎn)換、導(dǎo)出或上傳,降低了操作的復(fù)雜性,提升設(shè)計(jì)人員的工作效率和設(shè)計(jì)質(zhì)量。
通過獲取對比文件路徑,加載文件至緩存,相對于同時(shí)打開兩個(gè)文件,在緩存中進(jìn)行對比能有效地提升效率。通過建立過濾器規(guī)則,基于對象名稱創(chuàng)建class 過濾器和Category 過濾器,在對象篩選過程中,無需對所有類型進(jìn)行對比,從而有效地縮小了對比范圍,減少了對比所需的時(shí)間。
該項(xiàng)技術(shù)在階段文件選擇、文檔處理、文件對比和生成清單等環(huán)節(jié)都設(shè)置了異常處理步驟,以確保后續(xù)步驟的準(zhǔn)確性。通過前臺和后臺對兩個(gè)文件進(jìn)行對比,在前臺文件中創(chuàng)建窗口,使用階段文件選擇器對后臺文件進(jìn)行選擇,可在前臺文件確認(rèn)需對比內(nèi)容,降低出錯(cuò)概率。
此項(xiàng)技術(shù)通過類別篩選前置執(zhí)行,實(shí)現(xiàn)了單一類別或多類別的對比提升了操作靈活性。在對比結(jié)果顯示方面,對比結(jié)果以列表形式展示。用戶可自行選擇全部顯示或僅突出高亮單一或多個(gè)對象。這種可篩選、可控制、可視化的列表操作方式和結(jié)果呈現(xiàn)方式,提升了可讀性和實(shí)用性,使設(shè)計(jì)人員能夠更加精確地比對文件,提升了設(shè)計(jì)數(shù)據(jù)質(zhì)量和準(zhǔn)確性。
在某省中醫(yī)院中醫(yī)藥傳承創(chuàng)新工程中,設(shè)計(jì)人員采用差異化對比模型在不同階段的應(yīng)用,滿足了全過程造價(jià)管控的需求。在設(shè)計(jì)階段,設(shè)計(jì)人員結(jié)合物理性能分析,交通組織模擬全景VR 技術(shù),通過差異化對比設(shè)計(jì)方案,協(xié)助使用方作出決策;在初步設(shè)計(jì)和施工圖階段的模型中,設(shè)計(jì)人員能夠及時(shí)發(fā)現(xiàn)預(yù)算編制單位的部分漏項(xiàng)清單;在施工階段,通過差異化對比審核,驗(yàn)證施工單位的施工優(yōu)化模型,以確保設(shè)計(jì)的完整性。
通過對比設(shè)計(jì)階段和深化階段模型構(gòu)件的差異,設(shè)計(jì)人員可以通過構(gòu)件ID 快速檢索、定位并審閱已經(jīng)修改的構(gòu)件,流程如圖7 所示,具體數(shù)據(jù)如圖8 所示,數(shù)據(jù)圖表可以清晰地展示深化階段所做的構(gòu)件修改數(shù)量及其比例,具體數(shù)據(jù)如圖9 所示。這些分析表可以作為造價(jià)分析的依據(jù),同時(shí)也可以充當(dāng)輔助工具,如圖10 ~圖11 所示。通過該方法使設(shè)計(jì)團(tuán)隊(duì)更加高效地掌握項(xiàng)目的變化,準(zhǔn)確評估造價(jià)情況,并在項(xiàng)目的不同階段作出決策,從而確保項(xiàng)目的質(zhì)量和效益。
圖7 BIM 模型高效對比方法流程(部分)
圖8 模型設(shè)計(jì)階段和深化階段構(gòu)件對比
圖9 模型設(shè)計(jì)階段和深化階段構(gòu)件數(shù)據(jù)比例
圖10 模型設(shè)計(jì)階段和深化階段結(jié)構(gòu)柱對比(部分)
圖11 模型設(shè)計(jì)階段和深化階段管道對比(部分)
通過上述項(xiàng)目的實(shí)施,設(shè)計(jì)團(tuán)隊(duì)?wèi)?yīng)用了本研究中的差異化對比方法,并將其應(yīng)用于造價(jià)、性能、設(shè)計(jì)優(yōu)化、施工優(yōu)化和設(shè)計(jì)決策等多個(gè)方面,取得以下成效:
(1)可確保設(shè)計(jì)的延續(xù)性和保真性,采用合理的差異比較工作流程,確保BIM 模型數(shù)據(jù)在不同建設(shè)階段的傳承關(guān)系。從項(xiàng)目的初期方案到施工圖落地,通過動(dòng)態(tài)的設(shè)計(jì)模型對比和實(shí)時(shí)的對比結(jié)果呈現(xiàn),可以讓設(shè)計(jì)人員研判當(dāng)前設(shè)計(jì)模型是否按原設(shè)計(jì)意圖進(jìn)行深化設(shè)計(jì),及時(shí)糾正偏離最初設(shè)計(jì)的情況;
(2)對造價(jià)復(fù)核驗(yàn)算提供了支持,通過設(shè)計(jì)模型差異比較,分析變更對構(gòu)件數(shù)量、材料用量、工程量和成本的影響,提高成本估算的準(zhǔn)確性,減少成本偏差。通過對比實(shí)際施工階段的設(shè)計(jì)模型與預(yù)期的設(shè)計(jì)模型,量化評估變更前后的差異,及時(shí)調(diào)整策略以實(shí)現(xiàn)預(yù)算目標(biāo)。評估不同設(shè)計(jì)方案的成本差異,選擇最優(yōu)方案;
(3)差異化對比的思路還可以擴(kuò)展到模型清理和分離組合的處理,通過對模型的對比,可以清理設(shè)計(jì)過程中產(chǎn)生的冗余、重疊等構(gòu)件,提升整體模型的質(zhì)量。在設(shè)計(jì)過程中,根據(jù)模型的使用需求,通過對比篩選操作,實(shí)現(xiàn)模型自由分離和組合,提高設(shè)計(jì)靈活性和效率,更全面地服務(wù)于設(shè)計(jì)過程各環(huán)節(jié)。
本研究基于Revit 的不同階段BIM 模型的差異比較方法,實(shí)現(xiàn)對比類別篩選的前置執(zhí)行,以及單類別和多類別的對比,提升了工作效率和設(shè)計(jì)質(zhì)量。研究成果可投入使用的項(xiàng)目和場景主要有以下三個(gè)方面。
(1)適用于全過程造價(jià)控制項(xiàng)目。本研究的目的在于在控價(jià)設(shè)計(jì)項(xiàng)目中,更好地進(jìn)行各階段的差異比對,在控價(jià)設(shè)計(jì)項(xiàng)目中,具有廣泛的應(yīng)用前景;
(2)適用于工程智慧運(yùn)行管理平臺。在智慧運(yùn)行管理平臺中,本研究可以輔助進(jìn)行室內(nèi)空間布局修改、管線調(diào)整、新增設(shè)備等情況的模型差異對比,并在事前進(jìn)行工程量估算,輔助業(yè)主進(jìn)行決策;
(3)提高建筑全生命周期內(nèi)的資源利用效率。本研究不僅適用于模型差異比較,還可衍生出構(gòu)件重疊檢查、模型合并拆分等工程設(shè)計(jì)、施工、工程造價(jià)計(jì)量等工作流。應(yīng)用該研究可解決建筑設(shè)計(jì)施工中信息流問題,由點(diǎn)對點(diǎn)傳遞改為系統(tǒng)化、集中化溝通。相較傳統(tǒng)粗放管理,基于BIM 的全模型差異比較精確管控,減少工程變更,提高效率。預(yù)計(jì)每㎡可節(jié)約近500元的人力成本、設(shè)計(jì)、管理、服務(wù)和施工成本。