A Thought? an idea? C# or Python?
Dynamo is a very nice and easy to use program, but sometimes more is needed.
I see more python being used in Dynamo. So what would you recommend for beginners? Which subjects should be studied more?
What do you think are the advantages and disadvantages of C# and Python?
I’ll add my thoughts again for others who may have the same question.
I’ll start out by saying I don’t have a formal coding background and in fact have only recently gotten involved with full scripting outside of Dynamo. Python and C# are probably the best two to start with. The Revit API is C# compatible and C# itself is very common. Python is great to learn as a beginner because it’s so user friendly and intuitive (compared to most other languages). You can also code directly to Revit through pyRevit or through Dynamo using CLR (Common Language Runtime).
Outside of Revit, it’s good to see what other applications or platforms you might want to work with and see what kind of compatibility they offer. If you ever develop Forge applications you’d probably be better off with C# and JavaScript for the web calls.
That being said, my personal opinion would be to start with Python and then move towards C# once you’re comfortable with the basics. As I said, Python is a great place to start and get introduced to the basic concepts, but C# will give you much more flexibility and depth once you’ve outgrown Python for basic functionality.
It depends on what target you want to go, select one language you like and go with it, when you master, move to next level. It should be noted that, language just is a tool. I’m working with a lot of language now
Each one has its advantages and disadvantages. Python is nice because you can hack at it and see what happens right on the canvas. C# is nice because you use a real IDE (integrated development environment) with Visual Studio and get all sorts of auto-complete and additional resources. (Revit API samples are normally in C#)
I agree with this. I’m also finding I’m doing a lot with Python in external IDEs lately. In fact I’ve been writing on/for and iOS environment most recently. Nothing too fun yet - instant analytical processing of DYN data, Revit journals and Dynamo logs. Goal is to have a “iOS thing > processed data > Dynamo > beyond” application in the nearish future.
This might be a bit of a hot take, but i think Dynamo is best at what the DesignScript language was constructed around: geometric manipulation.
With all the support over the years, it’s become a fine scripting environment, but a lot of the syntactic idiosyncrasies don’t translate to a lot of other languages directly. I like to use Dynamo for validating the core part of an idea and snooping through relationships in the API, but i find there’s a lot of limitations in the way develop modularity in ideas and procedures that aren’t present in other languages which allows Python, C#, etc. to have an easier time creating flexible procedures that can scale well.
as others have stated, Python, C# are transferrable skills, whereas dynamo really only has utility in revit and some other software in autodesk’s ecosystem.