I would like to make a more formal package for all the little nodes I have made. Up to now I have just been publishing nodes one at a time with category ‘truevis’.
I suppose it would be best to start a GitHub repository for posterity. I have been publishing Gists of Python functions, et cetera, so I remember what I did and to share.
A method of separating by Revit versions would be good, too. It seems other package publishers struggle with that. I made a folder structure for a client for its apps:
It can be good if you can cover case API updated and removed in Revit API, Especially with APIs directly related to the unit, parameters, I am not sure they will work perfectly with all but if you are more familiar with Python, you must probably pursue them, good luck
It is feasible if you can check the exceptions to the difference in API update between versions in the same node. Python is a dynamic language, so you need to work and check a lot if you are doing so, I’m not sure how long you will take if the maintenance for more than 300+ nodes. Below is an example I want for example, I’m also a big fan with Python for a long time but I also do not recommend it to you for develop a package in Dynamo Revit .
Indeed there are numerous examples in my Github showing how to manage multiple versions of Revit and changes in the API.
For me this is not easier to handle in C#. I’m maintaining addins from Revit 2019 to Revit 2024 and it’s a real pain.
My solution is all zero touch (c#) and it is built per Revit version. This then loads on the fly with a view extension.
This is extremely different than python nodes.
I would follow what @Alban_de_Chasteigner mentioned as it seems to work well for him.
Also, a GitHub is way more than “for posterity”…
Version control is extremely important and often overlooked. It also helps build the community because it’s open source and teaches coding principles upfront.
I find it a bit disappointing that @truevis thinks it’s for “posterity”, but ah well.
Thus if one is publishing nodes that use Python, one has to test the same node in all targeted Revit versions. Also onerous. Looks like there is not one perfect answer.
Found a README template on GitHub. This can be a start, then one decides whether to add Revit version folders or to try to make nodes that work in multiple Revit versions.
Keep in Python so we can see what doesn’t work more easier and create other script versions from that reference. I don’t use package nodes just see how is done the script which is great to learn