What to learn first, Python or Dynamo?

I’m an expert Revit user, but am considering learning visual programming with Dynamo, and also some computer programming languages (Python, C#, Java, ect.).

Should I learn Python by it self first, or jump right into Dynamo for Revit and learn Python later? I’m trying to learn more valuable skills to add to my business, OR eventually transition into an IT programming career. I just want to use my time wisely.

As you are already familiar with Revit, I would first suggest making your way through the Dynamo Primer as you would most immediately benefit from it. @oliver.green has put together a comprehensive Python for Dynamo Primer which addresses how to use IronPython in Dynamo and will be helpful to you down the road. However, I would recommend that you first familiarize yourself with Dynamo to understand its limitations–i.e. understand what is possible in Dynamo before reinventing the wheel in Python.


First up: there is no ‘wrong’ answer here, and knowing both well should likely be the goal.

Personally I’d say start with Dynamo. It’s served me well so I may be biased, but Python as a ‘Revit’ focused business addition will require first learning Python (easy enough), and learning the Revit API (not as easy) at the same time. Conversely Dynamo for Revit will allow you to add onto the business in minimal time frame, while opening the door for you to learn and leverage Python, as well as other tools (ie: Dynamo for Civil 3D/FormIt/etc., Project Refinery, Player, etc.).

In any case, one of the slides I use when introducing Dynamo is VERY clear about one point: Dynamo should be the start of the journey into a new set of tools, not the end.


Thanks for the detailed reply!

So would learning Dynamo help me learn Python faster than trying to learn Python by itself?

At a minimum you’ll lead. The thinking methodologies and some Revit limitations. You won’t learn how to use python though.

Python as a language is pretty easy to pick up (Comparative to many!) - it’s the interaction with the Revit API that will take you time :slight_smile:

Dynamo will start to educate you on the Revit API during your node usage as you build graphs (Exploring notions of object types, passthroughs / waits, looping, list management etc.) which you can subsequently help you on your Python journey.

Either way, as mentioned above, both should be the goal! They are mutually beneficial in the context of Revit and Dynamo provides an easy way to get instant feedback inside the Python node (Albeit we have work to do to enable better debugging).

For what it’s worth, I learnt Dynamo first and found Python pretty easy to get my head around afterwards.


I personally think that visual programming is a good way to get into textual programming because it teaches you some core fundamentals like program flow and logic without being that bit more tedious to pick up, so I would vote to learn dynamo then learn python for absolute beginners… However, like @JacobSmall said, there is no wrong answer here. For example, I leant C# and revit API way before I leant dynamo or python (mainly because dynamo wasn’t around yet! Ha!), but I would recommend having the goal to learn python eventually as it is a very useful language to learn and coupled with the Revit API it will really help in the future. Learning python will also give you some grounding in trickier languages like C# should you wish to push that little bit further.


The Python included in Dynamo is actually IronPython and links directly to the DotNet API of Revit - so it can get to the same stuff a C# addon could. But if you want to go with programming then choose Python.Because Python skills are used in almost every field.

1 Like

We are also integrating CPython now too - so you have access to Python 3 in Dynamo!