马 成 陆小龙 汪德江
(1.上海大学土木工程系,上海 200072; 2.国网上海市电力公司经济技术研究院,上海 20000)
基于CAD图纸的BIM模型轴网生成方法研究
马成1陆小龙2汪德江1
(1.上海大学土木工程系,上海200072;2.国网上海市电力公司经济技术研究院,上海20000)
本文通过对CAD图纸文件生成的DXF文件进行分析,识别图纸中的轴网与编号。同时,采用Revit二次开发技术,根据获取的CAD信息,在Revit模型中自动生成相应的轴网与轴网编号,减少了当前人工依据CAD图纸搭建BIM模型的工作量。
BIM; CAD; 二次开发
BIM(建筑模型信息)技术由于集成了建筑的各种信息,在土木行业的设计、施工、运维等方面将具有广泛的应用前景,因此,在我国乃至世界上均得到了大幅度的推广与应用。美国已连续更新其国家BIM标准,当前已推出第三版,英国政府则强制要求政府采购项目必须采用BIM技术。国内的住建部与各省市相继发布了关于建筑业信息化的发展纲要[1-6]。目前,由于土木行业分工的限制,以及大多数设计人员都习惯于CAD设计,因此,国内的BIM模型的建设基本上在设计院出图后,由各BIM行业人员根据CAD图纸搭建BIM模型,其工作量非常大。如何在CAD图纸的基础上,快速生成BIM模型,是当前我们迫切需要解决的问题。
在BIM设计软件中,由于Autodesk公司CAD软件的广泛应用,在民用建筑方面该公司的Revit系列产品占据主流地位。Revit软件提供了强大的二次开发接口,即API(Application Programming Interface),为加强Revit的功能在程序编制技术上提供了可能。
本文通过读取CAD生成的DXF文件,识别图纸中的轴网与轴号,并在Revit中采用二次开发技术,根据CAD图纸中的信息,自动生成BIM模型的轴网与轴号,为实现快速建模提供了基础,减少了BIM模型搭建的人工成本[6-7]。
1.1开发工具
本文采用Visual Studio 2010作为编程工具,编程语言为C#,Revit软件版本为2014。Revit的二次开发使用Revit SDK,其提供了大量的Revit接口。在开发过程中,由于二次开发读取的信息为Revit内部的信息,而不是Revit界面上的信息,此时,需要配合使用Revit提供的Revit Lookup插件,可以查看各种族实例的所有属性,如图1。
图1 Revit Lookup示例
1.2CAD图纸标准
为了方便识别CAD图纸中的轴线与轴网编号信息,并最终实现Revit中生成的轴线与CAD当中的轴线保持长短、间距以及坐标的一致,因此CAD图纸需预先按设定的标准进行修改,将所有轴线放置在一个图层上。
2.1DXF文件结构
本文采用读取CAD导出的DXF文件的方式读取CAD图纸的内容。DXF文件是由成对的整数代码和与代码关联的值组成的,CAD将代码称为组码,代码关联的值称为组值,每个组码和组值都各占一行。完整的DXF文件由6个部分组成,分别是标题部分(HEADER)、类部分(CLASSES)、表部分(TABLES)、块部分(BLOCKS)、实体部分(ENTITIES)和对象部分(OBJECTS)。每个部分均由SECTION开始ENDSEC结束。其组成以及部分组码意义如下表。本文着重实体部(ENTITIES),该段包含各种实体,以及任何块的调用[8-11]。
表1 dxf文件结构
名称标记解释起始段0SECTION表示一个段的开始,在每一个段开始位置都需要有标题段2HEADER包含一些通用的信息,比如系统变量,参数变量类别段2CLASSED包含应用和定义的类表段2TABLES包含块、标注、坐标、视窗配置、层的风格以及文字字体等的符号表块段2BLOCKS包含块的名称、比例等信息实体段2ENTITIES包含各种实体如线、圆、弧等的位置、粗细、颜色等的信息对象段2OBJECTS包含对象的定义以及与其相关的一些信息终止标记0ENDSEC一个段的结束结束标记0EOF整个文件的结束
2.2DXF文件读取
由前面介绍可知DXF文件由组码和组值构成,图2是直线在DXF文档中的片段。组码8和组值0表示直线所在图层为0。10、20、30和11、21、31分别表示其起点和终点坐标。由图2可知组码和组值成对出现,因此需要编程识别DXF文件,将组码和组值分别赋值于两个字符串变量,流程如图3。
表2 部分组值意义
组代码意义组代码意义1文件名、属性等40-48宽度、高度、半径、比例等6线型名50-58角度值7字型名62颜色号8图层名71、72分别为定义文本式样、对称方式、文本对齐方式9标题变量名210X方向分量10、20、30起始坐标220Y方向分量11、21、31终止坐标230Z方向分量
图2 DXF文件示例
图3 读取DXF文件流程
在CAD图纸中轴网是由直线、圆和文字构成。将CAD图形保存为DXF文件时这些图形以各点坐标、半径以及文字高构成。对于不同的实体,如圆和直线需要对应编写不同的读取方法,储存各自不同的参数。可以在程序中通过循环,以实体名和图层名来判断数据类型。读取DXF文件的流程图见图4。
图4 读取DXF文件完整流程
3.1轴网的生成
Revit中轴网所对应的类是Grid,继承于Element。在Revit中轴网创建函数为NewGrid。该方法有两个重载,分别对应于直线和曲线,代码如下:
Document.Create.NewGrid(Arc)
Document.Create.NewGrid(Line)
轴网的建立,可以通过分别创建曲线和直线,然后将其代入NewGrid方法当中作为参数,即可创建我们所需要的轴网。通过使用本方法,即可根据DXF文件当中读取到的数据,在CAD当中生成完全一致的轴网。创建直线和曲线的方法如下:
Line geomLine=Line.CreateBound(start,end)
Arc geomArc=Arc.Create(START,END,
ZHONG)
3.2轴网编号修改
在Revit中生成轴网时,必须解决解决轴网编号问题。Revit创建轴网时,会对其自动命名。如:第一条轴网会被命名为1或者A,其后的所有轴网会依次递增。这种自动命名是无法满足本文的要求的,无法与CAD图纸的编号进行对应。本文的实现方法为:找到与轴网延长线或切线相交的圆,读取圆内的文字并将其赋予轴网。在Revit当中可以通过Grid.Name属性来修改轴网名称。轴网的读取流程见图5,创建轴网的完整流程如图6所示。
图5 轴网编号的读取流程
图6 轴网生成流程图
为了验证本文所述内容,采用某建筑的轴网实例将其导入Revit当中。轴网CAD如图7,垂直轴网6根,水平轴网4根,曲线轴网一根。轴网颜色均为黑色,线型采用默认值。
图7 CAD图纸
在Revit当中生成相应轴网,如图7。生成方式采用的是外部命令方式,通过AddinManager导入到Revit当中。AddinManager也属于Autodesk的官方插件,用来加载Revit的插件。采用AddinManager可以不用重启Revit就可以修改插件代码并且在此加载和运行。因为采用的是由直线端点坐标直接生成轴网,因此可以完全保证轴网的插入位置。
图8 Revit生成图
本文通过DXF文件的读取与Revit二次开发技术,实现了CAD图纸的轴网与编号的识别。并可根据识别的CAD信息,在Revit中生成与CAD图纸一致的轴线与编号。本文简述了DXF的数据格式,以及从DXF文件中识别轴线的关键技术,详述了使用Revit的二次开发技术实现Revit中的轴网生成与编号的方法,解决了BIM模型中轴网与编号与CAD图纸的对应问题。结论如下:
(1)使用Revit的二次开发技术自动生成BIM模型的轴网是可行的;
(2)CAD图纸与BIM模型的对接,可以通过DXF作为中间文件得以实现。
本文所生成的轴网,其插入位置和编号完全与CAD当中的轴网保持一致,但是并未考虑线型和颜色问题,在后续的研究当中会进一步完善。轴网只是基础,在后续的研究当中将会加入柱和梁,进而完成整个框架结构的导入。
[1]何清华, 钱丽丽,段运峰,李永奎.BIM在国内外应用的现状及障碍研究[J].工程管理学报, 2012(1): 12-16.
[2]张建平, 李丁,林佳瑞,颜钢文.BIM在工程施工中的应用[J].施工技术, 2012, 16:10-17.
[3]何关培.BIM和BIM相关软件[J].土木建筑工程信息技术, 2010, 2(4): 110-117.
[4]贺灵童.BIM在全球的应用现状[J].工程质量, 2013, 03:12-19.
[5]克里斯·摩尔, 杰弗里·W·奥莱特,王娜.美国国家BIM标准第三版推动建筑/工程/施工/业主/经营者领域的进步[J].土木建筑工程信息技术, 2014, 6(2): 20-23.
[6]徐剑.Revit系统软件二次开发研究[J].铁路技术创新, 2014, 05:39-41.
[7]王建宇, 王昕妍.二次开发实现从AUTOCAD到REVIT快速翻模技术研究[J].土木建筑工程信息技术, 2015, 7(3): 111-115.
[8]刘传亮, 陆建德.AutoCAD DXF文件格式与二次开发图形软件编程[J].微机发展, 2004, 09:101-104.
[9]姚宜斌, 孔建.基于DXF文件的图件转换方法研究及程序实现[J].大地测量与地球动力学, 2011, 01:117-122.
[10]李芳珍, 许伦辉.DXF文件格式及其外部接口的研究[J].兵工自动化, 2008, 07:83-85.
[11]张成才, 孙喜梅,朱陶业.AutoCAD的DXF文件格式及其转换接口研究[J].微型电脑应用, 2001, 08:54-55.
Research on Axis Generation in BIM based on CAD Drawings
Ma Cheng1, Lu Xiaolong2, Wang Dejiang1
(1.DepartmentofCivilEngineering,ShanghaiUniversity,Shanghai200072,China; 2.StateNetworkShanghaiMunicipalElectricPowerCompanyEconomicandTechnologyResearchInstitute,Shanghai20000,China)
This paper presents the recognition of the axis line and the numbers on axis by analyzing the data of DXF file exported from CAD drawing.After that,based on the CAD information,the program auto-generate the axis and number in BIM on the secondary development of Revit package.It reduces the time for building the BIM model from CAD drawings.
BIM; CAD; Secondary Development
马成(1991-),男,在读硕士。主要研究方向:BIM二次开发。
TU17
A
1674-7461(2016)01-0043-05
10.16670/j.cnki.cn11-5823/tu.2016.01.07