Revit与3D3S建筑信息模型的数据转换

来源:建筑界编辑:黄子俊发布时间:2020-03-22 19:52:37

[摘要] 随着计算机硬件与软件技术的迅猛发展, 计算机辅助设计在建筑领域的应用也得到了长足的发展, 大量的计算机建筑辅助设计软件相继涌入市场,

随着计算机硬件与软件技术的迅猛发展, 计算机辅助设计在建筑领域的应用也得到了长足的发展, 大量的计算机建筑辅助设计软件相继涌入市场, 尽管各个软件都基于唯一的建筑实体模型, 却因为仅仅支持自己的数据标准, 因而本专业软件间、相关专业软件间的数据交换与共享成为建筑设计集成化技术的瓶颈。针对以上问题, 不外乎两种解决之道: 各应用软件自行开发相互数据交换与共享的接口, 如同济大学的3D3S 软件9. 0 版本便提供了由 PKPM 软件的SAT W E 模型文件的导入接口和至A NSYS,SAP2000 模型文件的导出接口。然而此解决方案并未根本解决建筑模型的数据交换与共享问题; 一个真正的完全开放的建筑产品数据表达与交换国际标准的产生才是充分实现数据交换与共享的基础。IAI( International A lliance for I nteroperability) 组织定义的IFC(Industry Foundatio n Classes) 标准便是一个获得建筑领域专业人士广泛支持的ISO 标准。本文研究的内容就是介绍如何应用IF C 标准实现建筑模型自动生成结构模型文件。

IFC 标准与Revit

IFC 标准本质上是建筑物和建筑工程数据的定义, 值得注意的是其建立在拥有大量成熟研究结果的ST EP 项目基础上, 例如ST EP 的几何定义和建筑工程核心模型, 全世界基于EXPRESS的领先研究成果都可以很容易地引入I FC。尤其是ST EP 中的建筑结构模型的发展能够有效应用在IFC 项目中。1997 年1 月,IAI 发布了IF C 信息模型的第一个完整版本( IFC 1. 0 版本) ,2006 年2 月发布了IFC2x 版本3( 简称IF C2x3) , 本文就是基于该版本实现数据转换。国际上三大CAD 应用软件开发商Autodesk 公司、Bentley 公司和Graphisoft 公司均已经接受并支持IFC 标准, 本文就是采用Autodesk 公司的Revit ar chitecture 和Revit structure 软件导出的IFC 模型文件转换为结构模型文件。尽管IFC 的文档是完全开放的, 然而其所采用的ST EP 文件格式的复杂性以及IF C 建筑模型本身的复杂性都使得IFC 开发并非易事。因此很多公司开发了旨在为IF C 开发者提供方便的IFC 工具包, 通过这种工具包开发者就不需要将大量的时间花在底层支持平台的研发上。目前常用的IF C 工具包有EPM T echnology AS 公司的EDM modelConver ter , Eur ostep 公司的IF C Classic T oolbo x, T N O Environment and Geosciences 公司的IF C engineDL L 等。本文就是基于IF C engine DLL 工具包实现IFC 文件的建筑模型信息提取。

3D3S 与结构模型文件

3D3S 的结构模型文件的一般表达格式如下:

1)注释:

以$ 或! 或 或/ 开头的字符串表示是注释, 注意其中不能有空格。

2)定义结构体系:

ST RU N o。

3)定义长度单位:

U NIT No。

4)生成节点:

N 节点号 坐标x 坐标y 坐标z。

5)生成单元:

E 单元号 节点1 节点2。

6)定义节点约束:

Con 节点号 X( 0 1) Y( 0 1) Z( 0 1)

RX( 0 1) RY( 0 1) RZ( 0 1) 。

∀ ∀

因篇幅限制, 文件的表达格式在此未表示完全, 可查阅3D3S使用手册。

IFC 文件到3D3S 文件的数据转换

数据结构:

主要采用的几种数据结构有节点、单元、楼层三种数据结构。

节点的数据结构:

Calss Node

{

Int NodeI D; / / 节点的索引号

Double CoordinateX, CoordinateY , CoordinateZ;

/ / 节点的三维坐标值

Int ConstraintT ype; / / 节点的约束类型

A rraylist NodeInElements; / / 节点所属单元链表

} ;

单元的数据结构:

Class Element

{

Int ElementI D; / / 单元索引号

A rraylist NodesInElement; / / 单元内节点链表

Int Sect ionT y pe; / / 单元截面类型

Int ProperT y pe; / / 单元材性类型

Int ContainedI nF loor; / / 单元所在楼层

Int ElementT y pe; / / 单元类型

} ;

楼层的数据结构:

Calss Floor

{

Int FloorI D; / / 楼层索引号

Double Elevation; / / 楼层顶标高

Double F loorHeig ht; / / 楼层层高

模型,转换,建筑

延展阅读

相关文章