当前位置:首页 期刊杂志

基于Revit的管道放坡系统研究与实现

时间:2024-07-28

李亚克 于海丰 王国鑫2 高二军 潘洪洁 祁昕

(1. 河北科技大学 建筑工程学院,石家庄 050018; 2. 北京橄榄山软件有限公司,北京 100095)

1 引言

BIM(Building Information Modeling)是以建筑工程项目的各相关信息数据作为模型的基础,进行建筑模型的建立,通过数字信息仿真模拟建筑物所具有的真实信息。它具有可视化、协调性、模拟性、优化性和可出图性等特点,BIM可以实现建筑全生命周期的信息共享,对于项目的可视化管理以及项目各参与方的信息共享传递具有很大优势[1-2],受到行业者的青睐;但是,对于给水排水工程的设计,很多技术还停留在二维手段上,缺乏先进的BIM技术作为支撑,这其中因涉及到的因素包括外在的利益和内在的实际应用;其中,对于内在因素来说,由于软件的熟悉程度不够,加上国内的一些规范的限制,严重的影响了BIM技术在国内的发展。

建筑给水排水工程设计是建筑工程设计中重要的组成部分,通常,建筑给水排水工程管道种类多,数量大,且布置复杂;涉及到的材料种类丰富,不同的管材的摩阻系数不同,计算较为复杂。现阶段,建筑给水排水工程设计通常存在工作效率低下,可视化程度差;协调困难;设计中常与其他专业发生冲突等问题。而在BIM信息模型中,所有的给水排水管道和设备都是三维的,而且尺寸与实际空间吻合,表现得生动具体;能够即时看到其它专业的内容,交流顺畅,解决管道空间碰撞问题;自动管理图纸,统计材料,并能以表格的形式输出,极大地提高了效率。能对给水排水管道中的水流进行模拟,进行复杂的水力计算,则采用BIM技术创建给水排水管道和设备是必需的前提[3]。并且,还能通过BIM相关软件的二次开发技术,间接支持了各专业软件之间数据的互通,极大地提高了协同性。

本文参考了《室外排水设计规范》(GB 50014-2006)[4],研究了基于BIM技术在给水排水工程设计中的应用时,通过Revit二次开发技术,实现了在进行给排水管道坡度调整时,批量调整管道管径与坡度值的对应关系。同时,利用工程实际进行了验证。

1 研究方法

1.1 规范依据

根据《室外排水设计规范》(GB50014-2006)第4.2.10条规定,排水管道的最小管径与相应最小设计坡度的规定取值是:污水管最小管径d=300mm时,相应最小设计坡度 塑料管0.002、其他管0.003。雨水管最小管径d=300mm时,相应最小设计坡度塑料管0.002、其他管0.003。随着城镇建设发展,街道楼房增多,排水量增大,应适当增大最小管径,并调整最小设计坡度。常用管径的最小设计坡度,可按设计充满度下不淤流速控制,当管道坡度不能满足不淤流速要求时,应有防淤、清淤措施。

室内排水管坡度的设定和室外排水管坡度不同,室内的设计相对来说面临的状况更加复杂,所以一般都不在分区域、分方位进行单独计算而是采取一个特定的数值,直接确定排水管坡度。这样的排水管坡度一般在验收规范等相关的文件中都有明确的规定,在进行室内装修的时候,业主和设计施工人员一定要了解相关的验收规范,确定相关排水管坡度的标准值、最小坡度值以及支点之间的规范间距,才能更好地完成室内排水的流畅设计。排水管坡度和所用排水管道的材质有关系,一般来说铸铁材质的管道,由于其摩擦系数比较大,所以在设计排水管坡度时,其坡度的设计要大于塑料排水管道。

通常情况下,给排水管道的坡度值公式为:

(1)

式中:

i——给排水管道的坡度;

h——管首的管底标高;

h0——管尾管底标高;

l——管总长;

在实际设计中室内排水管坡度都是不采用计算的方法的,因为计算过程设计到材质和摩擦系数,过程相对复杂,通常采用定值,如表1和表2所示。

表1 塑料管的管径与坡度对应关系表

表2 铸铁管的管径与坡度对应关系表

1.2 给排水放坡系统设计思路

本文根据坡度方向、起点标高设置和坡度设置三个参数来确定给排水放坡系统功能,其中,设计工作流程图如图1所示。

图1 给排水放坡系统设计流程图

2 系统开发平台及工具

本文介绍的二次开发是基于Revit2016版本,主要开发工具为Visual Studio2012、通过使用Revit API(Application Programming Interface)、Revit Lookup以及Revit Add In Manager,用C#语言完成给排水系统放坡的插件开发。

2.1 关于Revit API的介绍

如图2所示,Revit API是建立在Revit产品的基础之上,它是一个类库,里面包含了二次开发使用的一些命名空间,以及命名空间下的类和类中包含的函数和属性,需要在Revit运行时才能工作,通过API,开发人员可以通过这些接口访问Revit,可以添加用户基于Revit API开发的插件来扩展和增强Revit的功能和应用[2]。

使用Revit API具体可以做到:访问模型的图形数据和参数数据;创建、修改、删除模型元素;创建插件来完成对UI的增强;创建插件来完成对一些重复工作的自动化;集成第三方应用来完成诸如连接到外部数据库、转换数据到反洗应用等;执行一切种类的BIM分析;自动创建项目文档[5]。

图2 Revit2016 API

Revit Lookup是Autodesk开发的插件,它可以帮助开发人员在开发过程中通过Lookup查找所需要的信息,大大的提高了开发人员的编码效率。

Revit Add In Manager也是Autodesk开发的插件,用于加载开发人员外部编写的动态库,对于Revit二次开发调试过程,极大地提高了代码调试的效率,其优点就是不用重新启动Revit就可以修改代码并再次进行加载和运行。

2.2 开发平台及语言

本文讲述的二次开发最终创建的文件为外部.dll文件,创建的平台为Visual Studio2012(简称VS),基于的模板为类库。开发的语言为C#语言,C#语言作为一门简单、现代、优雅、面向对象、类型安全、平台无关的一门新型组件编程语言,凭借着其源自C/C++的语法风格,融合了Visual Basic的高效和C/C++的强大,再加上其创新的语言特性,刚一出世,就深受世界各地程序员的好评和喜爱,成为一颗耀眼的明星[6]。结合了Revit2016提供的外部接口,实现在Revit2016中的给排水系统放坡功能。

2.3 开发主要步骤

采用Visual Studio2012,对Revit2016进行二次开发,具体步骤:新建项目,启动VS2012,新建一个Visual C#类库项目,修改文件重命名。VS2012自动生成C#类文件,同时修改类文件重命名。添加引用,在Visual Studio2012菜单栏中点击项目→添加引用,在弹出的“添加引用”对话框中,选“浏览”标签,选择Revit2016安装文件根目录下的Revit API.dll和Revit APIUI.dll两个动态链接库,完成添加。需注意,在属性中将Revit中的两个.dll引用的“复制”到本地改为“false”,这样避免复制文件到本地目录。代码编写,在.cs文件下引用命名空间代码区添加Autodesk. Revit. DB、Autodesk. Revit. UI等引用,创建命令类,创建一个IExternalCommand派生类,实现接口,并在Execute()方法中编写实现功能的代码。在VS的解决资源方案下生成程序,在输出窗口中找到.dll文件输出的位置。执行插件,启动Revit2016,在功能区的附加模块中,在Add-In-Manager中的Load下输入.dll文件的位置,运行执行插件。调试插件,在编码、运行过程中可能会遇到各种问题,因此需要进行断点调试检查当前变量和对象的状态来定位问题[7-9]。

3 功能的实现与验证

3.1 主要功能

软件的主要功能是在Revit2016中加入批量调整给排水坡度功能,能满足以下功能:

(1)支持对连续排水管道,有立管连接的排水管道进行放坡;

(2)支持向上或向下放坡;

(3)支持设置起坡点偏移量放坡;

(4)支持国标规范为不同管径配置相应坡度,同时,可自定义、添加/删除。

3.2 软件界面及操作说明

软件以外部插件的形式嵌入到Revit2016中,安装本软件后,在Revit2016的工具栏中会生成一个按钮,单击按钮,启动软件,软件的主要工作界面如图4所示。由工作界面可以看出,界面分三部分:坡度方向,起点设置和坡度设置,其中,在坡度设置中,又包含了标准坡度设置子界面。在坡度方向中,可以选择管道需要调整坡度的方向;在起点设置中,可以选择随管道标高自动调整坡度,也可以直接设置偏移量,以固定高程点调整坡度,同时可以选择项目样板中已经设置好的标高进行调整;在坡度设置中,可以按固定值调整,同时,可以支持标准调整铸铁管和塑料管的标准坡度值。

给排水坡度系统界面

标准坡度设置界面

3.3 程序核心要点介绍

本技术根据Revit2016 API文档中的函数和类,同时编写了实现核心功能的辅助函数程序,在实现一些功能的过程中,主要的函数如表3所示。

表3 程序中运用的主要函数

本技术采用的核心功能是Export()函数,需要涉及到参数有起点设置数值和坡度设置数值,其中坡度设置中的参数值分为塑料管和铸铁管的存储数据;而在坡度设置参数中,我们通获取塑料管和铸铁管的存储数据值,然后修改管道中的起始高程的斜率,实现坡度与Revit中设置对应一致,完成功能所需。

本功能的核心技术代码是getAllConnectPipe(),即查找和管道连接的所有连接管件如下:

public Connector FindRefConnector(Connector connector_0)

{

Connector connector;

if (connector_0 != null && connector_0.IsConnected)

{

IEnumerator enumerator = connector_0.AllRefs.GetEnumerator();

try

{

while (enumerator.MoveNext())

{

Connector current = (Connector)enumerator.Current;

try

{

if ((connector_0.Owner.Id == current.Owner.Id ?

false : connector_0.Origin.DistanceTo(current.Origin) < 1 / 304.8)

&& current.IsConnectedTo(connector_0))

{

connector = current;

return connector;

}

}

catch (Exception exception)

{

}

}

return null;

}

finally

{

IDisposable disposable = enumerator as IDisposable;

if (disposable != null)

{

disposable.Dispose();

}

}

return connector;

}

return null;

}

3.4 工程实例应用

以北京市某装配式项目中机电专业模型的一部分管道喷淋系统作为工程实例进行测试。设计人员在进行机电模型设计的过程中,通常会遇到在Revit中调整管道坡度值时,涉及到管道的直径和偏移量等参数的修改和设置,且可能单根或者多跟管道的修改,劳动量巨大;同时,在设计的过程中,需要查找规范确定设计坡度值,给设计人员带来极大困扰,严重地影响了工作效率以及机电专业与其他专业的数据的传递和协同工作。

图4 系统调整坡度图

为此,通过给排水放坡系统插件的使用,批量调整管道的坡度值,可以很好地解决这一问题;同时,根据插件的标准坡度设置功能,可以自动根据标准规范调整不同管材的标准坡度值,如图4中的插件修改后的系统图所示。经过测试,对比手工进行以上的所有操作设置,插件能极大地提高工作效率,同时,解决了在信息传递中模型设计不准确等主要问题,使模型的准确率得到了较大的提升,完美的提高工作效率。有了精准的模型,即可以为建筑和结构人员设计带来极大便利,也为BIM技术在模型全寿命周期的普及使用提供了优势。

4 结语

BIM技术应用可以提高设计质量和效率,已成为行业人员的共识。但现阶段,Revit要取代AutoCAD进行全套设计还有很多障碍,如何利用BIM技术极大化的提高设计效率和精细化程度的研究仍然处于发展阶段,BIM技术在机电专业设计中准确性和效率性等方面所出现的问题,严重的阻碍了BIM技术在国内的推广和发展,通过二次开发技术是提高工作效率的有效可行方法之一。

本文针对于Revit在机电专业设计中调整管道坡度方面的应用不足,介绍了二次开发软件插件,通过修改和创建模型数据的图形和参数信息,完成了Revit在调整坡度时的工作效率低下以及表达不准确的问题,避免了重复性工作。实践表明,插件具有广泛的实用性,可以大大提高工作效率,基本上实现了设计信息传递的不足。但是,现阶段,与二维设计相比,如何定制出一套符合国内设计习惯的BIM设计标准来突破BIM技术发展的瓶颈,仍然值得广大设计与研发人员共同研究与探讨。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!