从BIM到GIS(高级)| IFC LOD 200转LOD 3 CityGML
译文地址:
1、前言
本示例演示了将更复杂的LOD 200 IFC模型高级转换为LOD3 CityGML文档的方法。输出结果为LOD2和LOD3表示的Riverside Building数据。
2、详细步骤
2.1下载数据
本练习将使用DC Riverside Building LOD 100 IFC以及DC Riverside Building ARCH 200 IFC数据文件,在开始之前,请从Vectorworks网站下载LOD_100数据和LOD_200数据(文末有链接)。
2.2读取数据
在本示例中,将使用Revit读模块用于读取LOD 200 IFC数据。这种方法的优势在于,该读模块提供了“具有层次结构的建筑元素”的参数选项,该选项可组合并公开建筑元素的属性,使用户可以更轻松地将Revit读模块读取的几何要素写入GIS之类的表示形式,例如CityGML文件格式。
具体操作为,将Autodesk Revit读模块添加到空白工作区,然后浏览并选择DC_Riverside_Bldg-ARCH-LOD_200.ifc数据集作为输入数据集。在参数设置中,确保将Revit Data View设置为“具有层次结构的建筑元素”选项即可。
AutoDesk Revit 读模块参数设置
在之后的弹窗中,请选择BuildingColumnStair,BuildingElementProxy,Door,Member,Opening,Slab,StairFlight,Wall和Window作为您要读取的要素类型。您的工作区界面上应该具有以上九种要素类型。
2.3按CityGML要素类型分组
了解CityCML格式文档的特定要素类型对应了IFC模型的哪些建筑元素或层是十分必要的。有时,一个CityGML要素类型对应了多个建筑物元素,在这种情况下,将它们通过公共ID进行合并,它们就可以一起汇集到同一要素类型。而由于IFC数据的元素ID不能作为有效的GML ID,因此我们将为每个要素创建新的GML ID。此外,每个要素还要具备一个属性,可以使要素通过该属性与其父类的GML ID(建筑物要素类型)结合起来。
具体操作为,在工作区界面上添加AttributeCreator转换器,并将其连接到StairFlight和BuildingElementProxy要素类型。在参数设置中,将_BldgInstallations作为“转换器名称”,然后创建一个名为feature_type的新属性,并为其赋值为BuildingInstallation,创建一个名为parent_name的新属性,并为其赋值为dc_riverside_building,最后,创建一个名为_uuid的新属性,并将其赋值为gml_ @ UUID()
使用AttributeCreator创建三个新属性
复制AttributeCreator转换器,并将其连接到BuildingColumn和Member要素类型。在参数设置中,将_BldgParts作为“转换器名称”,然后将feature_type的值更改为BuildingPart。
再复制AttributeCreator三遍,并按如下所示进行参数设置:
目前,Opening要素类型暂时保持未连接状态。
每种要素类型的AttributeCreator参数和连接
2.4缩放并创建坐标系
该模型当前以毫米为单位,我们需要先将其单位缩放为米。具体操作为,在工作区界面上添加一个Scaler转换器,并将其与所有AttributeCreators进行连接,在参数设置中,将X,Y和Z设置为0.001。
虽然IFC数据中并没有存储坐标系信息,但我们仍能够使用LocalCoordinateSystemSetter转换器通过自动生成局部参考系(AZMEA)来标记所有要素。具体操作为,将LocalCoordinateSystemSetter添加到工作区界面,并将其连接到Scaler转换器&