span8
span4
IFC和CityGML都有层次结构的数据结构。然而,IFC的结构更加复杂,并且包含CityGML中不需要的中间特性。例如,IFC的门是开口的子,开口是墙壁的子,而CityGML的门是墙壁的子。
同样,这些特性的分组也有些不同。例如,部分窗户和楼梯包含在IFC成员特性中,在转换为CityGML时必须添加到它们的父特性中。
这个例子展示了如何从一个高细节的IFC模型转换为一个细节级别(LOD)为4的CityGML。该工作区足够全面,可以处理大多数体系结构IFC数据集。
IFC-LOD4City.fmw(没有数据的完整工作空间)
下载数据(数据可从Vectorworks下载)
由于这个工作区的复杂性,本教程是一个高级概述。有关参数细节,请打开工作区。提出了关键参数。
请在开始之前使用DC Riverside Building LOD 300 IFC文件下载数据,它来自Vectorworks网站。
DC_Riverside_Bldg_LOD_300。国际金融公司从Solibri模型查看器
IFC特性包含到父特性的链接,但是为了删除不需要的中间特性(比如开头),我们还需要到父特性的链接。为此,我们使用两个独立的行业基金会(IFC)读者。第一个读取器读取所有IFC特性,并将特性和父id的查找表作为变量填充,还将父类型的查找表填充。因为第一个阅读器不使用IFC几何图形,所以运行速度很快。FME按顺序运行它的读取器,以便该读取器完成,并且在第二个读取器启动之前将完全填充查找表。
创建父/子查找表
第二个IFC阅读器用于数据转换。该建筑是一个简单的转换,删除任何几何形状使用GeometryRemover变压器,然后AttributeRenamer将ifc_unique_id设置为gml_id。
从建筑中移除几何形状的简单转换
所有转换都需要将几何图形从复杂的IFC实体转换为可写入CityGML的多曲面,因此创建了一个名为ConvertGeometry的自定义转换器来快速复制这个过程。
在ConvertGeometry自定义转换器中,IFC实体几何与属性集用a分隔GeometryPartExtractor变压器,然后转换成表面与一个GeometryCoercer变压器。然后,为了使多层次的几何结构扁平化,它被分解使用Deaggregator变压器和设置模式,以扁平化所有。然后,使用。将几何图形重新聚合为多个面聚合器变形器的模式设置为几何-组装一个水平和一个GeometryRefiner变压器。
ConvertGeometry自定义转换器工作流亚搏在线
几乎所有的功能都将它们的父链接设置为IFC大楼故事,而不是大楼本身,因此我们需要向上移动一个链接,使用存储在变量中的查找表创建指向大楼的CityGML父链接。由于这将在整个工作区中重复,因此将创建另一个名为GetGrandParentID的自定义转换器。
一个BinaryEncodertransformer与为属性创建的要编码的用户参数一起使用。然后一个VariableRetriever添加tranformer来设置_gparent_id。最后,对_gparent_id进行解码,并使用BinaryDecoder变压器。
GetGrandParentID自定义转换器工作流亚搏在线
在写信给CityGML,总是需要按照严格的命名约定设置一对属性。一个CityGMLGeometrySetter已经创建了自定义转换器来防止数据输入错误,可以在FME集线器上找到它。这个转换器设置CityGML Lod名称和功能角色。
在向CityGML写入之前,简单的转换需要尽可能少的过滤。主要工作流程如下:亚搏在线
1)读取IFC数据
2)ConvertGeometry
3)设置gml_id
4)GetGrandparentID
5)CityGMLGeometrySetter
6)写信给CityGML
示例简单转换,将IfcSpace转换为CityGML房间
CityGML建筑安装和墙壁表面特征由许多IFC特征类型组成,IFC的一些特征可能是两者的一部分。国际金融公司的成员、楼梯、楼板和栏杆被组合成楼梯,并与柱子和梁一起被写成建筑装置。其他成员被组合成幕墙,这些幕墙被写在墙壁表面,就像IFC的特色墙和标准的墙壁一样。
这些分离和组合可能需要从第一个IFC读取器创建的变量中查找父id和祖父id。
输出CityGML文件查看办法查看器
数据属性
滨江大厦样板工程数据制作Nemetschek Vectorworks。
©2019安全亚搏在线软件公司法律