Dynamo Dictionaries vs Lists

Dynamo Dictionaries vs Lists

Solve challenges faster with Dynamo

All Dynamo users will recognise the necessity of understanding and managing lists in all but the simplest of programs. In Dynamo 2.0 we now have an inbuilt option to use dictionaries to store and manage data.

A list is comprised of an index or indices and values that are always ordered. A simple example is illustrated below. The grey box is a series of indices starting from 0 and these are linked to the values. 

If I decided to sort the list alphabetically then the indices will change. This method is not particularly useful when you need to ‘tie’ data to keys. 

An example of this would be looking up values in a Uniclass2 table.

The Uniclass codes are directly linked to the descriptions; if I want to lookup a description from a code then a dictionary will be useful.

The Dynamo Script below reads the Uniclass2 data from an excel sheet and splits this into two lists. The first list is the code and the second list contain the descriptions.

A dictionary can be made from these two lists. The ‘ByKeysValues’ is used to create the dictionary and then the ‘ValueAtKey’ can be used to ‘look up’ the data.

In the example below, you can see that two values have been ‘looked up’ from the given Uniclass codes. These strings could have been extracted from Revit model elements. 

In summary, dictionaries are very powerful when data needs to be tied to specific values.

Dynamo is a visual programming tool that works with Revit. It enables designers to create visual logic to explore parametric designs and automate tasks. For more information on Autodesk’s Dynamo Studio and how to more effectively work with project teams, please get in touch with the Excitech team.