I have earlier today released my version 2018.301.0 version of the DanEDU Dynamo package. Thanks to @awilliams, @JacobSmall, and @Kulkul for testing it before I posted this topic. However, it is not the update as such, why I am making this topic. The essential of this package is, on the other hand, a breakthrough.
All the releases since 2017.x.x versions have been developed as an OOP package thanks to ideas I developed from @Konrad_K_Sobon and @Mostapha. But in this one, I have extended it with Csharp scripting thanks to @Dimitar_Venkov “C sharp interpreter”.
Please take a look under the hood in the package and the nodes to see how they are built.
The way I have implemented the Csharp code is taking @Dimitar_Venkov previously presentations and turning them into “production” mode. The code outside “#region Script section for using CSharpScript.FromString” can be transferred directly to production in a ZeroTouch environment!
In other words, am I trying to prove how everyone can gain what the .net platform gives without turning it into a coding project that needs to be compiled. It has the lightweight and easy approach as python scripting without the limits from IronPython 2.7.3. The side effect is that the code rather easily can be turned into a ZeroTouch package if wanted and we can start implement things from @Jeremy_Tammik site one-to-one
Inside the individual nodes have I made a “Reader” (one for Python and one for Csharp). The reader does three things. One, it knows where the (my) package is installed, which is needed since I will never know the path where users are installing the package. Two, it comes with a"refresh" option, which is needed when testing. otherwise I would need to close/open the graph everytime I changed something in the script. Three, it comes with an option for feeding an individual path. Therefore can the reader be used by others in developing/using Python/Csharp scripting.
Keeping the code outside in external files gives the benefit of using IDE’s there can assist with intillisence and error correction. Thanks to @Gui_Talarico for making stubs available for the Python language.
The testbed is made on the flipped nodes, both in the Boolean and the Element version. By doing this I give examples of returning a single list and returning a dictionary converted to a list with sublists, as it is being done with the python custom nodes. The way the methods are coded is according to how they must be coded to apply the “ZeroTouch” requirements.
Flipped (6 nodes).dyn (32.6 KB)
Unfordnetly I cant upload a test project due to the limitations on file upload. I don’t know why there has been set a limitation on 3.2 Mb for files. Almost no rvt project files can be so small… but if you are very interested, then contact me with a private message and I will try to arrange a test file.