ListExploder
将每个输入特性上的每个列表成员分解为自己的特性。
将列表中的任何属性复制为特性输出的非列表属性。此外,将原始列表中的属性的元素号添加到特性中。每个特性的输出都有原始输入特性的几何图形的副本。
输入端口
包含列表成员的功能。
输出端口
如果在输入特性中找到该列表,则将基于积累模式通过这个端口输出。
参数
此转换器将分解的列表的名称。
如果元素索引属性,则每个元素特性输出将被赋予一个属性,该属性包含元素的列表位置。
属性积累
在某些情况下,特性的非列表属性可能与list爆炸器生成的属性共享相同的名称。例如,考虑具有非列表属性的特性长度和一个列表属性somelist {0} . length,somelist {0} .kind,somelist {1} . length,somelist {1} .kind,……如果somelist是爆炸,特征可能包含两个长度属性—一个来自原始的非列表属性,另一个来自somelist属性列表。如果生成的属性与特性的原始非列表属性共享相同的名称,但不是以几何属性开头fme_,他们被认为是矛盾的。
使用以下参数指定要保留哪些属性的输出特性,以及在发生冲突时要维护哪些属性的值。
合并后的属性列表:该特性保留其自身所有未冲突的属性,并额外获取transformer生成的所有未冲突的属性。属性处理冲突的属性解决冲突参数。
前缀列表属性:该特性保留了它自己的所有属性。此外,该特性获取由转换器生成的属性,其名称以前缀参数。
只使用列表属性:除了以几何属性开头的属性外,所有特性的属性都被删除fme_。然后,该特性获取由分解列表属性生成的所有属性和关联值。
使用原始属性值:如果发生冲突,请维护原始的非列表属性的值。
使用列表属性值:如果发生冲突,将生成的属性值转换为原始的非列表属性。
如果积累模式参数设置为前缀列表属性,此值为添加到功能部件的属性的前缀。
使用笔记
- 如果输入属性和列表元素属性具有相同的名称输入属性将被列表元素属性覆盖。
- listscalder将无法处理无效列表,例如在条目0处不启动的列表。例如:
有效列表 | 无效列表 |
我的列表{0}.attr1 | 我的列表{1}.attr1 |
我的列表{1}.attr1 | 我的列表{2}.attr1 |
我的列表{2}.attr1 | 我的列表{3}.attr1 |
我的列表{3}.attr1 | 我的列表{4}.attr1 |
例子
示例1:
如果这个特性进入这个转换器:
somelist {0} . length = 7.3
somelist {0} .kind = ’paved’
somelist {1} . length = 8.4
somelist {1} .kind = ’smooth’
somelist {1}。车道= 2
somelist {2}。长度= 1.1
somelist {2}。kind = ’rough’
another_attr = ' something else '
然后,假定指定的列表名是somelist {}, index属性为element_num,积累模式参数设置为合并后的属性列表,第一个返回的功能如下:
长度= 7.3
类型=“铺”
element_num = 0
another_attr = ' something else '
如果积累模式参数设置为只使用列表属性,第一个返回的功能如下:
长度= 7.3
类型=“铺”
element_num = 0
示例2:
假设你有一个输入具有以下6个属性的特性。(属性列表这里用的是{ID})。
的名字
类型
{0}.dec ID
{0}.hex ID
{1}.dec ID
{1}.hex ID
合并后的属性列表将产生4个属性的元素:
的名字
类型
12月
十六进制
只使用列表属性将产生2个属性的元素:
12月
十六进制
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
额外的资源
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。