武桂芝 劉萍



摘 要:農田噴灌是目前我國應用最廣泛的節水灌水方法,可以大大提高水的利用率并實現農作物豐產豐收,但噴灌工程在設計時的管配件比較瑣碎,工程量統計比較困難。Revit平臺是BIM技術中具有強大的設計、數據交互、信息管理、協同工作等功能的應用平臺,運用Visual Studio軟件,基于C#語言編寫代碼在Revit平臺進行二次開發,實現了對農田噴灌系統工程量的提取,為工程后期編寫概算、進度計劃及資源配備提供科學準確的數據支撐。
關鍵詞:BIM;Revit二次開發;農田噴灌
中圖分類號:TU17;S274.2 ? 文獻標志碼: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平臺作為BIM技術中具有強大的設計、數據交互、信息管理、協同工作等功能的應用平臺,是BIM技術在工程設計行業應用的先行軍[1-2]。農田噴灌技術是建設節水型社會的基礎性工程,是保證水利工程順利實施、農作物豐產豐收、農業經濟快速發展的基本保障[3-4],但噴灌工程在設計時管配件比較瑣碎,工程量統計比較困難[5]。
本文將對Revit平臺進行簡述,并基于Revit平臺對農田噴灌進行二次開發,實現農田噴灌系統工程量的自動化提取。
2 Revit平臺及其二次開發
2.1 Revit平臺
Revit是一種基于模型建模的參數化引擎,可以與傳統設計軟件進行數據交換,將二維設計圖導入軟件,實現信息共享和協同工作[6-7]。Revit參數修改技術實現了模型中各視圖之間的關聯變更,同時保持了各模型圖紙的一致性,自動記錄工程量[8]。
2.2 Revit二次開發
Revit二次開發是在現有的軟件基礎上進一步完善、拓展軟件功能,以更好地滿足人們對軟件的不同需求[9-10]。開發商將集成的數據庫函數封裝到Revit的API接口中,使得Revit二次開發更加方便快捷[11]。Revit二次開發具有操作復雜性、學科交叉性、功能繼承性、功能實用性等特點[12]。
2.2.1 開發環境
開發環境(SDE)由軟件工具和環境集成機制構成,在基本硬件和數字軟件的基礎上,為支持系統軟件和應用軟件的工程化開發及維護而使用的一組軟件。Revit API允許開發人員通過任何與Microsoft.NET Framework兼容的語言進行編程,如C#、VB以及C++等編程語言。
2.2.2 開發方式
Revit的二次開發主要有外部應用(IExternal Applications)和外部命令(IExternal Command)兩種開發方式。Revit調用外部應用和外部命令的流程見圖1。
2.2.3 開發流程
Revit API應用.NET開發環境進行Revit二次開發已經逐步形成了一套標準的開發流程,見圖2。
3 應用案例
以農田噴灌系統工程為Revit二次開發的對象,在完成該工程的建模后,進一步運用C#語言在Visual Studio 2012平臺上編寫程序,并結合Revit API進行二次開發,通過編寫程序插件將Revit和Excel聯系起來,實現工程量的統計并導出到Excel,為后續工程中的概算編制、進度計劃及資源配置等提供支撐。
3.1 準備工作
(1)新建項目。打開Visual Studio 2012新建項目,選擇其他語言中的C#并選擇類庫,命名為“工程量統計”,選擇合適的存儲路徑。
(2)添加應用。點擊視圖選項卡中的解決方案資源管理器,調出解決方案資源管理器,右鍵引用選擇添加應用。在引用管理器—程序集—框架中選擇System. Windows. Forms,進一步在com中選擇Microsoft Excel 15.0 Object Library。
(3)編寫代碼。在Revit安裝地址中選擇Revit API和Revit APIUI,即可將編寫的代碼與Revit、Excel關聯,然后在打開的新建項目中進行代碼的編寫。
3.2 調用命令
運用代碼調用Revit和Microsoft excel 2013等相關應用程序集,創建一個開發代碼的運行環境,導入的相關程序集代碼如下:
#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
上述代碼中關鍵是using Microsoft.Office. Interop. Excel,據此才能在開發環境中調用Excel。
3.3 注釋模型
在對噴灌系統創建三維模型時,要根據項目劃分對每一個模型進行注釋,如圖3中的鎮墩,在模型“屬性”的“注釋”項要填寫“C15素混凝土鎮墩”,這樣就可以通過代碼sheet.Cells[i,2]=param.AsString()和sheet.Cells[i,3]=param.AsValueString()將注釋信息和體積(工程量)讀取到Excel的相應單元格,形成工程量表。
3.4 編寫代碼
在Revit中選擇創建好的噴灌系統三維模型,程序會自動打開Excel工作簿并在Sheet1工作表自動生成工程量的清單,主體代碼編寫完成后,點擊“生成”選項卡中的“配置管理器”命令,在彈出的對話框中進行解決方案平臺的設置,新建一個“X64”的平臺,然后關閉,點擊“生成”選項卡中的“生成解決方案”命令,這時候下方會提示代碼是否有錯誤,根據提示對代碼進行修改,直到提示錯誤為零,顯示生成成功。
3.5 生成工程量
完成代碼編寫后,在生成的工程量統計文件夾中找到“工程量統計.dll”文件,復制地址粘貼到提前準備好的addin文件中,addin文件是Revit運行調用附加模塊的一個必備文件,Revit和生成的代碼程序通過它進行鏈接。此時之前新建的book1就會自動打開,并在sheet1中生成需要的工程量,整理后的工程量見表1。成功提取出工程量后,就可進一步進行概算編制、進度計劃及資源配置等。
4 結 語
對Revit平臺的二次開發進行了簡述與探討,并有針對性地運用Visual Studio 2012軟件,基于C#語言編寫代碼在Revit平臺進行了二次開發,實現了對農田噴灌系統工程量的提取,為后期的概算編制、進度計劃及資源配置提供科學準確的數據支撐。
參考文獻:
[1] 葛晶,周世光.基于Revit平臺BIM工作系統二次開發應用實例[J].建筑技術,2017,48(12):1317-1319.
[2] 余雯婷,李希勝.基于BIM技術的建筑設施管理信息提取與應用[J].土木工程與管理學報,2016,33(1):85-89.
[3] 李永基.農田噴灌化是建設節水型社會的基礎性工程[J].甘肅農業,2003(12):58.
[4] 肖承智.農田水利灌溉節水技術分析[J].陜西水利,2018(6):94-95.
[5] 牛立軍,黃俊超.BIM技術在水利工程設計中的應用[M].北京:中國水利水電出版社,2019:12.
[6] 張藝晶. Revit軟件基于項目的二次開發應用研究[D].石家莊:河北科技大學,2015:16-17.
[7] 徐刃.BIM技術在施工成本預測中的應用現狀分析[J].廣東土木與建筑,2017,24(6):65-69.
[8] 陳楠.基于Revit軟件二次開發的研究[C]//中共沈陽市委,沈陽市人民政府,中國農學會.第十三屆沈陽科學學術年會論文集(理工農醫).沈陽:沈陽市科學技術協會,2016:423-427.
[9] 肖貝. Revit二次開發在基坑土方工程中的應用研究[D].南昌:南昌大學,2016:8-9.
[10] 江明.中信建筑設計研究總院有限公司2011年BIM應用情況總結[C]//中國土木工程學會計算機應用分會,中國圖學學會土木工程圖學分會,中國建筑學會建筑結構分會計算機應用專業委員會.第十六屆全國工程設計計算機應用學術會議論文集.北京:中國土木工程學會,2012:341-346.
[11] 沙培洲,劉彥明,徐博.西成客運專線鐵路橋隧工程BIM技術應用研究[J].鐵道標準設計,2017,61(7):66-71.
[12] 韓春楠.基于BIM的裝配式混凝土結構建筑預制裝配率計算方法與應用框架研究[D].南京:東南大學,2018:42-45.
【責任編輯 張 帥】