span8
span4
一个几何定义是一个共享几何,它可以在相同或不同的特性中有多个几何实例。几何实例由几何定义引用、放置位置和3D仿射矩阵组成。几何定义可以包含任何类型的几何,包括其他几何定义的实例。
几何实例对于需要相同对象的多个副本的复杂几何图形非常有用。例如,在一个城市的可视化中,同一个公园长椅的许多副本可能被用于不同的位置。
如果使用单一的几何定义和许多几何实例,那么与使用相同几何的多个副本相比,所需的总体文件大小、处理和显示几何图形的工作量将大大减少。如果几何实例非常大或非常详细,则尤其如此。
使用单个几何定义,也可以轻松地修改几何定义,然后更新该定义的所有实例,而不需要修改每个实例。例如,如果用户希望将公园长凳从红色更改为蓝色,则只能对几何定义进行修改,然后它将反映在所有几何实例中。
更新安装2.fmw(例2)
在下面的例子中,使用makeinstances.fmw,我们将用实际灯柱模型的实例替换一组灯柱定位点。模型由SketchUp 3D仓库。
极点fme特征存储数据的读取及灯柱的草图模型
从位置点,我们需要提取坐标系统(使用CoordinateSystemExtractor)和位置(使用CoordinateExtractor)。极点位置具有包含极点旋转的属性。
3D仓库模型不是以0,0,0为中心,也不是面向正确的方向,所以我们将其居中并与偏移器和旋转器对齐,然后使用定标器将单位转换为米。
使用共享ID将两个数据集合并在一起,并将几何图形设置为共享极
在FME中,几何实例存储在共享项库中。我们使用SharedItemAdder转换器向共享项库添加几何图形。
shareditemadder参数
SharedItemAdder可用于向共享项库添加外观或几何图形,因此我们将项设置为添加到几何图形定义中。我们正在添加一个新定义,因此我们将Insert模式设置为添加新项。分配给新实例的共享项ID将添加到属性_shared_item_id中。
为了用实例替换这些点,我们需要为它们提供新共享的项目ID。我们可以使用将Join on值设置为1的FeatureMerger来实现这一点,而不是使用特性属性。这将合并所有点上的共享项id,即使它们与实例没有公共属性。
FeatureMerger参数,将请求者设置为1,将供应商设置为1
现在这些点都有共享项ID,我们可以使用shareditemidsetter将它们的几何图形实际设置为该共享项的实例。
shareditemidsetter参数,将共享项id属性设置为共享项id
项类型应设置为几何定义。我们将实例设置在简单的点上,因此几何体零件选择可以保持原样,但如果您有更复杂的源几何体,则可以使用几何体xquery来确定应将几何体的哪个部分替换为实例。
将“从属性中检索共享项ID”设置为,然后将“共享项ID”属性设置为“共享项ID”。
转动灯柱,确保坐标系正确,然后写出草图。
shareditemidsetter将模型放置在与点相同的位置,但我们仍然需要使用旋转器应用路灯旋转。在“Rotator”设置中,使用CoordinateExtractor创建的“x”和“y”属性设置旋转的“x原点”和“y原点”。
最后,我们将应用之前提取的点坐标系到新的实例几何图形,然后再将其写入SketchUp。
在SketchUp中查看的结果,其中灯柱表示单个灯柱点
SketchUp支持将实例化几何体作为共享组件,因此可以创建一个相对较小的文件,其中包含数百个路灯。
在本例中,使用更新安装2.fmw,我们想用更时髦的路灯(也来自SketchUp 3D仓库)中。我们将通过更新共享项库中的模型,而不是更改每个极点实例来完成此操作。
亚搏在线UpDeaTestSn2.FMW的工作流,用新的街灯样式更新现有模型
从输入SketchUp文件中,我们将提取原始灯杆的共享项ID,并将其合并到缩放和对齐的新灯杆模型中。
shareditemidtextractor参数,将共享项id提取为属性
我们将项类型设置为geometry definition,并将共享项id提取为属性。由于功能几何图形中可能有多个实例,因此共享项ID将存储在列表属性中:共享项ID{}。此列表将通过FeatureMerger合并到新模型中。
这次我们将在更新模式中使用shareditemadder。
SoeDistIdFor参数,将插入模式设置为替换现有项和共享项ID,以替换为SySydDyItMySid ID { 0 }。
设置项目以添加几何定义和插入模式以替换现有项目。要替换的id将设置为共享项列表的第一个元素。在我们的示例中,这是正常的,因为模型只包含一个实例定义。如果数据中有多个共享项,则可以使用shareditemidextractor中的geometry xquery仅提取要更新的共享项的id。
fme按顺序处理输入数据,因此为了确保在更新共享项之前源功能不会写入输出,我们将使用featuremerger输出而不是源功能的副本来写入输出。供应商特性将通过引用的、未引用的或重复的供应商端口输出,具体取决于源特性的数量。我们将把所有这些输出端口路由到SketchUp编写器。
生成更新的灯样式的草图。
我们现在已经更新了路灯,与原来的位置和路线相同。
你好@daveat亚搏在线safe(对不起,我的英语)我试图用你的例子来实现这个项目,但是我得到了一个错误。当您在示例中替换几何图形时,在将excel与坐标连接以获取错误时一切正常。告诉我我的注意力在哪。
我的测试数据视图
旋转x y z(全部为0)
348.156199012068 4179149.2236147113 7540229.933217478 0
0 . 171.358577155007 4179414.1457286156 7540414.2518611
122.780632515431 4179026.745510819 7540172.71502967 0
122.682100384223 4179004.9612121765 7540158.6985653555 0
122.682101581686 4178985.052157153 7540145.895707222 0
122.593190211363 4178969.1495376085 7540135.794656057 0
122.593191952274 4178950.94639481 7540124.184082295 0
122.522672659338 4178936.413135533 7540114.9387527 0
122.522675596202 4178918.3027181756 7540103.45080178 0
嗨@daveat亚搏在线safe,@dmitribagh,是否有支持共享几何图形的格式列表?我刚刚在虚幻引擎上观看了一个有Dmitri的网络研讨会,它会显示udatasmith有,就像在这篇文章中提到的Sketchup一样。还有别的事吗?
©2019安全亚搏在线软件公司法律