基于二次开发方法的BIM模型数据提取方法研究

2019-07-19 06:24陶婉婉
价值工程 2019年8期
关键词:二次开发

陶婉婉

摘要:文章从BIM模型的数据结构入手,对其组成要素、数据结构层级进行分析。然后提出从BIM模型中进行信息提取的方法,使用二次开发方法在Revit系列软件的平台上,对其API进行分析,并阐述代码实现的过程。结合案例进行实证分析,验证本文所提出方法的可行性,为加深BIM模型在工程项目领域中的运用提供了技术支撑。

Abstract: This paper starts with the data structure of BIM model, and analyzes its constituent elements and data structure hierarchy. Then, the method of extracting information from BIM model is proposed. The secondary development method is used to analyze the API on the platform of Revit series software, and the process of code implementation is explained. The empirical analysis is carried out in combination with the case to verify the feasibility of the proposed method and provide technical support for deepening the application of the BIM model in the field of engineering projects.

关键词:BIM;数据提取;二次开发

Key words: BIM;data extraction;secondary development

中图分类号:TU17;TU722                             文献标识码:A                                  文章编号:1006-4311(2019)08-0159-03

1  BIM模型数据结构分析

BIM的全称为Building Information Modeling,BIM模型的存在是為了给建筑工程进行可视化的三维建模,其本质还是一个绘图软件,那么在BIM模型中最基本的单位就是图元。图元包括点、线、面等组成模型的最基本要素,包括模型图元、视图图元和辅助图元。而BIM除了绘图软件的基础上,具有参数化的特点,也就意味着所谓的图元并不仅仅意味着表面的可视化,还要将图元所具备的参数属性进行可视化。下面根据三种图元类型来进行一一阐述。

1.1 模型图元

模型元素是BIM模型中最重要的元素,表示建筑模型的几何形状,是建筑模型的重要组成部分。模型元素也称为结构构件,分为结构构件和附属构件。结构构件可以独立地存在于模型中,包括墙壁,地板等。而附着构件则必须依附于结构构件而存在,包括门、窗等。

1.2 视图图元

在BIM模型中,视图图元指的是建筑模型的视图以及明细表。视图包括三维立面图、平面图、剖面图、三维图等,明细表主要是一些数据的整理与表达。

1.3 辅助图元

辅助图元是辅助于模型图元的,分为基准图元和注释图元。其中,基准图元能够通过轴网、参考平面、标高等形式实现BIM模型在空间中的表达。而注释图元则指那些文字、尺寸和符号的标注,对建筑模型进行细节的表达。

BIM模型的所有数据都是以工程项目的构件比如墙、门、窗等为核心展开的,而每个构件都是其本身各种属性数据的整合。文章中的BIM模型是在Autodesk公司开发的Revit 2015平台上进行建模的,在Revit2015中的模型工程项目中,它由两种类型组成:结构构件和附属构件。而附属构件指的是门、窗、家具这些在模型中无法独立存在,必须附着于结构构件上施工的构件,如图1所示。

2  Revit API解读

从BIM模型中提取信息需要根据各个参与方对应的工作内容进行Revit API内容编写和代码实现。文章根据常用的的一些构件参数Revit API进行解析并设计算法,以 Revit 2015以及Visual Studio 2012为平台,采用C#计算法编程语言进行编写。

Revit API是Revit系列软件的类库,其存在主要有三个功能:一是覆盖软件本身的功能,并从更深层次的源代码角度解析和调整模型;二是使所有用户能够使用API代码进行二次开发,创建新的命令,从而满足用户对于部分功能的缩放需求;三是使其能够与第三方应用软件相连接,从而运用于分析应用领域。

文章使用Revit API来对Revit系列软件进行二次开发,实现从BIM模型中提取数据的功能。而在这之前,首先需要下载软件开发工具包(Software Development Kit),获取Revit API帮助文档以及RevitLookup的插件。然后下载Visual Studio 2012,选择C#语言进行编程。同时,通过AddInManager插件来加载在Visual Studio 2012平台上所编写的二次开发插件。

其中,在Visual Studio 2012平台上进行代码编写时,需要使用Revit API.dll和Revit APIUI.dll程序集。这两个程序集所包含的内容不同,具体如表1所示。而在信息提取的二次开发过程中,主要运用到的是Revit API.dll的IExternalDBApplication接口、Parameter方法、访问DB级别的Element以及Revit APIUI.dll中的IExternalApplication相关接口、TaskDialogs任务对话框内容。

3  BIM模型数据提取方法

对BIM模型信息的提取主要分为两大内容:一是BIM模型中所有的构件清单,二是所有构件所带有的属性参数。

Revit API对于建筑构件的分类细度比较大,比如结构柱的族类型下就包含圆形柱、方形柱等类型,然而在工程项目施工过程中,并不会因为柱子的族类型不同而影响施工工序,因此将Revit API中的构件个体映射至较高较高层级的类上,然后再根据每个构件的属性参数来确定其工程量。Revit API映射的构件类如表2所示。

仅仅从BIM模型中提取出构件清单是远远不够的,还需要将所有构件所负有的参数化属性信息提取出来才能够得到完整的模型信息。对构件属性数据的提取能够通过Revit API内置参数(BuiltInParameter)或者共享参数(SharedParameter)从BIM模型中直接提取[4]。而提取的前提是建立重要的数据属性API及其对应的Revit API的迎神。常用的属性参数映射整理如表3所示。

4  实证研究

为了验证上文所提出的本体理论,本模型只有一层,如图2所示,占地面积78平方米。在此模型中,含有所有常用的建筑结构构件,包括楼板、屋顶、梁、柱、门、窗。

从BIM模型中提取出所有构件的族、几何数据以及位置数据,首先要在Visual Studio 2012平台上利用C#语言对数据提取代码进行编写,具体代码详情如下:

FilteredElementCollector fec = new FilteredElementCollector(doc, doc.ActiveView.Id);

List listE = fec.ToElements().ToList();

StringBuilder str = new StringBuilder();

foreach (var ele in listE)

{

Parameter vol = ele.get_Parameter(BuiltInParameter.HOST_VOLUME_COMPUTED);

Parameter area = ele.get_Parameter(BuiltInParameter.HOST_AREA_COMPUTED);

Parameter lev = ele.get_Parameter(BuiltInParameter.STAIRS_BASE_LEVEL_PARAM);

Options opt = new Options();

opt.View = doc.ActiveView;

if (vol!=null&&area!=null)

{

str.Append(ele.Category.Name.ToString() + "," + vol.AsDouble().ToString() + "," + area.AsDouble().ToString() + "\n");

}

}

TaskDialog.Show("The List of Componentsparameters", str.ToString());

return Result.Succeeded;

代码撰写完成后,使用AddInManager插件将此代码附着于Revit 2015平台上,提取出的所有构件清单,此模型一共提取出26个构件,整理如表4所示。

5  结论

通过對BIM模型中的数据结构进行分析,结合Revit系列软件的API,文章提出使用二次开发的方法来提取BIM模型的信息。并且最终通过实证研究验证了文章所提出的二次开发的方法能够有效地根据需求,提取Revit系列软件平台上BIM模型的构件级相关数据信息,包括构件的基本属性、构件的层次以及构件之间的关联关系。

参考文献:

[1]韩凤华.面向绿色建筑设计信息需求的数据标准化研究[D].大连理工大学,2016.

[2]郭奕婷.基于BIM的进度计划自动编排研究[D].华南理工大学,2017.

[3]王红林,周创.基于IFC的BIM半结构化数据库研究[J].西安文理学院学报(自然科学版),2018,21(06):33-36.

[4]周洪波,施平望,邓雪原.基于IFC标准的BIM构件库研究[J].图学学报,2017,38(04):589-595.

猜你喜欢
二次开发
浅谈基于Revit平台的二次开发
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
Micaps3.2 版本二次开发入门浅析
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
基于Pro/E二次开发的推土铲参数化模块开发