Explodes each list member on each input feature out into its own feature.

Any attributes on the list are copied to become non-list attributes of the feature output. In addition, the element number of the attributes in the original list is added to the feature. Each feature's output has a copy of the geometry from the original input feature.

  • If Input attributes and list element attributes have the same name, the Input attributes will be overwritten by the list element attributes.
  • ListExploder will not work with an invalid list, such as one that doesn't start at entry 0. For example:
Valid List Invalid List
mylist{0}.attr1 mylist{1}.attr1
mylist{1}.attr1 mylist{2}.attr1
mylist{2}.attr1 mylist{3}.attr1
mylist{3}.attr1 mylist{4}.attr1


Example 1

If this feature enters this transformer:

somelist{0}.length = 7.3

somelist{0}.kind = ’paved’

somelist{1}.length = 8.4

somelist{1}.kind = ’smooth’

somelist{1}.lanes = 2

somelist{2}.length = 1.1

somelist{2}.kind = ’rough’

another_attr = ’something else’

then, presuming that the list name specified was somelist{}, the index attribute was element_num, and the Accumulation Mode parameter was set to Merge List Attributes, the first returned feature would look like:

length = 7.3

kind = ’paved’

element_num = 0

another_attr = ’something else’

If the Accumulation Mode parameter was set to Only Use List Attributes, the first returned feature would look like:

length = 7.3

kind = ’paved’

element_num = 0

Example 2

Suppose you have a Input feature with the following 6 attributes. (The List Attribute used here would be ID{}.)







Merge List Attributes will produce elements with 4 attributes:





Only Use List Attributes will produce elements with 2 attributes:




Input Ports

Output Ports


Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

Defining Values

There are several ways to define a value for use in a Transformer. The simplest is to simply type in a value or string, which can include functions of various types such as attribute references, math and string functions, and workspace parameters. There are a number of tools and shortcuts that can assist in constructing values, generally available from the drop-down context menu adjacent to the value field.

Dialog Options - Tables

Transformers with table-style parameters have additional tools for populating and manipulating values.

Additional Resources

FME Community

The FME Community is the place for demos, how-tos, articles, FAQs, and more. Get answers to your questions, learn from other users, and suggest, vote, and comment on new features.

Search for samples and information about this transformer on the FME Community.