Deploy Rhino Toolbar to Firm (via plugin?)

I’m wanting to deploy a custom toolbar to our firm that will run Dynamo Player scripts.

All I really want is for people to have the most up to date toolbar, and from my understanding the plugin approach is the way to do this?

I am an architect, not a programmer, so here is what i have been able to accomplish to date:

  1. I have created the toolbar with icons that function like i want.
  2. I used the script compiler on the grasshopper files to create a .rhp file. (The Script Compiler tool is amazing for a non programmer like myself)
  3. Install the plugin from the .rhp- via the plugin manager.
  4. copy the .rui file to the plug-in folder, so that the toolbar I created pops up after the plugin install.

Our firm has ways to run bat scripts / exe files on startup on everyone machines so here is my question (assuming I’m even on the right track :slight_smile: )
Is there some way to automatically install the plugin outside of using the Rhino plugin manager? via a bat script or exe file?

The reason why I would like to automate this outside of Rhino is for 2 reasons:

  1. By default everyone will see our companies toolbar so they can see the scripts that we have developed. (I don’t want to rely on people to run the plugin manager to install the toolbar.)
  2. We can UPDATE the plugin occasionally and not have to have people re-run the plugin manager. I can relax in knowing that everyone is using the same plugin version if I change/add to it.

Hi @rjohnson1,

If you are using Rhino 7, you can use the PackageManager.

Here is some info on how to add your plug-in:

If you are using Rhino 6, you can create a Rhino installer package:

And here is some additional information on deploying toobars:

Hope this helps.

– Dale

  1. Isn’t the package manager public? One of the scripts I have made contains API key in the code that is private.
  2. Is there a way to push out / automate the installation and automate the updates of a package from the package manager?

I just tried this process, and it appears that it creates a yak file that is the same as the one that the script compiler tool creates. So i already had one of these. But it was good to know how to do it without using the compiler.

I had already followed the instructions there to get the toolbar to show up when I installed the plugin. However it does describe how to update the rui file on update that is over my head. is there a way to include the C# script when using the script compiler tool?

Hi @rjohnson1

One very low-tech way to do it, which has pros and cons. You can run the scripts directly from a network drive. Then all you need to do is share a .rui file with everyone. This would require everyone be on a VPN or something if they’re remote.

The idea is that the button contains a command like this:
!_-RunPythonScript “\server\directory\script.py”

We built out some deployment tools around this concept since Rhino5 and it’s been working pretty well for us since. We have an update button that automatically loads the newest .rui file from the repo and keeps the local Plug-ins folder clean. Lots of things you can do. Just my two cents.

If you want to use the built in Package Manager for a private repository there is a discussion here: Yak for private distribution? - #3 by aske

Cheers! :grinning:

1 Like

Hi :wave:

I’m Aske from the other thread. I built a custom private server for us for the same reason: we use some private internal API’s, and I couldn’t be bothered to write an entire accounts system for it [1], so I just embedded the API key in the code. It’s working well for us, but there are a couple of things to keep in mind with this approach:

  • McNeel might make changes that you either need to react to, or completely block the option of doing at all at any moment, without notice. This is not an official supported feature, I just reversed the PackageManager HTTP requests.
  • Security through obscurity is a terrible idea. If you pipe classified information through it, you deserve to be sued.
  • It doesn’t solve OP’s original problem of auto updating a toolbar :slight_smile:

[1] McNeel have an option to use them for Licensing, but I couldn’t get it to work for us. Look into Licensing for plugins, they offer a solution to restrict your plugin to certain accounts, but there is a lot of scaffolding around it.