李亞克 于海豐 王國(guó)鑫2 高二軍 潘洪潔 祁昕
(1. 河北科技大學(xué) 建筑工程學(xué)院,石家莊 050018; 2. 北京橄欖山軟件有限公司,北京 100095)
BIM(Building Information Modeling)是以建筑工程項(xiàng)目的各相關(guān)信息數(shù)據(jù)作為模型的基礎(chǔ),進(jìn)行建筑模型的建立,通過數(shù)字信息仿真模擬建筑物所具有的真實(shí)信息。它具有可視化、協(xié)調(diào)性、模擬性、優(yōu)化性和可出圖性等特點(diǎn),BIM可以實(shí)現(xiàn)建筑全生命周期的信息共享,對(duì)于項(xiàng)目的可視化管理以及項(xiàng)目各參與方的信息共享傳遞具有很大優(yōu)勢(shì)[1-2],受到行業(yè)者的青睞;但是,對(duì)于給水排水工程的設(shè)計(jì),很多技術(shù)還停留在二維手段上,缺乏先進(jìn)的BIM技術(shù)作為支撐,這其中因涉及到的因素包括外在的利益和內(nèi)在的實(shí)際應(yīng)用;其中,對(duì)于內(nèi)在因素來說,由于軟件的熟悉程度不夠,加上國(guó)內(nèi)的一些規(guī)范的限制,嚴(yán)重的影響了BIM技術(shù)在國(guó)內(nèi)的發(fā)展。
建筑給水排水工程設(shè)計(jì)是建筑工程設(shè)計(jì)中重要的組成部分,通常,建筑給水排水工程管道種類多,數(shù)量大,且布置復(fù)雜;涉及到的材料種類豐富,不同的管材的摩阻系數(shù)不同,計(jì)算較為復(fù)雜?,F(xiàn)階段,建筑給水排水工程設(shè)計(jì)通常存在工作效率低下,可視化程度差;協(xié)調(diào)困難;設(shè)計(jì)中常與其他專業(yè)發(fā)生沖突等問題。而在BIM信息模型中,所有的給水排水管道和設(shè)備都是三維的,而且尺寸與實(shí)際空間吻合,表現(xiàn)得生動(dòng)具體;能夠即時(shí)看到其它專業(yè)的內(nèi)容,交流順暢,解決管道空間碰撞問題;自動(dòng)管理圖紙,統(tǒng)計(jì)材料,并能以表格的形式輸出,極大地提高了效率。能對(duì)給水排水管道中的水流進(jìn)行模擬,進(jìn)行復(fù)雜的水力計(jì)算,則采用BIM技術(shù)創(chuàng)建給水排水管道和設(shè)備是必需的前提[3]。并且,還能通過BIM相關(guān)軟件的二次開發(fā)技術(shù),間接支持了各專業(yè)軟件之間數(shù)據(jù)的互通,極大地提高了協(xié)同性。
本文參考了《室外排水設(shè)計(jì)規(guī)范》(GB 50014-2006)[4],研究了基于BIM技術(shù)在給水排水工程設(shè)計(jì)中的應(yīng)用時(shí),通過Revit二次開發(fā)技術(shù),實(shí)現(xiàn)了在進(jìn)行給排水管道坡度調(diào)整時(shí),批量調(diào)整管道管徑與坡度值的對(duì)應(yīng)關(guān)系。同時(shí),利用工程實(shí)際進(jìn)行了驗(yàn)證。
根據(jù)《室外排水設(shè)計(jì)規(guī)范》(GB50014-2006)第4.2.10條規(guī)定,排水管道的最小管徑與相應(yīng)最小設(shè)計(jì)坡度的規(guī)定取值是:污水管最小管徑d=300mm時(shí),相應(yīng)最小設(shè)計(jì)坡度 塑料管0.002、其他管0.003。雨水管最小管徑d=300mm時(shí),相應(yīng)最小設(shè)計(jì)坡度塑料管0.002、其他管0.003。隨著城鎮(zhèn)建設(shè)發(fā)展,街道樓房增多,排水量增大,應(yīng)適當(dāng)增大最小管徑,并調(diào)整最小設(shè)計(jì)坡度。常用管徑的最小設(shè)計(jì)坡度,可按設(shè)計(jì)充滿度下不淤流速控制,當(dāng)管道坡度不能滿足不淤流速要求時(shí),應(yīng)有防淤、清淤措施。
室內(nèi)排水管坡度的設(shè)定和室外排水管坡度不同,室內(nèi)的設(shè)計(jì)相對(duì)來說面臨的狀況更加復(fù)雜,所以一般都不在分區(qū)域、分方位進(jìn)行單獨(dú)計(jì)算而是采取一個(gè)特定的數(shù)值,直接確定排水管坡度。這樣的排水管坡度一般在驗(yàn)收規(guī)范等相關(guān)的文件中都有明確的規(guī)定,在進(jìn)行室內(nèi)裝修的時(shí)候,業(yè)主和設(shè)計(jì)施工人員一定要了解相關(guān)的驗(yàn)收規(guī)范,確定相關(guān)排水管坡度的標(biāo)準(zhǔn)值、最小坡度值以及支點(diǎn)之間的規(guī)范間距,才能更好地完成室內(nèi)排水的流暢設(shè)計(jì)。排水管坡度和所用排水管道的材質(zhì)有關(guān)系,一般來說鑄鐵材質(zhì)的管道,由于其摩擦系數(shù)比較大,所以在設(shè)計(jì)排水管坡度時(shí),其坡度的設(shè)計(jì)要大于塑料排水管道。
通常情況下,給排水管道的坡度值公式為:
(1)
式中:
i——給排水管道的坡度;
h——管首的管底標(biāo)高;
h0——管尾管底標(biāo)高;
l——管總長(zhǎng);
在實(shí)際設(shè)計(jì)中室內(nèi)排水管坡度都是不采用計(jì)算的方法的,因?yàn)橛?jì)算過程設(shè)計(jì)到材質(zhì)和摩擦系數(shù),過程相對(duì)復(fù)雜,通常采用定值,如表1和表2所示。
表1 塑料管的管徑與坡度對(duì)應(yīng)關(guān)系表
表2 鑄鐵管的管徑與坡度對(duì)應(yīng)關(guān)系表
本文根據(jù)坡度方向、起點(diǎn)標(biāo)高設(shè)置和坡度設(shè)置三個(gè)參數(shù)來確定給排水放坡系統(tǒng)功能,其中,設(shè)計(jì)工作流程圖如圖1所示。
圖1 給排水放坡系統(tǒng)設(shè)計(jì)流程圖
本文介紹的二次開發(fā)是基于Revit2016版本,主要開發(fā)工具為Visual Studio2012、通過使用Revit API(Application Programming Interface)、Revit Lookup以及Revit Add In Manager,用C#語言完成給排水系統(tǒng)放坡的插件開發(fā)。
如圖2所示,Revit API是建立在Revit產(chǎn)品的基礎(chǔ)之上,它是一個(gè)類庫,里面包含了二次開發(fā)使用的一些命名空間,以及命名空間下的類和類中包含的函數(shù)和屬性,需要在Revit運(yùn)行時(shí)才能工作,通過API,開發(fā)人員可以通過這些接口訪問Revit,可以添加用戶基于Revit API開發(fā)的插件來擴(kuò)展和增強(qiáng)Revit的功能和應(yīng)用[2]。
使用Revit API具體可以做到:訪問模型的圖形數(shù)據(jù)和參數(shù)數(shù)據(jù);創(chuàng)建、修改、刪除模型元素;創(chuàng)建插件來完成對(duì)UI的增強(qiáng);創(chuàng)建插件來完成對(duì)一些重復(fù)工作的自動(dòng)化;集成第三方應(yīng)用來完成諸如連接到外部數(shù)據(jù)庫、轉(zhuǎn)換數(shù)據(jù)到反洗應(yīng)用等;執(zhí)行一切種類的BIM分析;自動(dòng)創(chuàng)建項(xiàng)目文檔[5]。
圖2 Revit2016 API
Revit Lookup是Autodesk開發(fā)的插件,它可以幫助開發(fā)人員在開發(fā)過程中通過Lookup查找所需要的信息,大大的提高了開發(fā)人員的編碼效率。
Revit Add In Manager也是Autodesk開發(fā)的插件,用于加載開發(fā)人員外部編寫的動(dòng)態(tài)庫,對(duì)于Revit二次開發(fā)調(diào)試過程,極大地提高了代碼調(diào)試的效率,其優(yōu)點(diǎn)就是不用重新啟動(dòng)Revit就可以修改代碼并再次進(jìn)行加載和運(yùn)行。
本文講述的二次開發(fā)最終創(chuàng)建的文件為外部.dll文件,創(chuàng)建的平臺(tái)為Visual Studio2012(簡(jiǎn)稱VS),基于的模板為類庫。開發(fā)的語言為C#語言,C#語言作為一門簡(jiǎn)單、現(xiàn)代、優(yōu)雅、面向?qū)ο?、類型安全、平臺(tái)無關(guān)的一門新型組件編程語言,憑借著其源自C/C++的語法風(fēng)格,融合了Visual Basic的高效和C/C++的強(qiáng)大,再加上其創(chuàng)新的語言特性,剛一出世,就深受世界各地程序員的好評(píng)和喜愛,成為一顆耀眼的明星[6]。結(jié)合了Revit2016提供的外部接口,實(shí)現(xiàn)在Revit2016中的給排水系統(tǒng)放坡功能。
采用Visual Studio2012,對(duì)Revit2016進(jìn)行二次開發(fā),具體步驟:新建項(xiàng)目,啟動(dòng)VS2012,新建一個(gè)Visual C#類庫項(xiàng)目,修改文件重命名。VS2012自動(dòng)生成C#類文件,同時(shí)修改類文件重命名。添加引用,在Visual Studio2012菜單欄中點(diǎn)擊項(xiàng)目→添加引用,在彈出的“添加引用”對(duì)話框中,選“瀏覽”標(biāo)簽,選擇Revit2016安裝文件根目錄下的Revit API.dll和Revit APIUI.dll兩個(gè)動(dòng)態(tài)鏈接庫,完成添加。需注意,在屬性中將Revit中的兩個(gè).dll引用的“復(fù)制”到本地改為“false”,這樣避免復(fù)制文件到本地目錄。代碼編寫,在.cs文件下引用命名空間代碼區(qū)添加Autodesk. Revit. DB、Autodesk. Revit. UI等引用,創(chuàng)建命令類,創(chuàng)建一個(gè)IExternalCommand派生類,實(shí)現(xiàn)接口,并在Execute()方法中編寫實(shí)現(xiàn)功能的代碼。在VS的解決資源方案下生成程序,在輸出窗口中找到.dll文件輸出的位置。執(zhí)行插件,啟動(dòng)Revit2016,在功能區(qū)的附加模塊中,在Add-In-Manager中的Load下輸入.dll文件的位置,運(yùn)行執(zhí)行插件。調(diào)試插件,在編碼、運(yùn)行過程中可能會(huì)遇到各種問題,因此需要進(jìn)行斷點(diǎn)調(diào)試檢查當(dāng)前變量和對(duì)象的狀態(tài)來定位問題[7-9]。
軟件的主要功能是在Revit2016中加入批量調(diào)整給排水坡度功能,能滿足以下功能:
(1)支持對(duì)連續(xù)排水管道,有立管連接的排水管道進(jìn)行放坡;
(2)支持向上或向下放坡;
(3)支持設(shè)置起坡點(diǎn)偏移量放坡;
(4)支持國(guó)標(biāo)規(guī)范為不同管徑配置相應(yīng)坡度,同時(shí),可自定義、添加/刪除。
軟件以外部插件的形式嵌入到Revit2016中,安裝本軟件后,在Revit2016的工具欄中會(huì)生成一個(gè)按鈕,單擊按鈕,啟動(dòng)軟件,軟件的主要工作界面如圖4所示。由工作界面可以看出,界面分三部分:坡度方向,起點(diǎn)設(shè)置和坡度設(shè)置,其中,在坡度設(shè)置中,又包含了標(biāo)準(zhǔn)坡度設(shè)置子界面。在坡度方向中,可以選擇管道需要調(diào)整坡度的方向;在起點(diǎn)設(shè)置中,可以選擇隨管道標(biāo)高自動(dòng)調(diào)整坡度,也可以直接設(shè)置偏移量,以固定高程點(diǎn)調(diào)整坡度,同時(shí)可以選擇項(xiàng)目樣板中已經(jīng)設(shè)置好的標(biāo)高進(jìn)行調(diào)整;在坡度設(shè)置中,可以按固定值調(diào)整,同時(shí),可以支持標(biāo)準(zhǔn)調(diào)整鑄鐵管和塑料管的標(biāo)準(zhǔn)坡度值。
給排水坡度系統(tǒng)界面
標(biāo)準(zhǔn)坡度設(shè)置界面
本技術(shù)根據(jù)Revit2016 API文檔中的函數(shù)和類,同時(shí)編寫了實(shí)現(xiàn)核心功能的輔助函數(shù)程序,在實(shí)現(xiàn)一些功能的過程中,主要的函數(shù)如表3所示。
表3 程序中運(yùn)用的主要函數(shù)
本技術(shù)采用的核心功能是Export()函數(shù),需要涉及到參數(shù)有起點(diǎn)設(shè)置數(shù)值和坡度設(shè)置數(shù)值,其中坡度設(shè)置中的參數(shù)值分為塑料管和鑄鐵管的存儲(chǔ)數(shù)據(jù);而在坡度設(shè)置參數(shù)中,我們通獲取塑料管和鑄鐵管的存儲(chǔ)數(shù)據(jù)值,然后修改管道中的起始高程的斜率,實(shí)現(xiàn)坡度與Revit中設(shè)置對(duì)應(yīng)一致,完成功能所需。
本功能的核心技術(shù)代碼是getAllConnectPipe(),即查找和管道連接的所有連接管件如下:
public Connector FindRefConnector(Connector connector_0)
{
Connector connector;
if (connector_0 != null && connector_0.IsConnected)
{
IEnumerator enumerator = connector_0.AllRefs.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Connector current = (Connector)enumerator.Current;
try
{
if ((connector_0.Owner.Id == current.Owner.Id ?
false : connector_0.Origin.DistanceTo(current.Origin) < 1 / 304.8)
&& current.IsConnectedTo(connector_0))
{
connector = current;
return connector;
}
}
catch (Exception exception)
{
}
}
return null;
}
finally
{
IDisposable disposable = enumerator as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
return connector;
}
return null;
}
以北京市某裝配式項(xiàng)目中機(jī)電專業(yè)模型的一部分管道噴淋系統(tǒng)作為工程實(shí)例進(jìn)行測(cè)試。設(shè)計(jì)人員在進(jìn)行機(jī)電模型設(shè)計(jì)的過程中,通常會(huì)遇到在Revit中調(diào)整管道坡度值時(shí),涉及到管道的直徑和偏移量等參數(shù)的修改和設(shè)置,且可能單根或者多跟管道的修改,勞動(dòng)量巨大;同時(shí),在設(shè)計(jì)的過程中,需要查找規(guī)范確定設(shè)計(jì)坡度值,給設(shè)計(jì)人員帶來極大困擾,嚴(yán)重地影響了工作效率以及機(jī)電專業(yè)與其他專業(yè)的數(shù)據(jù)的傳遞和協(xié)同工作。
圖4 系統(tǒng)調(diào)整坡度圖
為此,通過給排水放坡系統(tǒng)插件的使用,批量調(diào)整管道的坡度值,可以很好地解決這一問題;同時(shí),根據(jù)插件的標(biāo)準(zhǔn)坡度設(shè)置功能,可以自動(dòng)根據(jù)標(biāo)準(zhǔn)規(guī)范調(diào)整不同管材的標(biāo)準(zhǔn)坡度值,如圖4中的插件修改后的系統(tǒng)圖所示。經(jīng)過測(cè)試,對(duì)比手工進(jìn)行以上的所有操作設(shè)置,插件能極大地提高工作效率,同時(shí),解決了在信息傳遞中模型設(shè)計(jì)不準(zhǔn)確等主要問題,使模型的準(zhǔn)確率得到了較大的提升,完美的提高工作效率。有了精準(zhǔn)的模型,即可以為建筑和結(jié)構(gòu)人員設(shè)計(jì)帶來極大便利,也為BIM技術(shù)在模型全壽命周期的普及使用提供了優(yōu)勢(shì)。
BIM技術(shù)應(yīng)用可以提高設(shè)計(jì)質(zhì)量和效率,已成為行業(yè)人員的共識(shí)。但現(xiàn)階段,Revit要取代AutoCAD進(jìn)行全套設(shè)計(jì)還有很多障礙,如何利用BIM技術(shù)極大化的提高設(shè)計(jì)效率和精細(xì)化程度的研究仍然處于發(fā)展階段,BIM技術(shù)在機(jī)電專業(yè)設(shè)計(jì)中準(zhǔn)確性和效率性等方面所出現(xiàn)的問題,嚴(yán)重的阻礙了BIM技術(shù)在國(guó)內(nèi)的推廣和發(fā)展,通過二次開發(fā)技術(shù)是提高工作效率的有效可行方法之一。
本文針對(duì)于Revit在機(jī)電專業(yè)設(shè)計(jì)中調(diào)整管道坡度方面的應(yīng)用不足,介紹了二次開發(fā)軟件插件,通過修改和創(chuàng)建模型數(shù)據(jù)的圖形和參數(shù)信息,完成了Revit在調(diào)整坡度時(shí)的工作效率低下以及表達(dá)不準(zhǔn)確的問題,避免了重復(fù)性工作。實(shí)踐表明,插件具有廣泛的實(shí)用性,可以大大提高工作效率,基本上實(shí)現(xiàn)了設(shè)計(jì)信息傳遞的不足。但是,現(xiàn)階段,與二維設(shè)計(jì)相比,如何定制出一套符合國(guó)內(nèi)設(shè)計(jì)習(xí)慣的BIM設(shè)計(jì)標(biāo)準(zhǔn)來突破BIM技術(shù)發(fā)展的瓶頸,仍然值得廣大設(shè)計(jì)與研發(fā)人員共同研究與探討。