DynamoDS / Dynamo

Open Source Graphical Programming for Design
https://dynamobim.org
Other
1.73k stars 632 forks source link

API for new nodes #298

Closed redinkinc closed 11 years ago

redinkinc commented 11 years ago

hey there, is there any development on an API for new nodes? I didn't find any. This would be great, since I would like to try out my methods from my PhD within Dynamo. I got the recent Project working (on Win8/64bit/VS2012 in Vasari 3) but compiling the complete project all the time is bothering (especially because I'm in engineering and not a professional programmer).

Thanks and Regards Fabian

tatlin commented 11 years ago

This works today. You can develop new nodes in a separate visual studio project and not even need to compile Dynamo at all. Take a look at the DynamoNode sample project. You can use this project as a basis for your new nodes. Simply copy that project, rename it and and add your own implementation. We will turn this into a template for Visual Studio soon.

The main requirement is to make sure your project is in the Dynamo.Nodes namespace and follows the conventions outlined in GitHub\Dynamo\src\DynamoNode\Class1.cs. You will need to reference dynamo dlls, either pre-compiled versions or ones you compile yourself and also revitAPI dlls if you are creating revit objects.

Here is a slightly outdated tutorial that gives some more background on the anatomy of a node.https://github.com/ikeough/Dynamo/wiki/Getting-Started-with-Dynamo-Development

-matt

tatlin commented 11 years ago

You will also need to set your build output directory in your project to point to Dynamo\bin\Debug|Release. This way your dll gets placed next to the dynamo dlls and gets picked up next time Dynamo runs.

-matt

redinkinc commented 11 years ago

thanks for your quick reply. I got everything set up working now. If you like I can add a new page in the wiki with my settings and upload the DynamoNode Solution with all referenced files (including Fsharp.Core and Microsoft.Practices.Prism).

tatlin commented 11 years ago

That would be super! You will need to issue a pull request on github once you have a commit that you'd like to push out.

Yes, adding the references to FSharp.Core and Prism in the DynamoNode solution is a good idea. Note you should not need to re-upload the actual libs of course as they are already on the GitHub Dynamo site here:

fsharp redist - https://github.com/ikeough/Dynamo/blob/master/scripts/install/Extra/fsharp_redist.exe prism - https://github.com/ikeough/Dynamo/blob/master/extern/prism/Microsoft.Practices.Prism.dll

One thing we have been planning to do is make a visual studio template from this project as well. If you are so inclined that would be the next step after updating the solution. Templates are pretty much just zips file created by visual studio that need to be placed in the correct spot on the users machine. We can update the installer later to look for VS and install if found.

thanks!

-matt

kronz commented 11 years ago

This is a great discussion, but better as a Forum entry is it is neither an improvement request or a bug. I have moved the discussion there http://autodeskvasari.com/forum/topics/users-creating-new-nodes