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.
Microsoft recently announced changes to the licencing models for their cloud products, to evolve with customers to meet their ever-changing business.Learn more
The machine builder and simulation features in Fusion 360 allow the user to build a machine configuration and 3D machine model adding kinematic movements in preparation for simulation during manufacturing. These features are an essential addition to the prototyping phase of manufacturing, meaning parts can be machined with confidence that minimal restrictions and failures will take place.Learn more