Hello Dynamo community!
I am in the process of writing a few custom nodes to streamline some of the workflow at my office, and need some help in choosing how to do that. I have done some Python scripting in Dynamo, and I also have some general C# experience. However, I have not used the Revit API for anything other than copy-pasted Python scripts. I feel like I should commit to either Python or C# for writing custom nodes, and learn how to interact with the Revit API in that language. Here are my thoughts:
- More direct interaction with the Revit API, no need to translate it into its Python equivalent.
- Easier source control with Visual Studio and Git. I like the idea of "compiling" the nodes.
- I am more used to coding in C# than in Python.
- Easier to build more advanced nodes using other C# assemblies and allows building custom UI.
- More overhead. I can't just take a Python script I wrote in a Dynamo workflow and make a custom node, it needs to be translated into C#.
- Higher learning curve. I must first learn how to compile C# into Dynamo nodes.
- Faster, I can just write a Python script in Dynamo and if I want to polish it to be more general it is not a lot of work.
- It feels easier to build custom nodes using existing nodes + Python scripts.
- By learning how to do more advanced stuff in Python, I will get better at the basics and be able to write simple scripts faster.
- Lots of examples and code snippets are readily available.
- I am at the moment worse at Python than C#.
- I must first find what I need from the Revit API, then find its equivalent in Python.
- Harder to maintain the source code. I want to use an external editor, and that would mean a lot of copy-pasting