丁曉宇 王子茹
(大連理工大學(xué)建設(shè)工程學(xué)部,遼寧 大連 116024)
·計算機技術(shù)及應(yīng)用·
基于Revit二次曲面網(wǎng)殼參數(shù)化建模的研究
丁曉宇 王子茹*
(大連理工大學(xué)建設(shè)工程學(xué)部,遼寧 大連 116024)
針對Revit二次開發(fā)的參數(shù)化設(shè)計技術(shù)問題,使用C#編程語言和API類庫,結(jié)合JGJ 7—2010空間網(wǎng)格結(jié)構(gòu)技術(shù)規(guī)程,開發(fā)出了單層二次曲面網(wǎng)殼結(jié)構(gòu)的參數(shù)化設(shè)計插件,實現(xiàn)了二次曲面網(wǎng)殼結(jié)構(gòu)在Revit視圖中的自動生成。
Revit,二次開發(fā),二次曲面網(wǎng)殼,參數(shù)化設(shè)計
網(wǎng)殼是一種空間桿系結(jié)構(gòu),具有造型優(yōu)美、受力合理、造價低等特點,備受建筑師青睞,多用于體育場館、會展中心等公共建筑物中[1]。常見網(wǎng)殼結(jié)構(gòu)形式有圓柱面網(wǎng)殼、球面網(wǎng)殼、雙曲拋物面網(wǎng)殼、橢圓拋物面網(wǎng)殼等。該結(jié)構(gòu)節(jié)點和桿件數(shù)量巨大,但傳統(tǒng)的設(shè)計方法仍是以手工建模為主。近年來,隨著信息技術(shù)的飛速發(fā)展,計算機及相關(guān)軟件在網(wǎng)殼結(jié)構(gòu)設(shè)計領(lǐng)域中的應(yīng)用日益廣泛[2,3],尤其是建筑信息模型(BIM)技術(shù)的出現(xiàn),大大提高了網(wǎng)殼設(shè)計及施工的效率[4]。
作為BIM重要建模軟件之一的Revit,因具有友好的界面和便捷的使用性及參數(shù)化設(shè)計理念,成為應(yīng)用研究的熱點。文獻(xiàn)[5]通過對Revit Structure進(jìn)行二次開發(fā),實現(xiàn)了單層球面網(wǎng)格的參數(shù)化生成。文獻(xiàn)[6]闡述了如何利用概念體量進(jìn)行空間網(wǎng)架的建模和工程量統(tǒng)計。從已有文獻(xiàn)看,Revit二次曲面網(wǎng)殼設(shè)計主要是依賴于菜單欄命令,對于需要處理大量坐標(biāo)數(shù)據(jù)的網(wǎng)殼模型工作量大且易出錯。
本文在已有研究成果的基礎(chǔ)上,結(jié)合網(wǎng)殼建模過程,應(yīng)用Revit API實現(xiàn)具有對橢圓拋物面、雙曲拋物面等網(wǎng)殼結(jié)構(gòu)的快速建模功能。
本文基于Visual Studio2010程序設(shè)計平臺,使用C#編程語言,通過API 接口對建模功能實現(xiàn)擴展。程序開發(fā)主要分成兩部分,建模功能的實現(xiàn)及用戶界面的生成。
1.1 建模過程
Revit二次開發(fā)要遵循API的應(yīng)用流程,程序設(shè)計步驟如圖1所示。創(chuàng)建模型的過程在Execute()方法里實現(xiàn)。通過XYZ()確定節(jié)點坐標(biāo),ReferencePointArray()創(chuàng)建并儲存節(jié)點和CurveByPoints()函數(shù)創(chuàng)建桿系軸線,完成基本模型的繪制。
1.2 界面生成
通過IExternal Command接口派生類,在OnStratup和OnShutup函數(shù)里創(chuàng)建Ribbon控件,實現(xiàn)在工具欄“附加模塊”中添加下拉按鈕功能。用戶可以通過點擊按鈕輸入控制參數(shù)完成網(wǎng)殼模型創(chuàng)建。
該插件共定義三種常用單層二次曲面網(wǎng)殼模型類,包括橢圓拋物面、雙曲拋物面及對數(shù)拋物面(見圖2)。因此在用戶界面中創(chuàng)建三組下拉菜單,根據(jù)桿件布置的不同,每組菜單中包含2種~3種網(wǎng)殼形式。
2.1 幾何描述與控制參數(shù)
以雙曲拋物面為例(如圖3所示),雙曲拋物面是由一直母線(AD)沿兩條交叉的兩直導(dǎo)線(AB,CD)運動,運動中所有素線始終平行某一導(dǎo)平面(平面Q)而形成的曲面[7]。如果能在曲面上找到若干個等分點,取為節(jié)點,通過桿件連接就可以最大程度擬合雙曲拋物面網(wǎng)殼骨架。
如圖3所示,根據(jù)雙曲拋物面的成形可知,控制一個雙曲拋物面網(wǎng)殼的主要幾何參數(shù)有:直導(dǎo)線水平投影ab長(a)、導(dǎo)線間距離水平投影寬ad(b)、矢高Aa,Cc(f1,f2)及劃分網(wǎng)格數(shù)(Kn,Kx)。
2.2 模型構(gòu)建
根據(jù)現(xiàn)行JGJ 7—2010空間網(wǎng)格技術(shù)規(guī)程,雙曲拋物面分為桿件沿直紋布置和桿件沿主曲率布置兩種,本文以桿件沿主曲率布置為例詳細(xì)介紹該網(wǎng)殼幾何建模方法。
2.2.1 節(jié)點坐標(biāo)創(chuàng)建
根據(jù)規(guī)程單層雙曲拋物面網(wǎng)殼跨度不宜大于60 m,限制兩條導(dǎo)線長度及距離。以矢高為跨度1/2~1/4為設(shè)計基準(zhǔn)控制基線空間表達(dá)式的斜率及節(jié)點坐標(biāo)間距。
兩條基線空間表達(dá)式為:
AB:z=k1x。
其中,k1=f1/a(0≤x≤a)。
CD:z=k2x+c。
其中,k2=-f2/a,c=f2(0≤x≤a)。
按照設(shè)計要求將AB,CD兩條導(dǎo)線等分,等分?jǐn)?shù)為Kn,則每條導(dǎo)線上節(jié)點數(shù)為Kn+1。其他節(jié)點可以通過導(dǎo)線上各節(jié)點依次連線后定量等分各線段得到。