Plugin API transition guide/advice from Rhino 5 to 6?

I’ve been handed a several years old codebase for a few Rhino plugins that I have been told is compatible for Rhino 5 (maybe 5.5 actually). Looking through the files, I see some Visual Studio projects, some C# files and some C++ files. No Python. I’m not sure what the exact functionalities are yet, but they support energy modeling, so I assume there is plenty of marshaling of 3D data and computations behind the scenes, and not highlighting and tool support for modelers. The plugins are used internally, not commercial or posted in the community.

I need to get the plugins up and running and use them for a project. We still have licenses for 5.5, but we are also using 6 on several other projects, and licensing going forward will all be 6. Ideally, we should port them to 6, so they are still usable in the near future. I have a few months part-time to dedicate to this project.

Is the transition from 5 to 6, from an API standpoint, pretty grand? Or not a huge deal?
Are there any transition guides, or “Rhino 6 programming for the Rhino 5 programmer” articles, or lessons learned during porting? Things to look into?
Given my experience w/ the Rhino API (none), should I attempt it, or just keep them in 5 and use them?

As for my experience:

  • I have never touched a single Rhino API :slight_smile:
  • I have however coded plugins for Maya and 3D Studio Max decade(s) ago, so I am familiar with scene graphs, DAG, graphics APIs and necessary math, etc.
  • Plenty of development experience in various languages
  • I have used Rhino and Grasshopper on a few projects as a user (not a developer), so familiar with the product and basics

I’m interested in any advice you all have, especially if someone has gone through the transition from a developer standpoint.

Thank you very much!

In my experience (C# using RhinoCommon) it’s as difficult as changing the dll’s for the compiler, but I guess there might be some things that are incompatible. The problem is when Grasshopper 2.0 is integrated into a Rhino release as from what I’ve been told the IGH_Goo interface (and DataTrees?) would be completely replaced with something else, but for Rhino 6/5 I guess (if I am wrong please correct me) there shouldn’t be so many differences.

Hi @jdelrocco,

The best place is to start here:

That depends.

If the C# code using RhinoCommon, then that should just run in Rhino 6.

The C++ code, on the other hand, might require more work if it makes any calls into the Rhino C/C++ SDK, as there were a number of changes made to the toollkit between Rhino 5 and 6.

Without any more details, this is about alll we can provide.

– Dale