斯潘8
斯潘4
这个例子演示了一个更复杂的lod 200 ifc模型到lod3 citygml文档的高级转换。输出包含河滨建筑的Lod2和Lod3表示。
国际金融公司-lod3city.fmw (已完成工作区,无数据)
下载数据(数据可从VectorWorks下载)
1)下载数据
本练习将使用DC Riverside Building Lod 100 IFC文件以及DC Riverside Building Arch 200 IFC文件。开始前请访问VectorWorks网站下载第1部分:LOD-100下的DCR-LOD U 100.zip文件和第2部分:LOD-200下的DCR-LOD U 200.zip文件。
2)读取源
在这个例子中,REVIT Reader用于读取LOD 200 IFC数据。这种方法的优点在于,它提供了“具有层次结构的建筑元素”读卡器选项,用于组装和公开建筑元素的属性。然后,可以更容易地将由revit reader提取的几何图形写入类似于gis的表示,如citygml文档。
添加一个欧特克复仇阅读空白工作区并浏览到dc_riverside_bldg-arch-lod_200.ifc数据集。在“参数”中,确保将“REVIT数据视图”设置为“带层次的建筑元素”。
autodesk revit reader参数
对于要读取的要素类型,请选择BuildingColumnStair,构建元素代理,门,成员,开放,厚板,StairFlight墙和窗户。画布上应该有九种功能类型。
3)按citygml特征类型分组
必须知道IFC模型的哪些建筑元素或层由CityXML文档的特定特征类型表示。有时,CityXML功能类型与多个建筑元素对应。在这种情况下,它们被一个公共ID合并,这样它们就可以一起路由到相同的功能类型。由于IFC数据的元素ID不是有效的GML ID,为每个功能创建新的GML ID。此外,每个特性都有一个属性,可以用它与其父级的gml id结合,建筑特征类型,后来。
添加一个属性创建器转换到画布并将其连接到Stairflight和BuildingElementProxy。在参数中,在变压器名称中附加“bldginstaltions”。然后创建一个名为feature_type的新属性,并将buildingInstallation的值赋给它。创建第二个名为parent_name的属性,并为其提供dc_riverside_building的值。最后,创建第三个名为uid的属性,并为其提供gml_uid()的值
使用attributeCreator创建三个新属性
复制attributeCreator并将其连接到buildingColumn和成员。在参数中,将“BldgParts”附加到变压器名称,并将“Feature”类型的值更改为“BuildingPart”。
将attributeCreator复制三次以上,并按以下方式设置:
连接到功能类型 | 附加变压器名称 | 特征类型值 | |
属性创建者 | 墙 | 围墙 | 墙 |
属性创建者 | 厚板 | 地下楼盖 | 楼板屋面 |
属性创建者 | 门窗 | 开孔 | 窗门 |
打开功能类型将暂时保持未连接状态。
每个功能类型的attributeCreator参数和连接
4)缩放并创建坐标系
该模型目前以毫米为单位,需要缩放到米。添加一个定标器转换到画布并将其连接到所有的属性创建器。在参数集x中,YZ到0.001。
IFC中不存储坐标系信息。这个本地协调系统设置程序Transformer仍然允许我们使用自动生成的本地参考系统(azmea)标记所有特性。将localcoordinatesystemsetter添加到画布并将其连接到缩放器。在参数中,设置以下内容:
原点坐标系 | LL84 |
原点X | -76.986560155564575 |
起源Y | 38.87607046942158 |
原点x和y的localcoordinatesystemsetter参数
最后,需要更改的坐标系。添加一个CSmapreprojector(CSmapreprojector)转换到画布并将其连接到LocalCoordinateSystemsetter。在参数中,将目标坐标系设置为epsg:2248,并将垂直处理设置为相对于椭球体或地心的高度。
5)创建建筑特征类型
IFC模型的层次结构通常比CityXML文档的层次结构更复杂。在这个例子中,citygml模型以简化的方式组装,所有建筑元素都是建筑特征类型的子元素,除了开口。
添加一个工业基础级步档(IFC)阅读画布并浏览到dc_Riverside_bldg-lod_100.ifc数据集。在参数中,将读取的ifcspace几何图形更改为“是”。在“选择要素类型”对话框中,仅选择ifcspace和ifcslab。
IFC读卡器参数;将读取ifcspace几何更改为是
下一步,需要创建单个网格。添加一个三角测量仪转换到画布并将其连接到ifcspace和ifcslab。在参数中,确保将聚合处理设置为取消聚合。然后添加一个网格合并将变压器连接到画布,并将其连接到三角仪上的t曲面输出端口。
将三角仪连接到ifcslab和ifcspace,将网格合并到tinsurface输出端口
6)创建citygml属性。
不需要创建每个CityXML功能类型。所有功能类型模式都可以从citygml_feature_types.xml文件导入,该文件可以在安全的FME安装的xml文件夹中找到。亚搏在线要创建citygml文档,必须设置有效的几何图形,特征角色,以及每个功能的详细程度。必须将几何角色设置为几何上的特征。citygml编写器使用此特性为功能创建正确有效的几何图形。功能角色和详细级别设置为属性。
添加一个Citygml几何打印机转换到画布并将其连接到网格合并。这是一个自定义转换器,创建citygml功能角色和详细级别属性,它遵循严格的命名规则。使用变压器可以防止区分大小写的打字错误。在参数中,将citygml lod name设置为lod2solid,然后将feature role设置为cityObjectMember。
下一步,将一个attributeCreator添加到画布,并将其连接到CityMLGeometryster。在参数中,创建以下属性:
属性名 | 属性值 |
城市级细节 | 二 |
GMLYID | GMLY@ UUID() |
GMLY名称 | 直流河滨楼 |
7)向Citygml写出建筑物
突出显示并复制缩放器,本地协调系统设置器和CSmapreprojector变压器。将scaler_2连接到连接到ifcspace和ifcslab工作流的attributeCreator。亚搏在线
添加一个CITYGML写入画布并浏览到要保存的文件夹,将文件命名为Riverside_lod3.gml。默认参数正常,但将要素类型定义设置为自动。下一步,在“要素类型”窗口中,将要素类型名称更改为“建筑”。将其连接到csmapreprojector_2。
亚搏在线在citygml中创建建筑的工作流
8)加入父gml_id
下一步,将建筑元素与建筑连接起来,添加一个特征合并变换到画布上。将csmapreprojector从建筑元素工作流连接到请求者输入端口,然后从ifcspace和ifcslab工亚搏在线作流连接到attributeCreator,再连接到供应商输入端口。
将工作流从revi亚搏在线t reader和ifc reader连接到featuremerge
在参数中,将join on requestor设置为父_name,然后将supplier设置为gml_name。将属性累积模式设置为前缀供应商,并添加前缀suppl。
特征合并参数;加入父节点名称和gml节点名称,并将前缀设置为supply_
9)保留和创建属性
有一堆属性是不需要的。添加一个定位器转换到画布并将其连接到FeatureMerge上的合并输出端口,然后仅选择要保留的以下属性:
attributekeeper参数
将attributeCreator添加到画布并将其连接到attributeKeeper。在参数中设置以下内容:
属性名 | 属性值 |
城市级细节 | 三 |
GMLYID | 乌鲁伊德 |
双亲 | 补给 |
10)过滤器属性
现在,所有功能都已接收到适当的citygml属性,他们需要根据他们的类型来设计风格。使用属性过滤器变压器。将一个attributefilter转换器添加到画布并将其连接到attributekeeper。在参数中,将要筛选的属性设置为feature_type。然后,对于可能的属性值,键入以下内容:
用于分离零件的属性过滤器参数
11)建筑设施和建筑部件
建筑安装和建筑部件的规格因其选定的几何图形和功能角色而异。关键是要知道哪些角色对某些特性类型有效,编写有效的citygml文档。建筑安装是citygml中限制最少的几何角色之一。一个任意的GML几何图形可以表示lod3几何图形,而建筑部分仅限于lod3几何图形,Lod3多表面,Loo3MululurvE,以及Lod3 TerrainiIntersection。对于IFC到CityXML的翻译,3矿脉表面可能是最安全的选择,亚搏在线因为如果使用lod3solid,某些功能可能无法构建有效的实体几何图形。
将CitygmlGeometryster添加到画布,并将其连接到属性筛选器上的BuildingInstallation输出端口。在参数中,将citygml lod name设置为lod3geometry,并将feature role设置为outerbuildingInstallation。
下一步,添加一个佩戴者将转换器连接到画布,并将其几何输入端口连接到CitygmlGeometrySetter_2。在参数中,展开“颜色参数”并将“外观名称”设置为“安装”,将漫反射颜色设置为0.317647、0.317647、0.317647,然后将alpha设置为1。
外观更详细的参数,设置外观名称,漫反射颜色和alpha。
添加一个编写器功能类型并将其命名为buildingInstallation,将其连接到显示器上的输出端口。
复制citygml几何分析器,AppareanceSetter和Writer功能类型。将副本连接到属性筛选器上的建筑部件输出端口。
在citygml几何编辑器中,将citygml lod名称更改为lod 3多曲面,将feature角色更改为consistsofbuildingpart。在外观中,“2”将外观名称更改为零件,将漫反射颜色更改为黑色。最后,将编写器功能类型重命名为BuildingPart。
构建部件和构建安装工作流亚搏在线
12)屋顶,墙,地板
在画布上添加另一个CityMLGeometryster;这一次连接到地板屋顶,以及属性过滤器上的壁输出端口。在参数中,将citygml lod name设置为lod3多曲面,将feature role设置为boundedby。
下一步,将这些特性分成各自的部分,添加一个测试过滤器变换到画布上。在参数中,将第一个if test condition设置为name contains roof或pset-slabcommon.isexternal=yes,然后将输出端口设置为roof
将else if-to-name设置为包含wall,将输出端口设置为wall
将else输出端口设置为Floor
testfilter参数以创建输出端口roof,墙底
下一步,添加外观设置器,并将几何输入端口连接到测试过滤器上的屋顶输出端口。在参数中,将外观名称设置为Roof,漫反射颜色变为红色,alpha变为1。添加另一个编写器功能类型并将其命名为roofsurface,然后将其连接到apparearencesetter上的输出端口。
复制ApparenceLetter和Writer功能类型,并将其连接到TestFilter上的墙输出端口。在AppearanceSetter参数中,将外观名称更改为Wall,颜色更改为淡黄色。将书写器特征类型重命名为Wallsurface。
再次复制ApparenceSetter和Writer功能类型,并将其连接到地板输出端口。在AppearanceSetter参数中,将外观名称更改为Floor,颜色更改为Brown。将编写器功能类型重命名为floorsurface。
亚搏在线屋顶工作流程,墙壁和地板的城市特色
13)保留层次结构
IFC模型的开放层可以为每个门窗提供其所属墙的元素ID。要将这两个级别的层次结构转换为我们在citygml中需要的层次结构,需要两个连接。
第一个连接是连接先前与墙一起添加的洞口特征类型。将FeatureMerge添加到画布,并将墙输出端口从attributeFilter连接到供应商输入端口。然后将打开的功能类型连接到请求程序输入端口。将请求者的join设置为element_parent_id,将supplier设置为element_id。然后将属性累积模式设置为前缀供应商,并添加前缀suppl_wall_uuu。
将另一个功能合并添加到画布,并将属性筛选器上的Windows_Doors输出端口连接到请求者输入端口,然后将上一个功能合并的输出端口连接到供应商输入端口。将请求者的join设置为element_parent_id,将supplier设置为element_id。然后将属性累积模式设置为前缀供应商,并添加前缀suppl_uu。
保留开口的层次结构工作流亚搏在线
14)门窗
创建窗和门功能的最后一步是设置citygml属性并应用外观。添加一个attributeCreator并将其连接到合并的输出端口。在参数中设置以下内容:
属性名 | 属性值 |
城市名 | LOD3多表面 |
城市级细节 | 三 |
城市角色 | 开放 |
GMLYID | 乌鲁伊德 |
双亲 | 供应墙 |
然后将一个几何属性编辑器连接到属性创建器。在参数中,将源属性设置为citygml_lod_name。
从窗户和门中分离出来,通过添加测试器将转换器连接到工作区,并将其连接到geometrypropertiester上的设置输出端口。将测试设置为name=window。
在画布上添加一个ApparanceSetter,并将其连接到测试仪上通过的输出端口,这将设置窗口的外观。在参数中,将“外观名称”设置为“窗口”,并将“漫反射颜色”设置为浅蓝色。要使窗口的外观具有透明的玻璃效果,请将alpha设置为0.2,将shiness设置为1。
添加另一个编写器功能类型并将其命名为窗口,然后将其连接到ApparenceLetter上的输出端口。
添加另一个ApparanceSetter并将其连接到检测仪上的失败输出端口,这将设置门的外观。在参数中,将“外观名称”设置为“门”,漫反射颜色为浅棕色,alpha为1。
添加另一个编写器功能类型并将其命名为Door,然后将其连接到ApparanceSetter上的输出端口。
整个已完成的工作区
15)检查和验证citygml文件
在运行工作区之前,确保拒绝的功能处理设置为继续转换,然后运行工作区。
在FME数据检查器中查看的输出citygml文件
在数据检查器中打开生成的citygml文件允许用户检查缺少的几何图形或错误的外观。这个XML验证程序Transformer可用于验证CityXML文档。连接到xmlvalidator的创建者转换器开始验证。在xmlvalidator参数中,选择citygml文件作为输入,并选择适当的模式文件进行模式验证。对于citygml 1.0,使用:
如果在写入citygml时看到错误或几何图形丢失,您也可以使用几何验证程序Transformer用于在写入功能之前检查输出上的二维和三维几何图形错误。甚至还有维修选项,尽管使用这些工具时应谨慎,并验证结果,因为任何维修都有可能引入新的错误。
数据属性
河滨建筑示范项目数据制作Nemetschek VectorWorks公司.
?2019安全亚搏在线软件公司|合法的