APP下载

基于BIM的参数化隧道标准建模方法

2021-09-22高建新姜谙男郑帅张勇申发义

中外公路 2021年4期
关键词:仰拱二次开发实体

高建新,姜谙男*,郑帅,张勇,申发义

(1.大连海事大学 交通运输工程学院道桥所,辽宁 大连 116026;2.吉林省高速公路集团有限公司)

BIM技术是一种作用于项目全生命周期的基础信息技术,模型包含信息的丰富程度决定模型的利用价值。目前BIM技术在建筑领域的应用获得了一定的效益,然而BIM技术在隧道工程领域应用较少,研究BIM技术在隧道工程领域的应用是近年来的发展趋势,对此也取得了一定的成果。庞思雨利用MicroStation CONNECT Edition 软件进行隧道三维设计方法的流程及建模过程中的参数设置和参数化单元控制;韩学冲进行了基于BIM技术的公路隧道衬砌设计程序的研究;周雅莉进行了基于IFC标准的隧道工程信息传递研究;李明博介绍了BIM技术在运营隧道病害检测结果三维可视化的应用。以上研究中均没有提出一种适用于隧道领域的BIM参数化标准建模方式,用以提高建模效率以及充分实现信息交互,实现隧道工程全生命周期信息数据共享与交换的完整性和有效性。

Revit API提供了一系列命名空间和类库,利用Revit API实现以程序开发的方式对Revit软件功能的扩充,实现功能上的缩放,以便满足更多功能细节上的要求,进而使开发者可以更加便捷地对BIM模型的几何图元、属性参数进行访问,可以利用程序来进行创建、删除、修改模型元素。通过自定义的程序二次开发可以实现Revit软件中既有的大多数功能,同时可以实现手动建模时不易完成的、重复性的工作,可以提升Revit软件的利用效率及实现部分建模功能的程序化。

IFC(Industry Foundation Class)是用于定义建筑信息可扩展的统一数据格式,以便在软件应用程序之间进行交互。BIM系列软件都采用IFC数据格式作为数据交换标准,通过基于IFC 标准的BIM 模型进行协同工作是未来建筑工程领域发展的趋势。

IFC标准中对数据的描述,是采用一种面向对象的、规范化的数据描述语言EXPRESS语言,通过一系列的类型说明(Type)、实体说明(Entity)、规则说明(Rule)、函数说明(Function)与过程说明(Procedure)来进行描述。目前IFC标准已推出最新版本IFC4,但IFC标准主要面对建筑领域实体,缺少对隧道领域实体的定义和针对性描述。该文采用IFC标准对隧道构件进行建模,提出基于BIM的参数化隧道标准建模方法,并结合甄峰岭隧道工程对建模方法进行验证。

1 基于BIM的参数化隧道标准建模方法介绍

为提高Revit在创建隧道模型的建模效率,高效完成手动建模时不易完成的、重复性的工作,以及实现基于IFC标准的BIM隧道模型构件在不同BIM软件间实现交互,提出基于BIM的参数化隧道标准建模方法。在Revit原有功能基础上,通过二次开发设计一套能通过窗口直观输入参数,实现智能创建隧道构件模型的程序,在输入指定参数后自动生成模型,实现参数化建模。并对隧道构件的IFC标准进行拓展,改善IFC标准中隧道构件定义不足的现状,实现BIM隧道构件的信息交互。基于BIM的参数化隧道标准建模方法流程如图1所示。

图1 基于BIM的参数化隧道标准建模方法流程

2 基于BIM的隧道参数化模型建立

2.1 Revit二次开发介绍

通过Revit二次开发技术,可以拓展Revit软件功能,发挥其可拓展性。Revit二次开发以Revit2018为平台,编程环境采用Visual studio2013,编写语言采用与.Net Framework兼容的C#语言。通过Revit API实现对模型的访问与创建时,需要引用Revit API.dll和Revit APIUI.dll动态链接库。Revit API.dll包括了一系列控制Revit的应用、文档、对象和参数的功能方法,Revit APIUI.dll 包括了 Revit操作和用户界面功能的自定义API接口。几何模型创建过程主要运用到的是 Revit API.dll 的IExternalDB Application接口、访问DB级别的Element等,Revit操作用户界面主要采用Revit APIUI.dll中的IExternal Application相关接口。

2.2 界面开发

在界面开发时,主要通过外部应用重载 OnStartup()和 OnShutdown ()两个方法,完成对工具栏 Ribbon Tab和下拉按钮PushButtonData的创建。菜单栏中创建了名为“参数化建模”的 Ribbon Tab,以及不同构件参数化建模程序对应的 PushButton。每个命令打开后,即会跳出与命令对应的交互窗口,按照提示完成对应参数的输入,即可创建隧道构件的参数化建模。创建了“IFC文件处理”的Ribbon Tab,点击即可运行相应程序。完成在Revit用户界面上进行的界面开发,如图2所示。

图2 Revit用户界面上进行的界面开发

2.3 参数化族的创建

虽然构件可载入族可以实现在不同项目中的相互调用,但是由于不同隧道工程项目的差异性导致族构件不能直接被引用,需要进行一定尺寸上的修改,构件尺寸修改存在一处变更,处处变更的问题,且相关构件均需要进行改动。这样工作量巨大,且多为重复性工作,造成修改模型时效率低下,没并有发挥BIM建模优势,故需要采用程序化的方式实现高效的建模,充分发挥BIM的优势。

采用参数化建模可以实现输入模型相关的关键尺寸参数,实现参数对三维模型的驱动,这样通过输入或更改参数数值,即可按照尺寸自动生成相应的三维模型,无需手动更改模型。Revit二次开发可以实现高效的参数化建模方式。

参数化族创建主要包括隧道构件如衬砌、仰拱、仰拱填充、系统锚杆等族的创建。通过Revit二次开发的方式编写一套不同构件的参数化输入窗口,以公制常规模型族样板为创建样板。通过外部命令方式进行二次开发的流程图如图3所示。参数化创建模型的部分关键代码如下:

UIDocument uidoc =app.ActiveUIDocument;

Document doc =uidoc.Document;

Transaction trans =new Transaction(doc,"LS");

trans.Start();

Arc arc1 =Arc.Create(Plane.CreateByNormalAnd-Origin(XYZ.BasisX,XYZ.Zero),r1,-a,a + Math.P-I);

Curve c2 =Line.CreateBound(new XYZ(0,-y1,-z1),new XYZ(0,-y2,-z2));

Arc arc2 =Arc.Create(Plane.CreateByNormalAndOr-igin(-XYZ.BasisX,XYZ.Zero),r2,-a,a + Math.PI);

CurveArray curveArray =new CurveArray();

CurveArrArray curveArr =new CurveArrArray();

curveArray.Append(arc1);

curveArray.Append(c2);

curveArray.Append(arc2);

curveArray.Append(c1);

curveArr.Append(curveArray);

副溶血弧菌(V.parahaenzolyticus)和溶藻弧菌(V.alginolyticus)由集美大学水产学院病理实验室从感染这两种弧菌的凡纳滨对虾体内分离得到。嗜水气单胞菌(Aeromonas hydrophila,Ah)由集美大学水产学院营养与饲料教研室提供。金黄色葡萄球菌(Staphylococcus aureus)ATCC25923由林州中农颖泰有限公司提供。

doc.FamilyCreate.NewExtrusion(true,curveArr,Sk-etchPlane.Create(doc,Plane.CreateByNormalAndOrigin(XYZ.BasisX,XYZ.Zero)),l);

trans.Commit();

图3 外部命令方式进行二次开发的流程图

在Revit控制面板上二次开发的下拉菜单栏中选择相应隧道构件的建模功能程序,在弹出的参数输入窗口中指定位置参考实际工程图纸中的构件尺寸输入相关尺寸参数,如半径、角度、厚度、长度等参数信息,输入完成后在族样板中即可自动生成相应的三维模型构件,无需手动绘制或更改模型,利用Revit二次开发的方式实现参数化建模可以高效精准地完成建模工作。衬砌、仰拱、仰拱填充建模窗口与效果分别如图4~9所示。

图4 衬砌建模输入框

图5 衬砌族模型

图6 仰拱建模输入框

图7 仰拱族模型

3 IFC标准隧道实体扩充

目前 IFC 标准中缺乏隧道领域的相关定义描述,为实现基于BIM的参数化隧道标准建模方法的形成,弥补BIM 技术在隧道工程领域建筑信息模型应用中存在的缺陷,故定义和创建隧道领域的 IFC 实体来进行描述。这样可以避免构建的BIM隧道模型存在冗余或超出范围的类,造成指代信息不明,难以加以识别,对信息交互造成困难的模型结论。

图8 仰拱填充建模输入框

图9 仰拱填充族模型

3.1 基于IFC的隧道空间结构表达

IFC标准中IfcSpatialStructureElement是描述建筑领域空间结构的超类,它派生为IfcBuilding(建筑)、IfcBuildingStorey(楼层)、IfcSite(场地)和IfcSpace(空间)等空间描述子类。但IFC标准中不包含隧道领域的相关描述类,通过借鉴现有IFC标准对建筑领域空间结构类的描述方式,在现有IFC标准中空间结构的超类所派生的空间描述子类基础上,增添表示隧道整体空间的实体IfcTunnel和表示隧道分部空间的实体IfcTunnelPart,用来专门描述隧道空间结构。

IfcTunnel类对应一座隧道整体,包含整个隧道的位置、空间几何信息等属性,隧道的形式类型,功能类型的基本特征。隧道的形式类型特征、功能类型特征通过IfcTunnelType和IfcTunnelFunctionType来进行表达,IfcTunnelType的类型为IfcTunnelTypeEnum,其定义为 TYPE IfcTunnelTypeEnum =ENUMERATION OF(CI-RCULARTUNNEL,CURVEDWALLANDARCHCROW-NTUNNEL,STRAI-GHTWALLANDARCHCROWNTUN-NEL,RECTANGULARTUNNEL,THESHEDTUNNEL,T-HEOPENCUTTUNNEL,USERDEFINED,NOTDEFINE-D);END_TYPE。

IfcTunnelPart类对应隧道组成空间,在空间上由若干个隧道组成空间隧道整体,描述了隧道的各个组成空间的位置、空间几何信息等属性,功能类型的基本特征则通过IfcTunnelPartType来表达,IfcTunnelPartType的类型为IfcTunnelPartTypeEnum ,其定义为TYPE IfcTunnelPartTypeEnum =ENUMERATION OF(PORT-AL,OPEN-CUTTUNNEL,UNDER-CUTTUNNEL,TUN-NELCHAMBER,SHEDTUNNEL,USERDEFINED,NOT-DEFINED);END_TYPE。

3.2 基于IFC的隧道物理元素表达

现有IFC标准中IfcElement是描述物理结构元素的超类,它派生的IfcBuildingElement是用来描述建筑领域结构元素抽象超类。由于隧道工程领域的隧道结构实体类同样包含通用元素、外形表达等信息,通过借鉴现有IFC标准对结构元素抽象超类的描述方式,添加隧道领域结构抽象超类IfcCivilElement,其仍然继承于IfcElement,与IFC标准中现有的IfcBuildingElement并列位于IFC框架机制中相同层次。IfcCivilElement是所有隧道结构元素的抽象超类,主要包含围岩(IfcTunnelSuroundingRock)、锚杆(IfcSystemAnchorBolt)、钢拱架(IfcSystem-SteelFrame)、初衬(IfcInitialSupportShotcrete)、二衬(IfcTunnelLiningStructure)、超前支护(IfcTunnelAdvanceSupport)、仰拱充填(IfcTunnelInvertFilling)等隧道结构物理元素。其他隧道结构物理元素(如二衬钢筋、排水沟等)并不是表征隧道结构特征所特有的构件,用己有的IFC实体中的建筑领域IfcBuildingElement派生的子类表达即可。图10为IFC标准各部分关系的EXPRESS-G视图。表1为隧道主要组成构件类型枚举定义。

3.3 IFC标准领域层隧道实体定义

在未对IFC标准进行相关拓展时,隧道领域构件的超类均由IFCBUILDINGELEMENTPROXY来表示,这就造成了IFC中不同隧道实体内容上的混乱,不能满足不同实体对应不同名称的类,在读取IFC文件时产生无法区分构件实体的困扰,即造成了信息交互的困难与障碍。而进行IFC标准拓展后,对相应隧道构件实体的超类IFCBUILDINGELEMENTPROXY替换成拓展的相应隧道实体的类,由于IFC标准中已经存在新增添的相关定义,所以在替换后可以实现类似于现有建筑领域IFC文件中不同类别的构件对应不同的类的水准。实现批量替换这个过程借助于Revit面板功能扩充的“IFC文件处理”模块,利用程序对IFC中性文件进行检索,通过识别相关实例编号与描述语句,实现对IFCBUILDINGELEMENTPROXY超类的高效精准替换。

图10 IFC标准各部分关系的EXPRESS-G视图

表1 隧道主要组成构件类型枚举定义

4 案例应用

甄峰岭2号隧道入口位于吉林省和龙市北部西城镇境内,出口位于安图县松江镇境内,属长白山系北侧,隧道分左右两幅。选取隧道右洞桩号为K95+125~K95+175区段进行基于BIM的参数化隧道标准建模方法的工程应用。

参照甄峰岭2号隧道的设计图纸,首先利用参数化建模程序进行参数化族的创建,按照图纸上的参数尺寸将其输入到参数化建模窗口中,即以自动化的形式高效率创建了衬砌、仰拱、仰拱填充、锚杆等隧道结构构件族。将族载入到项目模板中,拼装形成甄峰岭工程项目K95+125~K95+175区段的BIM模型。如图11所示。

图11 甄峰岭2号隧道K95+125~K95+175区段BIM模型

随后将BIM模型导出至IFC格式,将相应隧道构件实体的超类IFCBUILDINGELEMENTPROXY替换成拓展的相应隧道实体的类,替换过程利用Revit面板功能扩充的“IFC文件处理”模块进行,实现批量高效精准替换。至此完成了基于BIM的参数化隧道标准建模方法的全流程。

利用RDF公司的免费IFC 数据解析工具 IFC Engine DLL 以及三维图形引擎 Direct3D对IFC文件进行读取验证,其中IFC Engine DLL进行IFC数据的几何与非几何信息的解析,引擎Direct3D用于对解析结果进行渲染显示模型,从而对IFC数据进行可视化交互操作。解析结果如图12所示,即可以实现BIM模型几何显示以及实体属性的识别,实现了BIM模型的信息交互,可以在不同BIM系统中进行共享与交流。

图12 IFC数据的可视化交互解析

5 结论

BIM技术在隧道领域应用过程中,为提高建模效率以及充分实现信息交互,提出了基于BIM的参数化隧道标准建模方法。得到以下结论:

(1)通过Revit二次开发进行对Revit固有功能的拓展,设计一套能通过窗口直观输入参数,实现智能创建隧道构件模型的程序,在输入指定参数后自动生成模型,实现参数化建模,提高Revit在创建隧道模型的建模效率,以及高效完成手动建模时不易完成的、重复性的工作。

(2)通过对隧道构件的IFC标准的拓展来实现BIM隧道构件的交互,改善IFC标准中隧道构件定义不足的现状,实现类似于现有建筑领域IFC文件中不同类别的构件对应不同的类的水准。

(3)开发了直观的操作界面,使操作更直观便捷,提升了基于BIM的参数化隧道标准建模方法实际应用性。

猜你喜欢

仰拱二次开发实体
浅谈基于Revit平台的二次开发
前海自贸区:金融服务实体
五子山隧道仰拱开裂综合处治方案研究
浅谈Mastercam后处理器的二次开发
仰拱病害的电磁波响应特征模拟及三维成像
单线铁路隧道仰拱、矮边墙快速施工技术
西门子Easy Screen对倒棱机床界面二次开发
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
填补国内隧道仰拱施工设备技术空白
两会进行时:紧扣实体经济“钉钉子”