RUI toolbar bug?

We’ve had this problem for the last few iterations of working on my plugin for my client that has me pulling my hair out with frustration. I have a rhino toolbar with a few icons. For reasons that make very little sense to me, the first two icons always revert to a WRONG image for the 24x24 variant, despite fixing them, saving them properly, verifying them on my dev machine. Every time, without fail, when I send the new toolbar to my client, the buttons revert to their broken old state, save, and then stay broken. This is infuriating. Is there some rhino button caching thing between app runs that I’m not aware of? I’m at the point where I’m going to give up on having a toolbar interface at all over this.

Rhino 6 caches the toolbars in %APPDATA%\McNeel\Rhinoceros\6.0\UI\Plug-ins\ on windows (don’t know about MacOS, but I assume it would be somewhere in the ~/Library/ folder). For rhino 5 replace 6.0 in the path by 5.0.
try deleting the .rui file in there and see if it solves the problem.


I was actually saving-over the file stored in the appdata location (assuming its the same one the interface reports when you reveal the location of an installed toolbar) while the app wasn’t running. I can try letting it “reinstall” from the plugin source as well. I’ll see how that goes

If this is a plug-in RUI file (installed with plug-in in the same folder using the same name as a RHP file) then then Rhino treats the RUI file as a auto load plug-in RUI file. What this means is Rhino does the following:

  1. Checks to see if the RUI file exists in the %APPDATA%\McNeel\Rhinoceros\6.0\UI\Plug-ins directory, if not it copies the file from the plug-in install folder to this folder.
  2. Opens the RUI file found in the %APPDATA%\McNeel\Rhinoceros\6.0\UI\Plug-ins directory.
    What this means is that if you install a plug-in update with a modified RUI on a machine that already has the file copied into the users %APPDATA% folder the new RUI file will get ignored. The RUI file must get deleted from the %APPDATA% folder to allow Rhino to stage the updated RUI file. The plug-in can handle this by storing a RUI version number in your plug-in settings, check the RUI version in the plug-in’s OnLoad override and delete it from the %APPDATA% location if it is old.

Creating and deploying plug-in tool-bars is described here.