武桂芝 劉萍
摘 要:農(nóng)田噴灌是目前我國(guó)應(yīng)用最廣泛的節(jié)水灌水方法,可以大大提高水的利用率并實(shí)現(xiàn)農(nóng)作物豐產(chǎn)豐收,但噴灌工程在設(shè)計(jì)時(shí)的管配件比較瑣碎,工程量統(tǒng)計(jì)比較困難。Revit平臺(tái)是BIM技術(shù)中具有強(qiáng)大的設(shè)計(jì)、數(shù)據(jù)交互、信息管理、協(xié)同工作等功能的應(yīng)用平臺(tái),運(yùn)用Visual Studio軟件,基于C#語(yǔ)言編寫(xiě)代碼在Revit平臺(tái)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了對(duì)農(nóng)田噴灌系統(tǒng)工程量的提取,為工程后期編寫(xiě)概算、進(jìn)度計(jì)劃及資源配備提供科學(xué)準(zhǔn)確的數(shù)據(jù)支撐。
關(guān)鍵詞:BIM;Revit二次開(kāi)發(fā);農(nóng)田噴灌
中圖分類(lèi)號(hào):TU17;S274.2 ? 文獻(xiàn)標(biāo)志碼:A
doi:10.3969/j.issn.1000-1379.2020.07.036
Abstract:Sprinkler irrigation is the most widely used water-saving irrigation method in China, which can greatly improve the utilization rate of water and achieve a high yield of crops. However, due to the trifling pipe fittings in the design of sprinkler irrigation project, it is difficult to make statistics on the amount of work.Revit platform is an application platform with powerful functions of design, data interaction, information management and collaborative work in BIM technology.In this study, Visual Studio software was used to write codes based on C# language to carry out secondary development on Revit platform, which realized the extraction of engineering quantity of farmland sprinkler irrigation system, provided scientific and accurate data support for the preparation of budget estimates, schedule plans and resources allocation in the later stage of the project.
Key words: BIM; Revit secondary development; farmland irrigation
1 引 言
Revit平臺(tái)作為BIM技術(shù)中具有強(qiáng)大的設(shè)計(jì)、數(shù)據(jù)交互、信息管理、協(xié)同工作等功能的應(yīng)用平臺(tái),是BIM技術(shù)在工程設(shè)計(jì)行業(yè)應(yīng)用的先行軍[1-2]。農(nóng)田噴灌技術(shù)是建設(shè)節(jié)水型社會(huì)的基礎(chǔ)性工程,是保證水利工程順利實(shí)施、農(nóng)作物豐產(chǎn)豐收、農(nóng)業(yè)經(jīng)濟(jì)快速發(fā)展的基本保障[3-4],但噴灌工程在設(shè)計(jì)時(shí)管配件比較瑣碎,工程量統(tǒng)計(jì)比較困難[5]。
本文將對(duì)Revit平臺(tái)進(jìn)行簡(jiǎn)述,并基于Revit平臺(tái)對(duì)農(nóng)田噴灌進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)農(nóng)田噴灌系統(tǒng)工程量的自動(dòng)化提取。
2 Revit平臺(tái)及其二次開(kāi)發(fā)
2.1 Revit平臺(tái)
Revit是一種基于模型建模的參數(shù)化引擎,可以與傳統(tǒng)設(shè)計(jì)軟件進(jìn)行數(shù)據(jù)交換,將二維設(shè)計(jì)圖導(dǎo)入軟件,實(shí)現(xiàn)信息共享和協(xié)同工作[6-7]。Revit參數(shù)修改技術(shù)實(shí)現(xiàn)了模型中各視圖之間的關(guān)聯(lián)變更,同時(shí)保持了各模型圖紙的一致性,自動(dòng)記錄工程量[8]。
2.2 Revit二次開(kāi)發(fā)
Revit二次開(kāi)發(fā)是在現(xiàn)有的軟件基礎(chǔ)上進(jìn)一步完善、拓展軟件功能,以更好地滿(mǎn)足人們對(duì)軟件的不同需求[9-10]。開(kāi)發(fā)商將集成的數(shù)據(jù)庫(kù)函數(shù)封裝到Revit的API接口中,使得Revit二次開(kāi)發(fā)更加方便快捷[11]。Revit二次開(kāi)發(fā)具有操作復(fù)雜性、學(xué)科交叉性、功能繼承性、功能實(shí)用性等特點(diǎn)[12]。
2.2.1 開(kāi)發(fā)環(huán)境
開(kāi)發(fā)環(huán)境(SDE)由軟件工具和環(huán)境集成機(jī)制構(gòu)成,在基本硬件和數(shù)字軟件的基礎(chǔ)上,為支持系統(tǒng)軟件和應(yīng)用軟件的工程化開(kāi)發(fā)及維護(hù)而使用的一組軟件。Revit API允許開(kāi)發(fā)人員通過(guò)任何與Microsoft.NET Framework兼容的語(yǔ)言進(jìn)行編程,如C#、VB以及C++等編程語(yǔ)言。
2.2.2 開(kāi)發(fā)方式
Revit的二次開(kāi)發(fā)主要有外部應(yīng)用(IExternal Applications)和外部命令(IExternal Command)兩種開(kāi)發(fā)方式。Revit調(diào)用外部應(yīng)用和外部命令的流程見(jiàn)圖1。
2.2.3 開(kāi)發(fā)流程
Revit API應(yīng)用.NET開(kāi)發(fā)環(huán)境進(jìn)行Revit二次開(kāi)發(fā)已經(jīng)逐步形成了一套標(biāo)準(zhǔn)的開(kāi)發(fā)流程,見(jiàn)圖2。
3 應(yīng)用案例
以農(nóng)田噴灌系統(tǒng)工程為Revit二次開(kāi)發(fā)的對(duì)象,在完成該工程的建模后,進(jìn)一步運(yùn)用C#語(yǔ)言在Visual Studio 2012平臺(tái)上編寫(xiě)程序,并結(jié)合Revit API進(jìn)行二次開(kāi)發(fā),通過(guò)編寫(xiě)程序插件將Revit和Excel聯(lián)系起來(lái),實(shí)現(xiàn)工程量的統(tǒng)計(jì)并導(dǎo)出到Excel,為后續(xù)工程中的概算編制、進(jìn)度計(jì)劃及資源配置等提供支撐。
3.1 準(zhǔn)備工作
(1)新建項(xiàng)目。打開(kāi)Visual Studio 2012新建項(xiàng)目,選擇其他語(yǔ)言中的C#并選擇類(lèi)庫(kù),命名為“工程量統(tǒng)計(jì)”,選擇合適的存儲(chǔ)路徑。
(2)添加應(yīng)用。點(diǎn)擊視圖選項(xiàng)卡中的解決方案資源管理器,調(diào)出解決方案資源管理器,右鍵引用選擇添加應(yīng)用。在引用管理器—程序集—框架中選擇System. Windows. Forms,進(jìn)一步在com中選擇Microsoft Excel 15.0 Object Library。
(3)編寫(xiě)代碼。在Revit安裝地址中選擇Revit API和Revit APIUI,即可將編寫(xiě)的代碼與Revit、Excel關(guān)聯(lián),然后在打開(kāi)的新建項(xiàng)目中進(jìn)行代碼的編寫(xiě)。
3.2 調(diào)用命令
運(yùn)用代碼調(diào)用Revit和Microsoft excel 2013等相關(guān)應(yīng)用程序集,創(chuàng)建一個(gè)開(kāi)發(fā)代碼的運(yùn)行環(huán)境,導(dǎo)入的相關(guān)程序集代碼如下:
#region Namespaces
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using Microsoft.Office.Interop.Excel;
using System.Runtime.Remoting.Contexts;
using System.Data;
#endregion
上述代碼中關(guān)鍵是using Microsoft.Office. Interop. Excel,據(jù)此才能在開(kāi)發(fā)環(huán)境中調(diào)用Excel。
3.3 注釋模型
在對(duì)噴灌系統(tǒng)創(chuàng)建三維模型時(shí),要根據(jù)項(xiàng)目劃分對(duì)每一個(gè)模型進(jìn)行注釋?zhuān)鐖D3中的鎮(zhèn)墩,在模型“屬性”的“注釋”項(xiàng)要填寫(xiě)“C15素混凝土鎮(zhèn)墩”,這樣就可以通過(guò)代碼sheet.Cells[i,2]=param.AsString()和sheet.Cells[i,3]=param.AsValueString()將注釋信息和體積(工程量)讀取到Excel的相應(yīng)單元格,形成工程量表。
3.4 編寫(xiě)代碼
在Revit中選擇創(chuàng)建好的噴灌系統(tǒng)三維模型,程序會(huì)自動(dòng)打開(kāi)Excel工作簿并在Sheet1工作表自動(dòng)生成工程量的清單,主體代碼編寫(xiě)完成后,點(diǎn)擊“生成”選項(xiàng)卡中的“配置管理器”命令,在彈出的對(duì)話框中進(jìn)行解決方案平臺(tái)的設(shè)置,新建一個(gè)“X64”的平臺(tái),然后關(guān)閉,點(diǎn)擊“生成”選項(xiàng)卡中的“生成解決方案”命令,這時(shí)候下方會(huì)提示代碼是否有錯(cuò)誤,根據(jù)提示對(duì)代碼進(jìn)行修改,直到提示錯(cuò)誤為零,顯示生成成功。
3.5 生成工程量
完成代碼編寫(xiě)后,在生成的工程量統(tǒng)計(jì)文件夾中找到“工程量統(tǒng)計(jì).dll”文件,復(fù)制地址粘貼到提前準(zhǔn)備好的addin文件中,addin文件是Revit運(yùn)行調(diào)用附加模塊的一個(gè)必備文件,Revit和生成的代碼程序通過(guò)它進(jìn)行鏈接。此時(shí)之前新建的book1就會(huì)自動(dòng)打開(kāi),并在sheet1中生成需要的工程量,整理后的工程量見(jiàn)表1。成功提取出工程量后,就可進(jìn)一步進(jìn)行概算編制、進(jìn)度計(jì)劃及資源配置等。
4 結(jié) 語(yǔ)
對(duì)Revit平臺(tái)的二次開(kāi)發(fā)進(jìn)行了簡(jiǎn)述與探討,并有針對(duì)性地運(yùn)用Visual Studio 2012軟件,基于C#語(yǔ)言編寫(xiě)代碼在Revit平臺(tái)進(jìn)行了二次開(kāi)發(fā),實(shí)現(xiàn)了對(duì)農(nóng)田噴灌系統(tǒng)工程量的提取,為后期的概算編制、進(jìn)度計(jì)劃及資源配置提供科學(xué)準(zhǔn)確的數(shù)據(jù)支撐。
參考文獻(xiàn):
[1] 葛晶,周世光.基于Revit平臺(tái)BIM工作系統(tǒng)二次開(kāi)發(fā)應(yīng)用實(shí)例[J].建筑技術(shù),2017,48(12):1317-1319.
[2] 余雯婷,李希勝.基于BIM技術(shù)的建筑設(shè)施管理信息提取與應(yīng)用[J].土木工程與管理學(xué)報(bào),2016,33(1):85-89.
[3] 李永基.農(nóng)田噴灌化是建設(shè)節(jié)水型社會(huì)的基礎(chǔ)性工程[J].甘肅農(nóng)業(yè),2003(12):58.
[4] 肖承智.農(nóng)田水利灌溉節(jié)水技術(shù)分析[J].陜西水利,2018(6):94-95.
[5] 牛立軍,黃俊超.BIM技術(shù)在水利工程設(shè)計(jì)中的應(yīng)用[M].北京:中國(guó)水利水電出版社,2019:12.
[6] 張藝晶. Revit軟件基于項(xiàng)目的二次開(kāi)發(fā)應(yīng)用研究[D].石家莊:河北科技大學(xué),2015:16-17.
[7] 徐刃.BIM技術(shù)在施工成本預(yù)測(cè)中的應(yīng)用現(xiàn)狀分析[J].廣東土木與建筑,2017,24(6):65-69.
[8] 陳楠.基于Revit軟件二次開(kāi)發(fā)的研究[C]//中共沈陽(yáng)市委,沈陽(yáng)市人民政府,中國(guó)農(nóng)學(xué)會(huì).第十三屆沈陽(yáng)科學(xué)學(xué)術(shù)年會(huì)論文集(理工農(nóng)醫(yī)).沈陽(yáng):沈陽(yáng)市科學(xué)技術(shù)協(xié)會(huì),2016:423-427.
[9] 肖貝. Revit二次開(kāi)發(fā)在基坑土方工程中的應(yīng)用研究[D].南昌:南昌大學(xué),2016:8-9.
[10] 江明.中信建筑設(shè)計(jì)研究總院有限公司2011年BIM應(yīng)用情況總結(jié)[C]//中國(guó)土木工程學(xué)會(huì)計(jì)算機(jī)應(yīng)用分會(huì),中國(guó)圖學(xué)學(xué)會(huì)土木工程圖學(xué)分會(huì),中國(guó)建筑學(xué)會(huì)建筑結(jié)構(gòu)分會(huì)計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)委員會(huì).第十六屆全國(guó)工程設(shè)計(jì)計(jì)算機(jī)應(yīng)用學(xué)術(shù)會(huì)議論文集.北京:中國(guó)土木工程學(xué)會(huì),2012:341-346.
[11] 沙培洲,劉彥明,徐博.西成客運(yùn)專(zhuān)線鐵路橋隧工程BIM技術(shù)應(yīng)用研究[J].鐵道標(biāo)準(zhǔn)設(shè)計(jì),2017,61(7):66-71.
[12] 韓春楠.基于BIM的裝配式混凝土結(jié)構(gòu)建筑預(yù)制裝配率計(jì)算方法與應(yīng)用框架研究[D].南京:東南大學(xué),2018:42-45.
【責(zé)任編輯 張 帥】