APP下载

基于Revit 的基坑工程造价计算插件开发与应用研究

2022-04-24蒋先平王晓密谭家秀卢艺伟王文军刘磊磊张绍和

钻探工程 2022年2期
关键词:二次开发插件单价

蒋先平 ,王晓密 ,谭家秀 ,卢艺伟 ,王文军 ,刘磊磊,张绍和

(1.中国有色金属长沙勘察设计研究院有限公司,湖南 长沙 410011;2.湖南师范大学地理科学学院,湖南 长沙 410081;3.有色金属成矿预测与地质环境监测教育部重点实验室(中南大学),湖南 长沙 410083;4.湖南省有色资源与地质灾害探查湖南省重点实验室,湖南 长沙 410083;5.中南大学地球科学与信息物理学院,湖南 长沙 410083)

0 引言

BIM(Building Information Modeling)是一项三维信息化技术,用于管理建筑工程全生命周期信息[1-4],在国内外得到了广泛应用[5-6]。成本控制一直是工程建设中的重要环节,在基坑工程建设中也不例外。随着BIM 技术的发展,基于BIM 技术的工程造价分析与应用,能够实现面向基坑工程施工全过程的工程造价实时计算,得到了国内外学者的广泛关注[7-8]。

目前,BIM 技术在我国工程造价中的应用已经逐渐发展起来,但仍处在一个相对初级阶段[9-10]。国内常用于造价计算的软件有广联达、鲁班等,但这些传统造价计算软件,建模能力较差,存在部分复杂构件无法创建、无法识别、信息丢失的问题[11],难以满足实际工程尤其是基坑工程等复杂构件较多的土建工程项目的造价计算需求。而Revit 是以BIM 技术为基础的建模软件,其凭借自身强大的建模和信息处理能力、优越的三维仿真功能、完备的工程数据模型,目前已成为众多BIM 工程师进行BIM 建模的首选软件[12-14]。在工程造价计算方面,Revit 模型包含众多造价计算相关信息,如长度、面积、体积等,其精确度和信息化程度高,对工程造价计算可起到极大的辅助作用,在减少造价计算误差、造价工程量计算方面大有可为。在技术方面,Revit API(Revit 应用程序接口)的持续发展完善,促进了其功能的不断强大,支持着 BIM 技术的应用拓展[15-16]。然而,目前Revit 软件尚缺乏对建立的BIM 模型进行自动造价计算的相关功能,一定程度上阻碍了其发展与应用。国外学者在该方面做了较早的尝试,且已经取得较好的应用效果,但由于我国与国外采用的工程量计算规则、定额、建筑法律法规等存在较大区别[17-19],直接应用国外 Revit 插件存在“水土不服”的问题,需要对软件进行大量的参数更改,仍然需要耗费大量的人力物力。

因此,本文面向基坑工程施工全过程,基于Re‑vit 基坑工程的外族类和Revit API,开发设计适用于我国工程环境的基坑工程Revit 造价计算插件。具体地,根据基坑工程各个阶段的造价计算需求,以Revit 2019 平台为基础、VS2017 为 IDE、C#为开发语言进行二次开发,开发的功能主要包括模型参数获取与转换、定额套用、数据的显示与输出等功能,最终实现特定基坑工程项目模型的自动化造价计算。

1 研究方法

本文方法实现的技术路线如图1 所示。首先,根据基坑工程施工全过程,梳理出一般基坑工程中的工艺流程涉及的构件类别(见表1)。根据国内定额标准文件,包括《湖南省建筑工程消耗量标准(基价表)上册》《全国统一建筑工程基础定额土建上册》等,明确清单中各个类别的计价标准及计算公式。然后,一一进行清单中的类别与Revit 的族类的对应,明确各个实体构件在Revit 中涉及的类别、族以及族类型,及其在造价计算过程中需要获取的参数。

表1 构件类别统计Table 1 Construction category

图1 本文方法实现流程Fig.1 Flow chart of the proposed method

在开始使用Revit API 之前,进行以下准备工作:(1)安装Revit 系列软件,并安装相应二次开发工具 AddInManager 和 RevitLookup;(2)安装 具有相应 .NET Framework 环境的 IDE。其中,AddInMan‑ager 工具不受版本的限制,在不同的Revit 软件之间可以进行使用,而Revit Lookup 工具则需要与Revit软件相对应。

根据不同构件的造价计算需求进行不同参数(长度、面积等)的获取,其中根据Revit API 的特点,通过不同的方法实现对Revit 族项目参数与实例参数的获取;然后利用获取的参数数据,进行一定的计算,转换成为工程造价所需的工程量、综合单价、合价与合计;最终通过VS2017 中DataGridview 控件,将计算的数据以表格的形式显示出来,包括类别、子项、工程量、单位、综合单价、合价等列数据,造价结果通过textBox 控件进行显示。

2 开发实现

2.1 开发环境

Revit API 属于类库文件,只有在Revit 软件运行的时候才能运行,RevitAPI.dll 和RevitAPIUI.dll为其2 个关键程序集。Revit API 的文档操作需要依托于事务(Transaction),只有包含在事务中的修改操作才能在文档中执行,且写入文档在事务提交之后。在功能拓展与访问方面,Revit API 制定了相应机制和规范:访问 Document(文档)、Element(图元)、Parameter(参数)等的方法接口包含在RevitA‑PI.dll 中;开发插件制作外部命令与应用(IExternal‑Command 和 IExternalApplication 相关接口)、图元选择、界面制作(IExternalEventHandler 相关接口)等相关接口都包含在RevitAPIUI.dll 中。

本文以REVIT2019 软件为基础,选取Micro‑soft Visual Studio2017 作为开发工具(包含.NET Framework4.7)、C#作为开发语言进行二次开发。Revit API 允许开发者使用任何一种与.NET 兼容的语言进行二次开发,目前在用的所有编程语言几乎都可以与.NET 兼容,开发语言和开发环境的选择多样。在开发环境的选择上,VS2017 包含Re‑vit2019 软件二次开发所需的.NET Framework 4.7框架,拥有大部分软件开发生命周期中的工具,是目前使用最为广泛的Windows 平台开发环境;在开发语言的选择上,主要是以C#语言为多数,C 或者C++语言的使用相对较少,而VB 则更少。

2.2 工程量计算

参数获取是工程量计算的基础。本次二次开发涉及的参数包括族的实例参数与类型参数。实例参数的作用对象具有唯一性,即一个实例参数只影响一个实例,当修改实例参数时只对当前选中的对象或者将要放置的对象有效,不会影响到其余图元,其获 取 主 要 有 2 种 方 法 :LookupParameter 和 get_Pa‑rameter。与实例参数不同,一个族类型的所有实例的类型参数均相同,也就是说,任意族类型参数的修改都会影响该族类型下所有已经存在和以后生成的实例。类型参数的查看也需要通过RevitLookup 插件,但需要进入GetValidTypes 方能查看。此外,类型参数的获取也比实例参数复杂,结合GetValid‑Types 方法和LookupParameter 方法获得族的所有类型参数,然后通过判断获得指定的族类型参数。

参数获取为工程量的计算打下了基础,获得了原始的数据,接下来就需要将参数转换为实际可用的工程量。不同的计量单位下,工程量的计算方式也会有所差异。计价定额涉及的计量单位包括体积、面积、长度、质量、数量,下面以质量为计量单位的工程量计算为例进行论述。

在工程造价中,一般涉及到钢筋、钢等结构的支护都会存在以质量为单位的工程量计算。例如土钉、锚杆和锚索,其定额子项制安就是使用T 作为计量单位。通过获取钢构件的体积参数,通过计算模型,将其转换成为工程量所需的质量。工程量计算整体流程如图2 所示。

图2 工程量计算流程Fig.2 Calculation flow of the engineering quantity

2.3 造价计算

在造价计算的过程中,构件的单价存在单价固定和可变2 种情况,故单价的计算分为2 种情况进行:一是单价固定,即直接给定单价,在计算时直接进行调用;二是单价可变,即根据计算出的工程量数据,实时进行单价计算。为保证单价数据存储过程中的准确性,结合前文实体构件与Revit 族类的对应关系,自动化实现构件的单价数据与相应清单计价表中类别相对应并存储于适当位置。清单计价表中的工程量与单价数据写入结束后,利用在VS2017中下载的FreeSpire.XLS NuGet 程序包,将清单计价表中的数据写入DataGridView 控件,并进行显示。计算DataGridView 控件中工程量与单价列,得到各个类别的合价,最终通过对各合价进行求和,得到当前基坑工程项目造价结果。

针对不同工程中部分单价可能发生变动的问题,DataGridView 控件的单价列数据可双击实时进行更改。同时设计刷新功能,通过按钮实时刷新数据造价数据。在2.2 节工程量计算的基础上开展造价计算的整体流程如图3 所示。

图3 造价计算流程Fig.3 Calculation flow of the cost sheet

3 应用案例

为验证本文二次开发插件的可行性,将其应用于某实际基坑工程项目中。该基坑位于长沙市内,场地四周较高中间低,标高36.64~43.47 m。基坑分为南北2 个部分,北侧地下层数为2 层,南侧地下层数为1 层,基坑周边环境较为复杂,如图4 所示。基坑支护长度约435 m,一共分为10 段,采用放坡+复合土钉墙支护、人工挖孔灌注桩+锚索、自然放坡+喷射砼支护相结合的基坑支护方案。基坑施工过程中,包含土方开挖、锚杆锚索、基坑底板浇筑、高压喷射砼护坡、腰梁冠梁、止水帷幕等工序。

图4 基坑及其周围环境示意图Fig.4 The foundation pit and its surroundings

为模拟施工过程,将整个基坑开挖和支护分为10 个阶段,建立了10 个开挖和支护过程模型,如图5所示。其中,第一阶段初步进行少量土方开挖,同时添加锚杆、人工挖孔桩等支护;第二阶段,在第一阶段的基础上继续进行土方开挖以及土钉和锚杆的施工,在这一阶段人工挖孔桩支护没有增加;第三阶段,继续进行土方开挖,增加土钉、锚杆和人工挖孔桩的数量,使用锚索支护;第四阶段,与第三阶段的施工工艺相同,继续进行挖方、土钉、锚杆、锚索、人工挖孔桩等工作;第五阶段,除人工挖孔桩施工停止外,继续第四阶段的各个工艺施工;第六阶段,同第五阶段;第七阶段,同第六阶段;第八阶段,停止进行锚杆锚索与人工挖孔桩支护的施工,继续土方开挖和土钉的施工;第九阶段,进行土方开挖;第十阶段,进行土方开挖、锚杆锚索、基坑底板浇筑、高压喷射砼护坡、腰梁冠梁、止水帷幕等工序的施工。

图5 基坑施工阶段与流程Fig.5 Construction phases for the foundation pit

针对上述10 个支护过程,利用开发的造价计算插件即可实时计算基坑工程各个阶段的造价。例如第一阶段:土方开挖体积20470 m3,花费的直接工程费 237925.27 元;支护锚杆 66 m,锚杆锚具 30 个,直接工程费63046.56 元;人工挖孔桩体积74.5 m3,直接工程费36627.73 元。因此,在第一阶段,总的造价为339599.56 元,具体如图6 所示。类似地,利用该插件可以求出任意基坑施工阶段的工程造价。由于篇幅有限,本文仅给出最后一个阶段的工程造价计算结果(图7),最后一个阶段完成则表明整个基坑工程施工结束,因此图7 中计算所得的工程造价即为整个基坑工程造价,即20465422.38 元,与项目实际进行的人工造价计算误差仅约2‰。

图6 基坑施工第一阶段造价计算结果Fig.6 The calculated budget for the first phase of the foundation pit construction

图7 基坑施工第十阶段造价计算结果Fig.7 The calculated budget for the last phase of the foundation pit construction

实际施工过程中,在设计的基础上可能因碰撞等问题进行微小调整,进而使得BIM 模型与工程设计内容存在微小差异,所以实际工程预算经费与基于造价计算插件计算的结果存在微小差异是合理的。值得说明的是,由于实际工程中材料市场价格和劳动价格的波动,该插件计算结果可能与实际存在一定的差异,但用户可以自定义修改软件设置的默认单价,因而仍可满足实际需求。

4 结论

传统的基坑造价计算,在模型和造价计算方面存在矛盾:优秀的算量软件难以支持繁杂的三维模型,而传统的建模软件往往不支持造价计算功能,导致造价人员的工作依旧复杂繁琐。本文针对Revit软件缺少造价计算功能的问题,利用Revit API 进行二次开发,实现Revit 软件自动化造价计算功能与应用,得到的结论如下:

(1)通过总结一般基坑工程及施工过程中涉及的构件及工艺分析,统计了应用于基坑工程造价计算的构建族类体系;

(2)详细设计了基于Revit API 进行基坑工程造价自动计算的二次开发环境、计算思路和工作流程;

(3)利用Revit API 二次开发,实现了基坑工程各类构件参数的自动读取和自动换算成实际工程量,开发了Revit 软件模型算量与自动套价相结合的功能,完成了对输入Revit 基坑模型的造价计算,并通过实际工程案例验证了本文开发的软件插件的可行性与准确性。研究成果初步完善了Revit 对基坑工程进行造价计算的功能,可为基坑工程施工提供指导。

猜你喜欢

二次开发插件单价
如何求单价
嘟嘟熊家的百货商店(二十四)——单价是多少
自编插件完善App Inventor与乐高机器人通信
算单价
基于OSGi的军用指挥软件插件机制研究
浅谈Mastercam后处理器的二次开发
例谈课本习题的“二次开发”
基于jQUerY的自定义插件开发
2014年中考数学命题大预测试题
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用