Revit二次开发在水闸渗流计算中的应用

2023-04-14 03:22牛立军李艺豪
人民珠江 2023年3期
关键词:二次开发插件水闸

牛立军,李艺豪

(华北水利水电大学水利学院,河南 郑州 450000)

Autodesk Revit作为实现BIM技术的核心软件[1]。因其可视化程度高、交互能力强等特点,被广泛应用于水利工程的设计、施工等阶段[2]。由于自身缺乏渗流计算模块,导致无法满足水闸正向设计的要求。传统的渗流计算大多利用Excel表格、理正、AutoStable等软件辅助计算,其可视化程度低,不能满足模型参数与计算参数的相互联动,计算结果不能即时反映到防渗措施(如铺盖)的设计中。通过Visual Studio平台利用C#语言实现与Revit API接口的贯通,实现对Revit的二次开发,为上述现存问题提供了新的解决思路[3-5]。

国内基于Revit的二次开发多数应用于工民建专业,在水利工程中的应用有待深入研究[6-9]。王玄玄等[10]结合二次开发的相关技术实现了Revit与Abaqus模型转换接口的贯通,提高了处理复杂结构建模和进行相关应力分析的效率。朱致远等[11]利用二次开发技术实现了挡土墙的稳定计算,并应用实例取得了良好的效果,弥补了Revit平台挡土墙稳定计算的缺失。姜楠等[12]基于BIM平台利用VB技术进行二次开发,初步实现了三维模型与信息模型在施工阶段的应用,弥补了BIM技术在施工阶段应用的缺失。前人的研究为BIM技术在水利行业的深度应用提供了重要的参考价值,但BIM技术在水闸渗流计算中的应用仍是短板。

针对现有研究不足,本文利用C#语言将传统的渗流算法(改进阻力系数法)通过Revit API接口与事先绘制好的水闸BIM模型挂接,实现了对水闸模型参数的获取、修改以及可视化的渗流计算过程和结果到模型的实时反应。

1 插件开发及实现过程

主要介绍了渗流计算插件的具体开发思路和难点,以及通过C#语言进行的模型信息交互模块和计算分析模块的代码编译,实现了水闸渗流计算全过程可视化交互式操作。

1.1 开发思路

水闸渗流计算插件的开发基于.NET框架,采用C#语言,平台设计主要包含模型信息交互模块和渗流计算分析模块,开发思路见图1。

图1 二次开发技术路线

主要步骤如下:①搭建编程环境(在Visual Studio中添加Revit API接口引用);②核心模块,通过新建类从IExternalApplication(外部应用)进行模型信息交互模块和渗流计算分析模块的代码编写,主要实现了针对模型的元素获取、参数的读写、渗流计算分析功能;③功能测试,针对以上实现功能进行逐一测试,若测试成功则“是”,结束编程工作,若出现问题则“否”,重新进入核心模块调试代码直至成功。

1.2 可视化模型信息交互

实现可视化模型信息交互的主要步骤:①通过IExternalCommand(外部命令)接口实现,执行Transaction命令找到模型文件夹位置,利用GetElement和LookupParameter函数命令分别实现模型ID号和模型参数的获取,实现模型与插件的绑定;②通过创建Form窗口,分别利用TabControl、GroupBox和TextBox等控件完成模型信息交互界面的设置,架构设计见图2;③通过执行Execute命令利用TextBox控件将模型多个参数与插件实现双向绑定,从而实现了TextBox控件中数值变模型即时改变,达到了人机交互的效果。

图2 可视化模型信息窗体构架设计

1.3 可视化计算分析

1.3.1实现方法

计算分析模块是渗流计算插件实现的核心功能,根据规范[13]可知水闸渗流计算的方法有流网法和改进阻力系数法。本文中所利用的计算方法是改进阻力系数法[14],该方法将水闸模型简化分为进出口段、内部垂直段、内部水平段,见图3,然后通过式(1)—(3)计算其各分段的阻力系数(ξi),通过各段的阻力系数确定各分段的水头损失(hi)以及出口段的渗透坡降(J0)与规范对应的规定值进行对比判断。利用C#语言将上述方法计算流程进行模块封装,完成阻力系数、渗透压力、渗透坡降和结果分析等计算方法的代码编译。

图3 分段基本形式

(1)

(2)

(3)

式中ξ0、ξy、ξx——进出口段、内部垂直段、内部水平段的阻力系数;S、S1、S2——进、出口段板桩或齿墙入土深度,m;T——地基的透水深度,m;Lx——水平段长度,m。

1.3.2实现功能

计算在不同水位参数、不同地基类别下的阻力系数、渗透压力及渗透坡降对照规范允许值。在代码编译中利用C#语言的判断语句设置对应参数的阈值,并将计算结果的TextBox控件与BackColor属性进行绑定,当计算结果不满足阈值要求,TextBox控件颜色将发生改变,效果见图4,实现了在多种防渗设计方案下的结果快速计算和即时判别的功能[15]。

图4 计算结果分析

2 应用实例及验证

本部分以某节制闸为例,将模板模型导入插件中分别进行2种设计方案下渗流计算:方案一,仅设置水平防渗设;方案二,水平防渗设施与垂直防渗设施相结合。并将同样的数据导入AutoBank软件验证插件的可靠性。

2.1 建立参数化三维模型

通过AutoRevit软件建立水闸工程参数化三维模型步骤如下:①首先通过新建公制常规模型创建水闸工程的各个参数化族文件;②通过新建项目文件,将参数化族进行组装,形成三维水闸模型;③对组装好的水闸模型设置其全局参数。成果见图5。

图5 参数化水闸模型

2.2 参数获取及修改

运行插件并打开创建的水闸模型,根据设计工程的实际情况在工程基本资料界面选择不同水位参数及地基类别、通过模型参数交互模块调整模型对应的参数值大小;打开参数交互界面,其中计算参数和有效深度值可以通过模型直接读取到TextBox控件中,也可以在TextBox控件中输入修改值。方案一(水平防渗设计方案)见图6、7,方案二(水平防渗和垂直防渗相结合设计方案)见图8、9。

图6 方案一工程基本资料界面(模型中红色部分为防渗长度)

图7 方案一参数获取界面

图8 方案二工程基本资料界面(模型中红色部分为防渗长度)

图9 方案二参数获取界面

2.3 计算

点击参数交互界面下端的“计算”按钮,得出各段的阻力系数值、水头损失值、进口段和出口段的水头修正值以及渗流出口处的坡降。以正常蓄水位工况为例,2种设计方案的计算结果见图10、11,TextBox控件底色并未发生改变,故得出计算结果满足阈值要求。

图10 方案一计算结果

图11 方案二计算结果

2.4 验证

因AutoBank软件被广泛应用在水工建筑物的渗流计算中,故采用相同设计尺寸、水位条件、地基类型,将参数添加到AutoBank软件进行计算得出结果,与渗流计算插件计算结果进行对比具有一定的参考意义。以无板桩设计方案正常蓄水位工况下为例(表1),得出结论:插件与AutoBank软件计算结果基本一致,说明了插件计算的可靠性。

表1 计算结果对比

3 结语

基于正向设计理念开发了基于Revit二次开发的水闸渗流计算插件,实现了渗流计算分析全过程可视化交互式操作,使计算结果直接反映到水闸防渗体的设计上,为水闸防渗设计提供了2种方案(水平方式、水平与垂直方式两者兼有)。实时比较2种方案的防渗效果和尺寸设计,取得以下3个成果:①利用TextBox控件将模型参数与插件实现贯通,达到TextBox控件数值改变,模型随之改变,增强了模型的复用性;②通过创建窗口,将水闸设计的渗流计算、通过代码进行抽象封装,实现了快速计算和结果的即时判别;③个性化设计方案创建,在防渗设计中考虑到多种防渗体的选择,本插件可通过是否增设垂直防渗体来选择设计方案,实现了即时的方案比选。

最后,通过实例验证取得了良好的实践效果,有效避免了因为数据模糊等原因造成的返工,提高了设计及复核效率,同时还满足实际设计生产中方案比选的行业需要。考虑到水利工程类型的多样性和设计的复杂性,本文的研究对象仅限于水闸工程,未来可以进行其他水利工程的相关计算插件研究。本文针对于水闸的渗流问题的研究,在一定程度上可为BIM技术在水利行业的进一步深化应用提供技术参照。

猜你喜欢
二次开发插件水闸
浅谈基于Revit平台的二次开发
自编插件完善App Inventor与乐高机器人通信
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
2016年河南省已建成水闸数量
基于jQUerY的自定义插件开发
全省已建成水闸数量
MapWindowGIS插件机制及应用
河南省2014年已建成水闸数量
基于Revit MEP的插件制作探讨