趙桐桐 王亮 陳鑫堯
(1. 北京建筑大學(xué) 土木與交通工程學(xué)院,北京 100044;2. 中航天建設(shè)工程集團有限公司,北京 100070)
隨著新時期建筑業(yè)的轉(zhuǎn)型升級,房屋集成化的新型裝配式建筑迎來了新的發(fā)展契機。在BIM 模型中每一個構(gòu)件能獨立存在、獨立操作,這與裝配式建筑的構(gòu)件化特點契合[1]。因此使用BIM 技術(shù)來發(fā)展裝配式建筑具有很大優(yōu)勢。Revit 作為國內(nèi)主流BIM 軟件,在構(gòu)件智能拆分、異形構(gòu)件及鋼筋模型創(chuàng)建與工程信息管理等方面存在劣勢,不能很好地滿足預(yù)制構(gòu)件的設(shè)計、施工需求。裝配式預(yù)制構(gòu)件形狀不規(guī)則且含多種附屬構(gòu)件,其蘊含參數(shù)信息的數(shù)量是傳統(tǒng)現(xiàn)澆構(gòu)件的1倍以上,在工程量大幅提升的同時,對工期的要求卻沒有降低,極易影響到工程質(zhì)量[2]。如何通過BIM 技術(shù)提高設(shè)計、施工工作的速度與效率是目前急需解決的問題。
不少學(xué)者針對以上問題進行了研究。孫璨等[3]探討了預(yù)制裝配式構(gòu)件的參數(shù)化設(shè)計方法,應(yīng)用于實際項目并取得良好成效。羅遠峰等[4]基于Revit 二次開發(fā)技術(shù)建立了一套輔助設(shè)計軟件,有效減少了鋼筋手動建模量。楊謙等[5]將鋼筋標準化設(shè)計與軟件開發(fā)方法相結(jié)合,研發(fā)了一款基于Revit 軟件的預(yù)制剪力墻構(gòu)件配筋設(shè)計軟件。劉春原等[6]利用Dynamo 對Revit進行二次開發(fā),實現(xiàn)了部分裝配式構(gòu)件的批量化拆分、復(fù)雜構(gòu)件的智能命名。雷杰等[7]通過對Rhino 平臺進行二次開發(fā),實現(xiàn)對預(yù)制異型樓板的拆分及深化,提高了設(shè)計圖紙的準確程度和設(shè)計效率。文志彬等[8]基于Dynamo 編制了桁架鋼筋混凝土疊合板參數(shù)化設(shè)計程序,實現(xiàn)了一鍵生成疊合板鋼筋模型、一鍵統(tǒng)計鋼筋信息的功能,并對后續(xù)樓板參數(shù)化拆分研究進行了展望。程霄等[9]運用“Dynamo+ Revit”的技術(shù)形式,實現(xiàn)了裝配式樓梯構(gòu)件混凝土板及鋼筋的參數(shù)化創(chuàng)建,并且擴展了構(gòu)件工程量統(tǒng)計、二維出圖的應(yīng)用。
以上研究證明,運用Dynamo 編程來實現(xiàn)預(yù)制構(gòu)件拆分、精細化建模是可行的。此外,構(gòu)件本身及其附屬構(gòu)件尺寸、數(shù)量及安裝點位的準確性是施工順利進行的關(guān)鍵因素,在進場前需要做嚴格的檢驗。本文以裝配式建筑中使用較多且被優(yōu)先選擇的桁架鋼筋混凝土疊合板(后簡稱疊合板)為例,運用可視化編程工具Dynamo 對Revit 軟件進行二次開發(fā)。
預(yù)制構(gòu)件深化設(shè)計的核心階段為構(gòu)件設(shè)計,構(gòu)件設(shè)計又以構(gòu)件拆分為前提。因此提高設(shè)計工作效率與質(zhì)量的關(guān)鍵在于構(gòu)件拆分、構(gòu)件設(shè)計工作的順利開展。然而現(xiàn)階段裝配式預(yù)制疊合板種類較多,拆分方案不統(tǒng)一,手工拆分量大。Revit中的構(gòu)件拆分功能存在欠缺,無法實現(xiàn)板的智能化拆分與尺寸歸并。疊合板形狀不規(guī)則,附屬構(gòu)件及鋼筋含量較多,建模效率有待提升。作為一個異形構(gòu)件,預(yù)制構(gòu)件參數(shù)信息量多,質(zhì)檢工作量大[10]。
通過上述分析可知,應(yīng)將構(gòu)件智能化拆分、構(gòu)件參數(shù)化建模與構(gòu)件尺寸信息提取作為Dynamo 的使用需求與本文的研究重點,本研究參數(shù)化程序開發(fā)的技術(shù)路線如圖1 所示。
圖1 程序開發(fā)技術(shù)路線
通過對現(xiàn)有相關(guān)文獻、市面相關(guān)軟件及裝配式設(shè)計人員的調(diào)研,了解到現(xiàn)有的疊合板標準化拆分做法主要分為兩種:一是等分法,即用板格拆分邊尺寸扣除板間后澆帶部分總寬度后根據(jù)拆分數(shù)量進行均分取整;二是模數(shù)法,即用固定的模數(shù)寬度和后澆帶寬度來對板格拆分邊進行拼湊。拆分后的余值有三種處理方式:一是均分到板間后澆帶;二是合并到其中一塊板中;三是將其另外設(shè)置為單獨的后澆帶。因此本文設(shè)計了限值等分和模數(shù)拆分兩套拆分方式,在此基礎(chǔ)上根據(jù)疊合板和后澆帶寬度是否可變、拆分余值設(shè)定位置設(shè)計了不同的拆分模式,供用戶在使用時根據(jù)工程要求進行選擇。
本文是以一個房間為基本單元,將拆分規(guī)則編輯到程序中,使Revit 軟件在現(xiàn)澆結(jié)構(gòu)設(shè)計模型的基礎(chǔ)上實現(xiàn)樓板的智能化拆分。程序使用流程如圖2 所示,程序UI 界面如圖3 所示。
圖2 智能拆分程序使用流程
圖3 智能拆分程序UI 界面
2.1.1 限值等分程序編寫邏輯
通過單選或多選的方式獲取Revit 中的現(xiàn)澆板,在獲取現(xiàn)澆板拆分邊的尺寸與輸入的兩端支座擱置寬度后,將二者相加得到拆分總尺寸。參照“等分且拆分數(shù)量最少”的拆分原則,借助Python Script 節(jié)點編寫Python 腳本來根據(jù)“最大寬度限值”和“后澆帶寬度”智能判斷疊合板拆分個數(shù)。通過對板邊定位線進行陣列得到各疊合板的左右兩邊定位線,由定位線生成面進而生成板。限值等分程序邏輯圖如圖4 所示。
其中l(wèi)0、b0為現(xiàn)澆板的長度、寬度,l為模數(shù)取整后的板寬值,n為疊合板拆分數(shù)量,l_hjd1 為最終的板間后澆帶寬度,l_hjd2 為后澆帶寬度固定情況下因余值另外加設(shè)的后澆帶寬度。其余變量含義均在邏輯圖中進行了說明。
2.1.2 模數(shù)拆分程序編寫邏輯
拆分總尺寸的獲取同限值等分方式。借助Python腳本來根據(jù)“板寬模數(shù)”和“后澆帶寬度”智能判斷疊合板拆分個數(shù)。通過陣列板邊定位線得到各疊合板的左右兩邊定位線,再由線生成面進而生成板。模數(shù)拆分程序邏輯圖如圖5 所示。
圖5 模數(shù)拆分程序邏輯圖
其中l(wèi)1為與拆分余值合并后的板寬值,l_hjd2 為疊合板與后澆帶寬度均固定情況下因余值另外加設(shè)的后澆帶寬度。其余變量含義均在邏輯圖及上文進行了說明。
本拆分程序的優(yōu)勢在于:
(1)限值等分方式在保證板均分的同時,也保證了疊合板寬度不超過最大限值,防止因板寬過大給生產(chǎn)、運輸和吊裝等環(huán)節(jié)帶來不便。通過設(shè)置基本模數(shù),對板寬尺寸進行合理的歸并,有效減少了疊合板種類,符合預(yù)制構(gòu)件模數(shù)化、標準化設(shè)計的要求;
(2)模數(shù)拆分方式綜合考慮了拆分余值的各種處理做法,應(yīng)用范圍較廣,有很強的實用性;
(3)在由現(xiàn)澆板生成疊合板的過程中,疊合板的標高信息取自原現(xiàn)澆板,因此可進行跨層批量拆分,提高拆分工作的效率。
參考《桁架鋼筋混凝土疊合板(60mm 厚底板)》(15G366-1)(后簡稱圖集)[11]、《裝配式混凝土結(jié)構(gòu)技術(shù)規(guī)程》(JGJ 1-2014)[12]等圖集和規(guī)范,將桁架混凝土疊合板分解為預(yù)制混凝土底板、鋼筋、切角及預(yù)留孔洞等部分。其中鋼筋包含板底受力鋼筋、板底分布鋼筋、桁架鋼筋和吊點加強筋四類,如圖6 所示。
本模塊參考借鑒了文獻[8]中鋼筋及切角的創(chuàng)建思路,并對桁架鋼筋的生成方式進行了改進,進一步增加了疊合板預(yù)留洞口創(chuàng)建功能。
2.2.1 疊合板板底鋼筋參數(shù)化建模
通過Select.Model Elements 節(jié)點批量選擇預(yù)制混凝土底板,通過Element.Faces 節(jié)點獲取板的六個面,中心點Z 坐標值最小的表面即為下表面。運用節(jié)點Surface.PerimeterCurves 獲取下表面的長邊和短邊,進而通過Curve.ExtendStart 和Curve.ExtendEnd 兩個節(jié)點根據(jù)各類鋼筋的“伸出長度”輸入值對長邊和短邊進行延長。利用Geometry.Translate 節(jié)點將延伸后的曲線按“首根分布/受力鋼筋距板邊距離”、“分布/受力鋼筋網(wǎng)”輸入值分別沿短邊與長邊兩個方向進行平移和陣列得到所有板底鋼筋定位線,再根據(jù)鋼筋混凝土保護層厚度、相關(guān)鋼筋直徑沿Z 軸移動定位線,即可得到所有鋼筋中心線,運用Rebar.ByCurve 節(jié)點即可生成板底受力筋和分布筋。
2.2.2 疊合板桁架鋼筋參數(shù)化建模
運用Curve.ExtendStart 和Curve.ExtendEnd 兩個節(jié)點將疊合板長邊按“桁架鋼筋首端、末端縮進”輸入值進行縮進。根據(jù)“桁架鋼筋分布”輸入值,利用Geometry.Translate 節(jié)點將縮進后的曲線沿短邊方向進行平移和陣列,得到所有桁架上弦鋼筋定位線。將定位線按“桁架鋼筋寬度”輸入值進行左右偏移得到下弦鋼筋定位線,進而根據(jù)“桁架鋼筋高度”輸入值、相應(yīng)鋼筋直徑沿Z 軸移動上下弦鋼筋定位線得到上下弦鋼筋中心線。根據(jù)“波峰寬度”輸入值及相應(yīng)鋼筋直徑,利用 Curve.PointAtParameter 節(jié)點在上、下弦鋼筋的中心線上獲取腹桿鋼筋的定位點,將其向外偏移并連接,得到腹桿鋼筋的中心線,最后利用Rebar.ByCurve 節(jié)點生成桁架鋼筋。
如圖集所示,桁架鋼筋正下方的板底縱筋應(yīng)被桁架鋼筋取代。考慮到程序操作的便捷性與實用性,利用List.FilterByBoolMask 節(jié)點篩選出桁架鋼筋正下方的同向板底縱筋,進而通過節(jié)點List.RemoveItemAtIndex將板底筋中心線列表中重疊的部分進行自動刪除,如圖7 所示。
圖7 查找刪除重疊板底縱筋
2.2.3 吊點加強筋參數(shù)化建模
通過“吊點分布位置”、“吊點距板兩端距離”輸入值生成吊點,系統(tǒng)默認吊點加強筋間距為桁架鋼筋波峰寬度,再根據(jù)“吊點加強筋長度”輸入值對吊點進行坐標變換生成吊點加強筋中心線,最后利用Rebar.ByCurve 節(jié)點生成吊點加強筋。
2.2.4 切角參數(shù)化建模
首先創(chuàng)建基于線的參數(shù)化空心構(gòu)件族并通過File Path 及Document.LoadFamily 節(jié)點進行加載,同上述步驟中獲取板下表面的方法獲取板上表面與其四條邊。通過Element.CopyByVector 節(jié)點根據(jù)板邊個數(shù)對空心族進行復(fù)制,通過節(jié)點FamilyInstance.ByFace對空心構(gòu)件族進行放置。最后利用節(jié)點Element.SetParameterByName 根據(jù)空心族所在邊的尺寸對空心族的長度進行調(diào)整,實現(xiàn)板切角。
2.2.5 預(yù)留洞口參數(shù)化建模
板的預(yù)留洞口包含以煙風(fēng)道洞口為代表的矩形洞口和以管線洞口為代表的圓形洞口兩類。兩者參數(shù)化生成邏輯相同,在此以預(yù)留矩形洞口為例進行闡述。
通過“預(yù)留矩形洞口距板長邊/短邊的距離”、“預(yù)留矩形洞口長/寬”輸入值創(chuàng)建洞口的輪廓,再運用Chynamo 節(jié)點包中的OpeningByClosedPolyCurve 節(jié)點生成洞口。
本參數(shù)化建模程序?qū)I 輸入端參數(shù)進行了一定程度的精簡,如圖8 所示。僅需輸入UI 界面所設(shè)參數(shù)值便可以完成底筋、桁架鋼筋、吊點加強筋以及切角等模型的創(chuàng)建,同時程序可自動判斷并刪除重復(fù)布置的板底鋼筋,簡化了鋼筋建模步驟。通過多選可批量布置同類型疊合板。
圖8 預(yù)制疊合板參數(shù)化建模UI 界面
Revit 的信息寫入寫出功能比較薄弱,裝配式工程項目需要更加高級的信息寫入功能來集成預(yù)制構(gòu)件自身攜帶的大量參數(shù)信息[2]。與此同時,Revit 的輸出功能也不能夠滿足實際工程中對信息的需求。Dynamo 強大的圖元參數(shù)信息讀取和寫入功能可以完善Revit 這一不足,其可對圖元的參數(shù)進行單獨或批量的操作。此外,Dynamo 可借助自帶節(jié)點包與Excel 等外部軟件進行交互。
2.3.1 預(yù)制構(gòu)件參數(shù)信息集成
為了實現(xiàn)BIM 模型上建筑信息的集成以及便于后續(xù)質(zhì)檢信息的快速提取,利用 Parameter.CreateProjectParamete 節(jié)點創(chuàng)建項目參數(shù), 利用Element.SetParameterByName 節(jié)點對創(chuàng)建的參數(shù)進行賦值,使預(yù)制構(gòu)件及其附屬構(gòu)件的尺寸、定位信息等匯總于BIM 模型,如圖9 所示。
圖9 預(yù)制疊合板參數(shù)信息寫入
2.3.2 疊合板外形尺寸信息單智能導(dǎo)出
鑒于裝配式預(yù)制構(gòu)件質(zhì)量的重要影響及現(xiàn)階段預(yù)制構(gòu)件質(zhì)量驗收工作的障礙,通過查閱《裝配式混凝土建筑技術(shù)標準》(GB/T51231-2016)[13]《建筑工程施工質(zhì)量驗收規(guī)范》(GB50300-2013)[14]等相關(guān)規(guī)定,對預(yù)制構(gòu)件進場驗收環(huán)節(jié)涉及到的外形尺寸參數(shù)進行了歸納和總結(jié)。將各檢查項所對應(yīng)的構(gòu)件設(shè)計值作為新的一列插入到表格中,并將整個表格編寫到Dynamo中,可供用戶在選擇待檢疊合板和尺寸信息文件儲存路徑后一鍵導(dǎo)出包含檢查項目、允許偏差、各項具體參數(shù)值及檢驗辦法等內(nèi)容的預(yù)制疊合板外形尺寸信息單。
主要運用Element.GetParameterValueByName 節(jié)點獲取構(gòu)件各項參數(shù)值,利用Data.ExportExcel 節(jié)點將信息單所包含信息寫入Excel。
2.3.3 程序集成
為便于程序的使用,借助Data_Shape 節(jié)點包及Dyno 插件實現(xiàn)了程序輸入?yún)?shù)和程序功能的集成。
(1)輸入?yún)?shù)集成
在相關(guān)可視化編程的編寫工作完成后,程序即可進行目標功能的實現(xiàn)。但本程序需要操作的參數(shù)較多,為了便于用戶操作需要對相關(guān)參數(shù)進行集成。常用的集成方式為將編輯完成的程序?qū)隓ynamo Player 中運行,其導(dǎo)入方式簡單,但運行速度相對緩慢。本研究借助Data-Shape 節(jié)點包,制作了可與Revit 交互選擇的UI。以UI 界面的形式將需要操作的參數(shù)進行集成,并定義了合適的初始默認值,方便用戶使用[15]。
主要節(jié)點有MultipleInputForm ++: 用戶界面;TextBox Data:文本框輸入;Boolean input:布爾輸入;FilePath Data:文件路徑和目錄路徑輸入;SelectModelElements Data:Revit 選 擇 輸 入;ConditionalInput Data:條件輸入;InputGroup Data:對輸入進行分組。
(2)程序功能集成
運用Dyno 插件將Dynamo 程序加載到Revit 工具欄中,使程序可以快速運行,方便用戶使用。操作流程如圖10 所示。
圖10 疊合板參數(shù)化程序功能集成流程圖
設(shè)置完成后重啟Revit,程序即可插入到工具欄中。本研究添加了“疊合板參數(shù)化應(yīng)用程序”選項卡,其包含“疊合板智能拆分”、“疊合板參數(shù)化建?!奔啊巴庑纬叽缧畔沃悄軐?dǎo)出”三個功能區(qū),如圖11 所示。
圖11 疊合板參數(shù)化工具程序界面
北京市某棚戶區(qū)改造回遷安置房為裝配整體式高層建筑,本文項目應(yīng)用其西區(qū)731 地塊。以1#為例,運用疊合板參數(shù)化程序?qū)崿F(xiàn)了標準層樓板的拆分與建模,并對疊合板的尺寸信息單進行了提取,如圖12 所示。以疊合板DBD66-3317 為例對程序的建模和尺寸信息提取效果進行展示,如圖13 ~圖14 所示。將導(dǎo)出的外形尺寸信息單應(yīng)用于疊合板的進場驗收環(huán)節(jié),為質(zhì)檢工作提供了極大的便利,減少了因構(gòu)件質(zhì)量不合格導(dǎo)致的工期延誤。
圖12 疊合板參數(shù)化程序應(yīng)用效果圖
圖13 疊合板DBD66-3317 建成效果圖
圖14 疊合板DBD66-3317 外形尺寸信息單
綜上所述,本文編制了系列疊合板智能應(yīng)用程序,解決了預(yù)制疊合板深化設(shè)計階段和施工階段面臨的難題,拓寬了BIM 技術(shù)在信息管理層次的應(yīng)用范圍,主要成果有以下三個方面。
(1)實現(xiàn)了疊合板的智能化批量拆分。本程序涵蓋多種拆分模式,具有較強的實用性和靈活性且遵循模數(shù)化、標準化拆分的理念;
(2)實現(xiàn)了疊合板的參數(shù)化批量建模。輸入相關(guān)參數(shù)信息即可實現(xiàn)同類型疊合板的批量建模與構(gòu)件參數(shù)信息的集成;
(3)實現(xiàn)了疊合板尺寸信息單的智能導(dǎo)出。為構(gòu)件的質(zhì)量檢驗工作提供了便捷的工具,減輕了質(zhì)檢工作的壓力,加快精益化施工目標的實現(xiàn)。