劉月涵 焦柯 霍浩彬 阮浩德 張小良 胡成恩 陳芳 陳祚衡
(1. 廣東省建筑設計研究院有限公司,廣州 510010;2. 廣東省城鄉規劃設計研究院有限責任公司,廣州 510010;3. 廣東省機電設備招標中心有限公司,廣州 510010)
在工程設計領域,由于智慧城市建設的不斷發展,傳統的二維模式已不能滿足要求,三維設計逐漸成為行業的發展趨勢。如Revit、Bentley、Catia 等三維設計軟件已在工程設計中得到了廣泛應用。其中Revit 市場占有率高、通用性、交互性良好。近年來,許多結合各類算法的,基于Revit 平臺的二次開發項目相繼涌現,進一步拓展了其應用范圍。例如,在市政管線設計中,結合地理信息系統(GIS)及遺傳算法,對新建地下管線實現路線優化布置[1];在交通工程中,通過可視化編程工具實現空間曲線模擬及Revit 自適應構件布置[2];在能源項目中,采用遺傳算法對天然氣管網規劃進行優化[3];在裝配式建筑中,結合Python 語言實現標準化設計[4];在建筑機電工程中,管線系統復雜性且工程數據量大,其碰撞檢測及優化的工作難度大且易出錯,通過調用Revit API 函數進行的二次開發,可以有效提高設計效率[5,6]。
為了解決工程三維設計中的圖紙、模型等資料信息量大、內容變更頻繁、信息交換等復雜問題,本文提供了一種基于Revit 的不同階段BIM 模型的差異比較方法。該方法直接在Revit 平臺內實現了不同階段的版本對比、顯示以及內容過濾[7]。還可以在Revit 平臺中直接打開需要編輯或查看的文件,直接選取所需的工作文件進行對比,而無需借助第三方平臺。對比結果直接在Revit 中呈現,并根據設計人員的需求進行分類展示,這一方法避免了大量文件導入導出、格式轉換等重復操作所導致的信息丟失問題,從而顯著提升三維設計的工作效率和圖紙設計的質量。
Revit 中的所有圖元模型都是基于族構建的,族有助于管理模型中的圖元數據。每個族圖元可以定義多種類型,每種類型有不同尺寸、形狀、材質設置或其他參數變量。對模型在不同階段的差異性比較,本質上是對不同族的檢測,用以識別和分析不同類型的族在模型不同階段之間的差異[8]。本文主要包括:構件重疊與內嵌清理、模型分離與合成、基于遺傳算法的管線綜合優化等三個關鍵技術,這些技術主要包括:建立窗體數據庫、窗體搭建、階段文件選擇、文檔處理、對象篩選、文件對比、生成清單、前臺文件顯示比對結果和結果顯示等步驟。
在設計過程中,由于頻繁地進行批量復制粘貼、分模合模等操作,往往會造成大量構件重疊,進而在算量時導致構件被重復計算,從而影響提取模型量的準確性。在Revit 平臺中,構件之間通常存在著緊密的關聯,例如梁與柱、墻與門等。通過審查這些關聯,可以判斷構件是否重疊,或是通過導出構件信息來檢查潛在的重疊問題。例如,可以導出梁的相關信息,檢查其長度和截面尺寸等參數,判斷構件是否重疊。但以上方法僅能初步判斷構件重疊的可能性,仍需進一步地詳細檢查和調整。本研究旨在提供一種應用,可以快速清理構件重疊、內嵌等問題,構件重疊判斷流程如圖1 所示,構件重疊清理流程如圖2 所示。

圖1 構件重疊判斷流程

圖2 構件重疊清理流程
第一步,提取同類構件位置、定位線參數。通過遍歷模型中的族對象提取位置、定位線參數,并使用窗體數據庫調用用戶窗體接口IExternalCommand(外部命令),該接口只包含一個抽象函數Execute(),用于執行命令的邏輯。通過提取當前文件的CommandData對象獲取相關信息。在構件重疊清理的過程中,在前臺打開新版本模型,同時在后臺打開需要比較的舊版本模型,以便進行構件重疊的檢測和處理,比較新舊版本之間的差異;
第二步,判斷位置、定位線是否重疊。利用Revit自定義插件快速找出模型中未包含規定關鍵字的族,幫助識別設計中的問題和風險,并生成文件選擇窗體。使用openFileDialog 類創建實例,并在窗體中顯示可選的關鍵字列表,讓設計人員和BIM 建模人員通過點選關鍵字的方式進行映射,同時將選擇的關鍵字合并到報表中,以便進一步的分析和跟蹤,避免傳統檢查的不透徹、不全面問題;
第三步,判斷構件面積、體積等體量參數。根據BIM 建模標準和設計需求所規定的類型參數名稱,通過插件循環遍歷模型中的構件,判斷每個參數是否為空值,如果參數為空,表示該構件的體量參數未被正確獲取或未定義,進而識別出可能存在的數據問題和模型缺陷。獲取對比文件路徑后,將文件載入到緩存中,相對于同時打開兩個文件,在緩存中進行對比能提高效率,避免頻繁的文件讀取和操作,減少I/O 開銷,從而提高處理速度;
第四步,若判斷獲取失敗時,程序則開啟異常處理,并將所有需要補填參數的族類型匯總到報表中進行批量操作。在階段文件選擇中,對前臺和后臺兩個文件進行對比,在前臺文件中創建窗口,通過階段文件選擇器對后臺文件進行選擇,可以在前臺文件中確認需對比文件的內容,進而減輕工作強度,降低設計出錯概率[7];
第五步,對重疊和內嵌采取不同的清理模式,明確對應模型中的族實例(Instance), 通過定位方式在模型視圖中鎖定相關實例,并返回所選文件路徑,通過OpenFileDialog 視圖信息將區域、立面和高度偏移等實例參數返回所選文件的路徑名稱,最后調用文檔處理模塊,獲取路徑名稱并進入下一步處理,構建重疊查找效果如圖3 所示,檢查構件發現重疊原因,效果如圖4 所示。

圖3 通過Dynamo 進行重疊查找

圖4 檢查發現重疊原因
在項目設計過程中,由于設計人員分配和成果提交要求等因素,需要對模型進行專業和樓層等方面的拆分或合成,而手動操作該過程較為復雜。本研究提供的方法可以根據分類標準,快速進行模型的拆分與合成,流程如圖5 所示。模型分離的目的在于滿足從設計、施工再到運營等多個階段的不同應用需求,例如,在設計階段,模型使用人員較多,需按專業和各自負責區域進行劃分;在運營階段,不同類型的設施或不同區域的負責人需要對模型進行劃分,以滿足各自的管理需求;模型合并是在構件重疊清理的基礎上,清理重復內容后進行合并,確保模型數據的唯一性,并為后續項目管理、造價管理和運營管理等提供準確的基礎數據[9]。

圖5 模型分離與合成流程
第一步,將模型中的構件,如建筑元素、設備、管道和結構等構件,按構件的專業(如結構、機電和給排水等)、樓層(如地上樓層和地下樓層)或類別功能(如辦公區、會議室和廁所等)進行分類拆分,根據拆分方式的相關參數對構件進行分類,拆分的目的是將整個建筑模型按照一定的規則或標準進行分組,通過將構件進行分類,可以更好地管理和處理建筑模型的各個部分。在進行構件分類拆分的同時,提取每個構件的定位點。定位點是構件中用于確定其位置的關鍵點和參考點,定位點可以用于生成相對位置信息,方便在模型分離與合成過程中進行路徑相關的操作和信息提取;
第二步,將本類拆分的構件和數據暫存,在內存中創建相應的數據結構,并獲取應用程序實例。通過不同拆分方式的相對應參數,對所篩選的構件進行分類,并獲取當前活動文件實例。通過獲取對比文件路徑,將文件加載到緩存中,相較于同時打開兩個文件,在緩存中進行對比更能有效地提高效率;
第三步,循環判斷下一類拆分方式。在不干擾設計人員的前提下,在后臺自動加載所需的文檔,調用插件提取定位點,并將實例文檔載入。設計人員可以通過選擇文檔路徑,將所需數據信息,如更新模型中的屬性、元數據或其他相關信息,填入到對應的實例中,并將文檔相關數據加載到后臺合成暫存文件,同時判斷文件的加載情況,如加載數據是否完整,錯誤數據及其他異常情況等;
第四步,循環輸出拆分文件合成。程序調用構件篩選模塊,并在后臺同步開啟用戶選擇文檔,以及當前打開的Revit 文件寫入篩選功能模塊。篩選后,將文件流轉至下一步進行處理。判斷是否加載成功,當成功加載時循環輸出文件,直至輸出完成,最后將文件存檔。通過以上優化,可以提高Revit 模型的分離與合成效率,簡化程序復雜度。
在搜索最優解方面,遺傳算法是一種廣泛應用且高效的全局搜索智能優化算法,將BIM 技術與遺傳算法相結合,用于優化建筑管線的綜合布局,不僅能夠實現仿真模擬、碰撞檢測和數據建模等功能,還能夠對差異比較性進行優化分析,但這種方法需要大量的數據支持和定量分析。本研究通過將BIM 技術、遺傳算法和管線綜合優化理論有機融合,可以有效提取Revit 提供所有風管、水管和橋架的尺寸標高和橫縱坐標信息,解決建筑管線綜合優化領域數據獲取、定量分析等難題,使管線優化達到管線無碰撞或碰撞結果數量為最低的最佳狀態,調整后重疊構件減少如圖6所示。

圖6 調整后重疊構件減少
第一步,提取Revit 提供所有風管、水管、橋架的尺寸標高和橫縱坐標。在管線區域內以管線直徑為柵格進行劃分,以柵格左上角為原點建立直角坐標系,每個柵格用(x,y)定位,單柵格在允許區域內賦值為1,否則賦值為0;
第二步,適應度函數決定了遺傳算法的效率,根據規范和所有管線之間影響因素,選取適應度評價函數導入所有管線之間最優距離和室內凈高,并以最短距離帶進作為目標函數修正項,從而解決運算中因間斷點而引起的距離過近問題,對所有管線進行全局計算,求導全局最優解;
第三步,Revit 中的所有模型都基于族,在對族進行深入研究的基礎上,對Revit API 進行二次開發,通過校核模型是否滿足建模標準對族進行檢測,從構成模型的可載入族(構建族)、系統族與內建族等族中去拾取,對照建模標準的相關條目,優化到管線無碰撞或碰撞結果數量為最低[10]。
本文提供的基于Revit 的不同階段BIM 模型的差異比較的方法,貫穿從策劃、設計、項目管理到成本控制的設計全過程,為建筑工程全生命周期提供了顯著地效益。通過對不同階段的模型進行差異比較,實現了可控且實時地造價控制過程,為工程管理提供了有力的支持,確保項目在各個階段都得到有效的管理和優化。
該項技術實現了軟件內原生對比功能,在Revit 平臺內可實現階段版本對比、內容過濾和顯示功能。在實際應用中,無需進行繁瑣的文件格式轉換、導出或上傳,降低了操作的復雜性,提升設計人員的工作效率和設計質量。
通過獲取對比文件路徑,加載文件至緩存,相對于同時打開兩個文件,在緩存中進行對比能有效地提升效率。通過建立過濾器規則,基于對象名稱創建class 過濾器和Category 過濾器,在對象篩選過程中,無需對所有類型進行對比,從而有效地縮小了對比范圍,減少了對比所需的時間。
該項技術在階段文件選擇、文檔處理、文件對比和生成清單等環節都設置了異常處理步驟,以確保后續步驟的準確性。通過前臺和后臺對兩個文件進行對比,在前臺文件中創建窗口,使用階段文件選擇器對后臺文件進行選擇,可在前臺文件確認需對比內容,降低出錯概率。
此項技術通過類別篩選前置執行,實現了單一類別或多類別的對比提升了操作靈活性。在對比結果顯示方面,對比結果以列表形式展示。用戶可自行選擇全部顯示或僅突出高亮單一或多個對象。這種可篩選、可控制、可視化的列表操作方式和結果呈現方式,提升了可讀性和實用性,使設計人員能夠更加精確地比對文件,提升了設計數據質量和準確性。
在某省中醫院中醫藥傳承創新工程中,設計人員采用差異化對比模型在不同階段的應用,滿足了全過程造價管控的需求。在設計階段,設計人員結合物理性能分析,交通組織模擬全景VR 技術,通過差異化對比設計方案,協助使用方作出決策;在初步設計和施工圖階段的模型中,設計人員能夠及時發現預算編制單位的部分漏項清單;在施工階段,通過差異化對比審核,驗證施工單位的施工優化模型,以確保設計的完整性。
通過對比設計階段和深化階段模型構件的差異,設計人員可以通過構件ID 快速檢索、定位并審閱已經修改的構件,流程如圖7 所示,具體數據如圖8 所示,數據圖表可以清晰地展示深化階段所做的構件修改數量及其比例,具體數據如圖9 所示。這些分析表可以作為造價分析的依據,同時也可以充當輔助工具,如圖10 ~圖11 所示。通過該方法使設計團隊更加高效地掌握項目的變化,準確評估造價情況,并在項目的不同階段作出決策,從而確保項目的質量和效益。

圖7 BIM 模型高效對比方法流程(部分)

圖8 模型設計階段和深化階段構件對比

圖9 模型設計階段和深化階段構件數據比例

圖10 模型設計階段和深化階段結構柱對比(部分)

圖11 模型設計階段和深化階段管道對比(部分)
通過上述項目的實施,設計團隊應用了本研究中的差異化對比方法,并將其應用于造價、性能、設計優化、施工優化和設計決策等多個方面,取得以下成效:
(1)可確保設計的延續性和保真性,采用合理的差異比較工作流程,確保BIM 模型數據在不同建設階段的傳承關系。從項目的初期方案到施工圖落地,通過動態的設計模型對比和實時的對比結果呈現,可以讓設計人員研判當前設計模型是否按原設計意圖進行深化設計,及時糾正偏離最初設計的情況;
(2)對造價復核驗算提供了支持,通過設計模型差異比較,分析變更對構件數量、材料用量、工程量和成本的影響,提高成本估算的準確性,減少成本偏差。通過對比實際施工階段的設計模型與預期的設計模型,量化評估變更前后的差異,及時調整策略以實現預算目標。評估不同設計方案的成本差異,選擇最優方案;
(3)差異化對比的思路還可以擴展到模型清理和分離組合的處理,通過對模型的對比,可以清理設計過程中產生的冗余、重疊等構件,提升整體模型的質量。在設計過程中,根據模型的使用需求,通過對比篩選操作,實現模型自由分離和組合,提高設計靈活性和效率,更全面地服務于設計過程各環節。
本研究基于Revit 的不同階段BIM 模型的差異比較方法,實現對比類別篩選的前置執行,以及單類別和多類別的對比,提升了工作效率和設計質量。研究成果可投入使用的項目和場景主要有以下三個方面。
(1)適用于全過程造價控制項目。本研究的目的在于在控價設計項目中,更好地進行各階段的差異比對,在控價設計項目中,具有廣泛的應用前景;
(2)適用于工程智慧運行管理平臺。在智慧運行管理平臺中,本研究可以輔助進行室內空間布局修改、管線調整、新增設備等情況的模型差異對比,并在事前進行工程量估算,輔助業主進行決策;
(3)提高建筑全生命周期內的資源利用效率。本研究不僅適用于模型差異比較,還可衍生出構件重疊檢查、模型合并拆分等工程設計、施工、工程造價計量等工作流。應用該研究可解決建筑設計施工中信息流問題,由點對點傳遞改為系統化、集中化溝通。相較傳統粗放管理,基于BIM 的全模型差異比較精確管控,減少工程變更,提高效率。預計每㎡可節約近500元的人力成本、設計、管理、服務和施工成本。