嚴 旭
(中國電力工程顧問集團西南電力設(shè)計院有限公司,四川 成都 610021)
BIM概念的提出始于上世紀80年代前后,但直至2010年起,BIM技術(shù)才在房屋建筑領(lǐng)域逐漸得到廣泛使用[1]。作為一種新興三維設(shè)計技術(shù),BIM具有可視化、協(xié)調(diào)性、模擬性、優(yōu)化性和可出圖性[2]。Autodesk公司開發(fā)的Revit軟件,能滿足建筑、結(jié)構(gòu)、機電專業(yè)的要求,成為房屋建筑業(yè)使用最廣的BIM軟件之一[3]。
基于Revit平臺,多位專家和學者對結(jié)構(gòu)專業(yè)BIM設(shè)計問題進行研究。龍輝元[4]、喬保娟[5]、楊黨輝[6]、劉照球[7]等研究并實現(xiàn)Revit三維模型和結(jié)構(gòu)分析軟件模型的轉(zhuǎn)換,可用于“翻模”;郝國龍[8]基于Revit建模并創(chuàng)建結(jié)構(gòu)圖紙,董愛平[9]基于Revit人工操作建模并完成梁、板、柱、基礎(chǔ)平法圖。李坤[10]在地鐵車站結(jié)構(gòu)設(shè)計中采用Revit建模并直接導出至Robot Structrue中進行結(jié)構(gòu)分析;趙華英[11]、王勇[12]等在創(chuàng)建Revit模型和平法圖紙后,利用CSIXRevit將模型導出至Etabs中進行結(jié)構(gòu)分析,但均未解決Revit模型和計算模型如何保持動態(tài)一致的問題。
國內(nèi)軟件商長沙恩為軟件、探索者軟件、盈建科軟件相繼自2011~2014年,基于Revit開發(fā)了結(jié)構(gòu)輔助設(shè)計軟件,技術(shù)路線在Revit中讀取計算模型后生成Revit三維模型,一鍵形成各層平面布置圖,在Revit中讀取計算結(jié)果并設(shè)置配筋參數(shù),一鍵形成配筋圖和三維鋼筋[13]。因BIM數(shù)據(jù)來源于計算模型,計算模型變更后,無法正確且高效地更新到Revit中,故此方式只適合先計算再繪圖的設(shè)計方式。
廣廈軟件在2018年開發(fā)了正向設(shè)計軟件GSRevit[14],技術(shù)路線是在Revit三維模型中輸入全部的荷載和參數(shù)后,直接輸出至廣廈結(jié)構(gòu)進行結(jié)構(gòu)計算[15],可在Revit中一鍵形成模板圖和配筋圖。只利用Revit三維模型,與在PDMS、SmartPlant 3D等BIM軟件中進行開發(fā)沒有本質(zhì)區(qū)別。GSRevit看似提供了完整的操作菜單,但又不能完全替代Revit人機界面,直接使用Revit進行的操作可能不被識別。有簡單的使用案例[16-17],但操作過程“一氣呵成”,沒有體現(xiàn)結(jié)構(gòu)設(shè)計期間反復推敲修改的情形。
以Revit和PKPM軟件之間貫通軟件的開發(fā)為例,介紹軟件開發(fā)和測試的具體過程。利用3個已完工的混凝土框架結(jié)構(gòu)進行SATWE計算結(jié)果的對比驗證,與原SATWE計算結(jié)果進行對比,結(jié)果均100%一致。在實際工程中選擇了3個中小規(guī)模的混凝土框架結(jié)構(gòu)進行BIM正向設(shè)計[18]。旨在為BIM平臺軟件指明亟需升級完善的問題,為第三方軟件商規(guī)劃產(chǎn)品路線指明方向。
對結(jié)構(gòu)設(shè)計的工作內(nèi)容進行梳理,可劃分三個部分:“協(xié)同”“圖紙”“計算”?!皡f(xié)同”是專業(yè)內(nèi)、專業(yè)外的配合;“圖紙”是圖紙及統(tǒng)計表;“計算”是計算模型、計算過程及計算書[19]。二維CAD設(shè)計,“協(xié)同”主要依靠二維CAD的反復交互,“圖紙”與“計算”是割裂的、需要人工維護二者的一致性[19]。BIM技術(shù)的出現(xiàn),其可視化、協(xié)調(diào)性、模擬性,是解決專業(yè)內(nèi)外的“協(xié)同”的獨特優(yōu)勢。通過Revit混凝土框架[20]、Revit鋼結(jié)構(gòu)框架[21-22]、Revit埋件[23]的設(shè)計出圖實例可知,在Revit中,不需要借助任何插件就能解決“圖紙”的問題,結(jié)構(gòu)工程師通過人工操作,可以方便地創(chuàng)建和推敲BIM模型,方便地創(chuàng)建Revit平、立、剖布置圖,完成結(jié)構(gòu)的布置設(shè)計,設(shè)計總說明、配筋圖、節(jié)點詳圖等與模型無關(guān)或關(guān)系較小的可以在二維CAD中繪制,也可以逐漸在Revit中積累??梢钥闯觯Y(jié)構(gòu)BIM設(shè)計,關(guān)鍵問題是如何實現(xiàn)“計算”的問題。Revit中人工創(chuàng)建的三維模型,可以很方便地指定為Revit分析模型,若在Revit中添加全部的荷載和參數(shù),全覆蓋地輸出為計算軟件所需的源數(shù)據(jù),甚至直接調(diào)用結(jié)構(gòu)計算軟件運行結(jié)構(gòu)分析[24],避免了模型反復傳導時的更新問題,能最終解決結(jié)構(gòu)設(shè)計的“計算”問題。
故確定本次開發(fā)的技術(shù)路線:基于Revit分析模型,補充所有荷載和計算所需的參數(shù)后,輸出為結(jié)構(gòu)計算軟件的原始數(shù)據(jù)文件“.jws”;直接調(diào)用結(jié)構(gòu)計算軟件運行“結(jié)構(gòu)分析”;在Revit中讀取內(nèi)力和配筋并進行后處理,如圖1所示。其實質(zhì)是在Revit中嵌入結(jié)構(gòu)計算軟件的前處理和后處理,最終可實現(xiàn)在Revit中直接調(diào)用結(jié)構(gòu)計算軟件進行“結(jié)構(gòu)分析”,且只使用“結(jié)構(gòu)分析”功能。
圖1 Revit結(jié)構(gòu)設(shè)計插件技術(shù)路線
我院常用的結(jié)構(gòu)計算軟件是PKPM和STAAD.PRO,混凝土結(jié)構(gòu)通常采用PKPM軟件的PM+SATWE模塊進行計算。PM為前處理模塊,SATWE是基于墻元理論的結(jié)構(gòu)高層建筑結(jié)構(gòu)空間有限元分析軟件[25],PM和SATWE的原始數(shù)據(jù)都存貯在“.jws”文件中。
2017年3月立項開發(fā)Revit與PKPM軟件PM、SATWE模塊的貫通軟件,命名為ReviSTRU,只開發(fā)在Revit中補全荷載、補全PM和SATWE參數(shù)、輸出“.jws”文件的功能。Revit中導入PKPM內(nèi)力和配筋結(jié)果,在Revit中生成梁、板、柱配筋圖,因現(xiàn)有結(jié)構(gòu)輔助設(shè)計軟件已有開發(fā),故本次不開發(fā)。編程語言采用microsoft公司發(fā)布的面向?qū)ο蟮木幊陶Z言C#。
ReviSTRU與現(xiàn)有結(jié)構(gòu)輔助設(shè)計軟件的重要區(qū)別在于:
1)結(jié)構(gòu)工程師先在Revit中人工創(chuàng)建Revit三維模型、Revit圖紙。不需要讀取結(jié)構(gòu)計算軟件中的模型,也不需要做自動成圖的功能;
2)解析Revit分析模型后,以覆蓋的方式輸出計算軟件的源數(shù)據(jù)文件,不存在模型數(shù)據(jù)的更新問題;
3)能夠?qū)崿F(xiàn)在Revit中直接調(diào)用結(jié)構(gòu)計算軟件并運行結(jié)構(gòu)計算。
ReviSTRU主界面功能菜單(圖2)有如下功能:添加荷載、設(shè)計參數(shù)(含樓層信息、PM設(shè)計參數(shù)、SATWE設(shè)計參數(shù)、角柱設(shè)置)、約束釋放(鋼構(gòu)件約束對比、砼構(gòu)件約束對比、約束識別、桿件角度表、材料等級表)、分析設(shè)置、上部分析。
圖2 ReviSTRU功能菜單主界面
在Revit中,荷載工況的添加與修改,可以利用Revit內(nèi)置的“分析→分析模型→結(jié)構(gòu)設(shè)置→荷載工況”功能,不需要二次開發(fā)。
需要注意,從Revit2012~2022版,Revit一直只有6種荷載工況(圖3)。前3種是空間荷載,與構(gòu)件無關(guān)聯(lián);后3種主體荷載雖與構(gòu)件有關(guān)聯(lián),但僅能表示構(gòu)件兩端的節(jié)點荷載、沿構(gòu)件通長分布的線荷載、整個樓板上的面荷載。Revit不直接支持的荷載,目前只能用空間荷載模擬。故在本次開發(fā)中需要對荷載進行“刷新”:當構(gòu)件被移動時,荷載相應移動;當構(gòu)件被刪除時,荷載相應刪除。
圖3 Revit內(nèi)置的6種荷載工況
各荷載工況下荷載的添加、修改、刪除,需要二次開發(fā),具體為節(jié)點荷載、桿件荷載(均布荷載、均布彎矩、集中力、集中彎矩、線性變化力、梯形分布荷載、柱側(cè)荷載)、樓板荷載、自重荷載(圖4)。在Revit中,荷載的正負值按世界坐標系的方向,荷載垂直向下時為負,在輸出“.jws”文件時轉(zhuǎn)換為PKPM默認的向下為正。
圖4 ReviSTRU中可添加的荷載
在ReviSTRU中荷載輸入界面中,在荷載工況上單擊右鍵,將出現(xiàn)“添加荷載”及荷載的修改、刪除等功能(圖5左)。在具體荷載上單擊右鍵,將出現(xiàn)“單選施加荷載”和“批量施加荷載”等功能(圖5右),在Revit分析模型中選擇節(jié)點或構(gòu)件后,即可施加荷載。在Revit中不宜與PM一樣在平面圖上輸入樓板荷載,故結(jié)合Revit的特點進行改進:施加樓板荷載時,只需要在Revit分析模型的三維視圖中單擊樓板,自動搜索該點樓板周邊的梁所圍成的區(qū)域,用Revit的空間面荷載表示該樓板的面荷載。
圖5 ReviSTRU添加荷載與施加荷載
輸出“.jws”,必須明確標準層及層高。逐層設(shè)置樓層信息相當不便,故開發(fā)樓層信息對話框(圖6),在Revit中讀取所有的標高列表,勾選是否設(shè)定為PKPM的標準層,層高則由軟件自動計算,并定義各層梁、板、柱、墻默認的混凝土強度、鋼筋強度、配筋率。
圖6 ReviSTRU的樓層信息
Revit模型是實際的模型,故不存在標準層的概念。輸出“.jws”時,Revit中每個自然層就是一個標準層,不考慮標準層合并。對于不屬于標準層的構(gòu)件,按層間構(gòu)件(梁、板、柱)考慮。
對于需要單獨設(shè)定材質(zhì)的構(gòu)件,直接在Revit的“結(jié)構(gòu)材質(zhì)”中設(shè)定(圖7)。ReviSTRU會搜索構(gòu)件的“結(jié)構(gòu)材質(zhì)”是否含“Cxx”“Q235”“Q345”等強度值,若有,則會單獨設(shè)定該構(gòu)件(梁、板、柱、墻)的指定強度值。
圖7 ReviSTRU構(gòu)件特定強度的設(shè)定
在ReviSTRU中,需輸入PM和SATWE所需的全部參數(shù),故開發(fā)這些參數(shù)全部的輸入界面?!?jws”是二進制加密文件,目前只掌握2.x版“.jws”格式,無法輸出新版“.jws”格式,故目前采取的措施是對不能保存到2.x版的參數(shù)予以提示。因現(xiàn)版SATWE不能直接打開2.x版“.jws”文件,故每次輸出“.jws”后,必須用PM打開并更新數(shù)據(jù)格式。
PM參數(shù)對話框,用綠色表示無法輸出的參數(shù),并在下方以文字注明(圖8)。例如,“矩形房間導荷載,邊被打斷時,將大梁上的梯形、三角形荷載拆分到小梁上”“鋼框架抗震等級”“抗震構(gòu)造措施的抗震等級”,若實際取值恰巧是當前PM的默認值,則不用在PM中修改。否則,每次結(jié)構(gòu)計算前都必須使用PM修改。對于既可在PM參數(shù)中設(shè)定又可在SATWE中設(shè)定的參數(shù),用藍色表示。
圖8 ReviSTRU的PM設(shè)計參數(shù)——地震信息
SATWE參數(shù)對話框,用紅色表示無法輸出的參數(shù),并在下方以文字注明(圖9)。若實際取值恰巧是當前SATWE的默認值,則不用在SATWE中修改,否則,每次結(jié)構(gòu)計算前都必須使用SATWE修改。
圖9 ReviSTRU的SATWE設(shè)計參數(shù)——地震信息
在SATWE前處理的特殊構(gòu)件中,需要設(shè)定角柱。Revit沒有角柱信息的存放位置,故在構(gòu)件族中創(chuàng)建一個“結(jié)構(gòu)性質(zhì)”的實例參數(shù),用于存放角柱信息。在ReviSTRU中,有必要增加“角柱設(shè)置”功能(圖10),讀取并羅列所有桿件的是否為角柱,且與構(gòu)件聯(lián)動:在模型里選中構(gòu)件,則表中自動跳轉(zhuǎn)至該構(gòu)件的角柱與否情況;在表中雙擊某行,則模型中予以高亮顯示該行所對應的構(gòu)件。
圖10 ReviSTRU的角柱設(shè)置
在Revit分析模型中,可以人工干預構(gòu)件起點、終點的約束釋放,但不能直接觀察各構(gòu)件的約束釋放情況。故有必要在ReviSTRU中增加“鋼構(gòu)件約束對比”和“砼構(gòu)件約束對比”功能(圖11),讀取并羅列所有桿件的兩端約束情況,且與構(gòu)件聯(lián)動:在模型里選中構(gòu)件,則表中自動跳轉(zhuǎn)至該構(gòu)件的約束釋放情況;在表中雙擊某行,則模型中予以高亮顯示該行所對應的構(gòu)件。
圖11 ReviSTRU的混凝土構(gòu)件約束對比
在Revit中,不能直接觀察構(gòu)件的自轉(zhuǎn)角度。故有必要在ReviSTRU中增加“桿件角度表”功能(圖12),讀取所有桿件的自轉(zhuǎn)角度,且與構(gòu)件聯(lián)動:在模型里選中構(gòu)件,則表中自動跳轉(zhuǎn)至該構(gòu)件的轉(zhuǎn)角;在表中雙擊某行,則模型中予以高亮顯示該行所對應的構(gòu)件。
圖12 ReviSTRU的桿件角度表
在Revit中,不便于直觀查看各構(gòu)件的強度。故有必要在ReviSTRU中增加“材料等級表”功能,如圖13所示,讀取所有桿件的材料強度,且與構(gòu)件聯(lián)動:在模型里選中構(gòu)件,則表中自動跳轉(zhuǎn)至該構(gòu)件的強度;在表中雙擊某行,則模型中予以高亮顯示該行所對應的構(gòu)件。
圖13 ReviSTRU的材料強度等級表
輸出“.jws”文件,默認只讀取分析模型,分析軟件選擇“ePKPM”,如圖14所示。
圖14 ReviSTRU的分析模型設(shè)置
在Revit中布置樓板時,按整塊樓板建模即可,沒有必要基于梁的位置分塊建板。ReviSTRU會在輸出到“.jws”文件時,根據(jù)梁的分析線劃分樓板。樓板上的矩形和圓形孔洞,輸出到“.jws”文件時,是100%的真實輸出,如圖15所示。經(jīng)測試發(fā)現(xiàn),SATWE在進行結(jié)構(gòu)計算時,會扣除孔洞區(qū)域的樓面荷載。
圖15 ReviSTRU的分析模型設(shè)置
單擊“上部分析”按鈕,ReviSTRU即按“分析設(shè)置”的設(shè)定輸出“.jws”文件,先在Revit模型文件所在目錄下創(chuàng)建 “Revi2SATWE計算模型” 子目錄(圖16),然后解析Revit分析模型中的梁、板、柱等構(gòu)件,將構(gòu)件在交點處打斷,將Revit中的各個恒載工況均合并到PM的恒載中,將Revit中的各個活載工況都合并到PM的活載中,并將PM和SATWE參數(shù)直接寫入“.jws”(圖17)。因不能實現(xiàn)直接調(diào)用PM或SATWE,故每次輸出“.jws”文件時,ReviSTRU均會打開“Revi2SATWE計算模型”目錄,以提示結(jié)構(gòu)工程師程序輸出已完成。
圖16 ReviSTRU的創(chuàng)建的子目錄“Revi2SATWE計算模型”
圖17 子目錄“Revi2SATWE計算模型”中的文件
軟件測試分為三個階段:模塊測試、整體測試、對比驗證。
軟件開發(fā)期間,跟隨軟件模塊的開發(fā)進行模塊測試,對每個具體的模塊進行反復測試與優(yōu)化,直到輸出正確的結(jié)果。
2019年軟件開發(fā)完成后,進行軟件的整體測試。ReviSTRU輸出“.jws”后,在PM和SATWE中打開并檢查構(gòu)件、荷載、參數(shù),反復測試與優(yōu)化,直到與ReviSTRU中的輸入完全一致。
完成整體測試后,就實現(xiàn)了本次開發(fā)的目標。但是不能肯定SATWE運行結(jié)果是否正確,有沒有其它問題,故有必要與已完成的實際工程進行對比驗證??紤]到建模的工作量,選擇3個中等體量且已完工的混凝土框架結(jié)構(gòu)進行對比驗證,具體操作為:對照結(jié)構(gòu)施工圖和計算模型,在Revit中人工創(chuàng)建Revit模型,使用ReviSTRU在Revit中完成荷載輸入、PM和SATWE參數(shù)輸入,輸出2.x版的“.jws”后,先用PM打開并更新數(shù)據(jù)格式,再采用SATWE進行計算,最終要能得到與已有計算模型完全一致的計算結(jié)果。
對比驗證發(fā)現(xiàn),在模型一致、參數(shù)一致的情況下,SATWE中各荷載工況的構(gòu)件彎矩、剪力、軸力、配筋、位移、地震效應,及指標匯總信息、柱腳內(nèi)力等等,都與對照模型100%一致。在PKPM的“砼施工圖”模塊中,梁、板、柱在同樣的配筋參數(shù)下,實際配筋結(jié)果與對照模型也是100%一致。通過對比驗證,以事實證明軟件輸出結(jié)果可信,可以用于工程設(shè)計。
2020年,選擇3個中小規(guī)模的混凝土框架結(jié)構(gòu)進行工程應用。操作步驟與對比驗證相同,不同之處在于沒有對比模型,不使用AutoCAD,直接在Revit中建模進行正向結(jié)構(gòu)設(shè)計,在Revit中完成全部圖紙。
第一個是某項目危廢儲存間結(jié)構(gòu)(圖18),單層,荷載較為簡單,只有樓面荷載、女兒墻線荷載,施工圖共3張,均放在一個Revit圖紙視圖中。
第二個是某項目凝結(jié)水回收泵房結(jié)構(gòu)(圖19),2層,荷載也較為簡單,只有樓面荷載、女兒墻線荷載,施工圖共3張,在Revit圖紙視圖分開放置。
圖18 某項目危廢儲存車間結(jié)構(gòu)
圖19 某項目凝結(jié)水回收泵房結(jié)構(gòu)
第三個是某項目消防值班樓結(jié)構(gòu)[20],4層,有節(jié)點荷載、梁集中力、梁線荷載、多種樓面荷載,每個Revit圖紙視圖放置一張施工圖(圖20)。
圖20 某項目消防值班樓結(jié)構(gòu)
因當前使用的SATWE不能直接打開ReviSTRU輸出的2.x版的“.jws”文件,故每次進行結(jié)構(gòu)計算之前,必須先用PM打開并更新“.jws”文件,順便設(shè)置ReviSTRU中不能設(shè)定的PM參數(shù),再用SATWE前處理設(shè)置ReviSTRU中不能設(shè)定的SATWE參數(shù),最后運行SATWE進行結(jié)構(gòu)計算。
完成SATWE結(jié)構(gòu)計算之后,在PKPM中設(shè)定梁、板、柱的配筋參數(shù),完成梁、板、柱的配筋。當Revit中的結(jié)構(gòu)模型有修改時,重新用ReviSTRU輸出“.jws”文件即可,梁、板、柱的配筋參數(shù)依舊存在,重新生成梁、板、柱的鋼筋即可。
通過ReviSTRU的開發(fā)、測試、驗證及應用案例,證實在Revit中完成結(jié)構(gòu)計算軟件前處理功能、輸出結(jié)構(gòu)計算軟件所需的全部數(shù)據(jù)是可行的,避免了BIM模型和計算模型相互之間的“更新”問題。
當前版本Revit自帶的荷載類型太少,很多荷載都只能用Revit空間荷載模擬。構(gòu)件變動后,需要重新將荷載與構(gòu)件匹配。若每一步修改都自動刷新荷載,可能導致臨時不能與構(gòu)件匹配的荷載丟失,當模型較大時,還會產(chǎn)生等待時間,故目前選擇人工“刷新”荷載的方式。用空間荷載模擬顯示的樓板荷載,在梁移動后還是發(fā)現(xiàn)有未更新到位的情況,需要進一步優(yōu)化算法解決。最終的解決辦法是AutoDESK公司完善Revit的荷載類型,包括樓板荷載的輸入與剖分,使用空間荷載而產(chǎn)生的問題將不復存在。
目前沒有開發(fā)其他SATWE特殊構(gòu)件的對應設(shè)置,只完善了梁、板、柱相關(guān)的功能,用于框架結(jié)構(gòu)、框架支撐結(jié)構(gòu)的Revit正向設(shè)計。進一步,可以開發(fā)與“墻”相關(guān)的功能,實現(xiàn)剪力墻結(jié)構(gòu)的正確輸出。
目前每次輸出的“.jws”文件,必須用PM打開才能更新,才能被SATWE識別。若PKPM開放數(shù)據(jù)結(jié)構(gòu)和SATWE調(diào)用接口,可以實現(xiàn)在Revit中直接調(diào)用SATWE運行其“計算功能”,則可以不必使用PM。
將結(jié)構(gòu)計算軟件的前處理、后處理都嵌入Revit中,結(jié)構(gòu)設(shè)計時甚至只需要調(diào)用結(jié)構(gòu)計算軟件運行其“計算”功能。在Revit中進行結(jié)構(gòu)正向設(shè)計和計算,不需要在AutoCAD中繪制圖紙、也不需要在結(jié)構(gòu)計算軟件中建模,利于結(jié)構(gòu)工程師專注于“設(shè)計”。對于沒有“出圖”功能的結(jié)構(gòu)計算軟件如STAAD、MIDAS,可以彌補其不足,在Revit中完成后處理。
將來實現(xiàn)直接調(diào)用結(jié)構(gòu)計算軟件運行分析計算時,可以考慮歸集到少量的幾臺服務端進行計算,計算結(jié)果則通過內(nèi)網(wǎng)返回用戶端,能大大節(jié)省購買結(jié)構(gòu)計算軟件的費用。