Managing Lists in Dynamo

The key to Dynamo (in my opinion) can be distilled down to a single concept: list management. Once you understand how to manipulate and manage lists, you can accomplish almost anything.

Even though Dynamo has a fairly good set of learning resources, it can still be a little confusing trying to understand lists, sublists, and how the various nodes can and should be used to modify lists. So here is my brief introduction to lists, and more specifically how to chop, flatten, join, combine, and transpose lists in various ways.

To start off, you have lists and sublists (lists within lists). One way to create a sublist from a list is to use the node List.Chop. Here are some different ways you can chop up a list:

list_chop

In some ways, Chop is the opposite of Flatten. Flatten removes the hierarchical structure within sublists. Here are some different ways that you can flatten a list:

list_flatten.PNG

But sometimes you want to manipulate multiple lists by merging them together. To do this, there are a couple nodes you can use: List.Join and List.Combine. They work slightly differently and have different effects depending on the amount of sublists:

list_join and combine.PNG

And finally, you can also rearrange combined lists using List.Transpose. This is particularly useful if you want to combine lists or sublist in order of indices (or every other element):

list_transpose_2

As you can tell, there is usually a simple way to use a node and also a more complex method. The more complex method frequently uses List.Map and allows you to modify sublists more directly.

Advertisements

2 thoughts on “Managing Lists in Dynamo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s