Rhino WIP Features / User Interface


In “Rhino WIP Features” I can read under “User Interface”:

  • Cross-platform tab system for panels and toolbars
  • Cross-platform docking architecture rewrite


  • Toolbar improvements

So I hope this is the right time to stress the need to control Rhino’s interface with APIs (C#/Python).
I have the need to modify dinamicly (via a script) the toolbars, the buttons, the panels…

My first use case is having a different workspace for different jobs.
2D drawing, 3D modeling, rendering/shading and some more specific Inventory/BOM, Machine tools/controller.
Creating a set of RUI files is not dynamic and requires knowledge of the Rhino context and configuration when creating them.
Even though Rhino doesn’t offer different workspaces, I would like to be able to program it.

I’d like to dynamically turn Rhino’s command line on and off, take full control of the keyboard and shortcuts.

Similar, my goals are to be able to set specific presets and keyboard events in a different context.
For example, I am writing a custom command and would like the “.” performs a particular action.
Or, I am working in the context where I control a machine tool and I want the larger key on the keyboard to immediately stop the process.

Overall my need is to be able to dynamically create profiles that I can activate and deactivate at will.


1 Like

I have been working with the Rhino 7 API for a short time and have not seen any additional possibilities on these aspects. But if there is, I would be happy to hear about it :slight_smile: .

This is already possible with _CommandPrompt _Show _Toggle for example as well as via RhinoCommon Rhino.ApplicationSettings.AppearanceSettings.CommandPromptPosition

The concept of multiple .rui files allowed to be loaded at either together or one at a time was also intended to be able to create and load different workspaces for different tasks. The tabs are also used in the same way. I think virtually all of that can already be automated.


First of all, I want to clarify that between "I want! Do it for me” and “Don’t do anything” I try to find a compromise “Give me the API to do it myself”.

An example of “I want! Do it for me”, but what I can work on is the UX aspect of Rhino.

@Helvetosaur, thank you for your reply.

I had never noticed AppearanceSettings.CommandPromptPosition.
However, I just did some testing and still can’t capture all of the user input.

RUI files are a static method for adding/removing toolbars. “Static” that require you to know in advance what you need.