Due to the nature of my work, I frequently have multiple instances of Rhino open across several Windows Virtual Desktops typically juggling three projects a day with 1–4 models open per project.
For those who may not be aware of Rhino’s back-end logic: Rhino generally saves its global settings (like Aliases, Display Modes, and Toolbars) to the Registry or XML files only when the application is closed. Currently, the instance that is closed last is the one that “wins” its configuration overwrites the files, effectively erasing any changes made in instances closed earlier.
In a busy multi-window workflow, it is very easy to lose new toolbars or shortcuts if one accidentally closes their “modified” instance before their “static” ones.
I would love to see a system that allows for more fluid synchronization. I’ve been thinking about a few possibilities, though I realize each comes with its own technical nuances:
A “Manual Commit” Command: A button or command that allows us to “Push/Save” current session settings to the disk immediately, rather than waiting for the program to close.
Active Conflict Detection: Perhaps an instance could upon opening “record” then monitor the “Last Modified” date of the settings file. When you switch back to a window (bringing it into focus), Rhino could potentially detect a newer settings file and ask: “An update to global settings was detected. Would you like to reload?”
UI Refresh Logic: A way to force the UI and workspace to “Pull/Load” from the disk without needing a full application restart.
Acknowledging the Obstacles: I know this is likely more complex than it appears on the surface. Issues like exclusive file locking (where Windows prevents writing to a file currently in use) and the intricacies of how.rui files are handled present real hurdles.
This is all based on my best understanding of the inner workings and could easily be off. I know there are many here with far greater knowledge and understanding of the system.
Edit: I did do a little searching on the topic before posting but didn’t find much. Upon further reading this has been brought up for over 13 years. I do not see any definitive answers about it getting addressed, or someone saying officially that it will not be pursued though so I will leave this up and hope for a small miracle.
Very useful read!! I also work with multiple sessions. Luckily I don’t do much UI editing any time I happen to have multiple instances open. But I do suspect this got me once or twice.
The search function absolutely sucks. Often times the results that come up while you’re typing a new topic are way more relevant/useful - and from there you can decide if it’s worth renewing the discussion or reading previous ones. These message forums are otherwise pretty good so having a crappy search is… well… not that bad. But ya it’s not you… it’s the search. You’ll get better results searching “McNeel forums” plus your topic on Google.
This is no longer 100% true. Many settings are written immediately and are applied to all instances. For example if you change the overall background color in Options>Appearance>Colors, it will apply to all open Rhino instances immediately.
However, there are exceptions such as .rui files, which as far as I know do not get saved even when Rhino closes - you have to actively save them. Toolbar changes are temporarily saved in a ‘differential’ .xml file in settings until you save the .rui file. This system is being actively worked on for V9 so it may change.
Thank you for clearing that up a little further. It typically is toolbar-related features that I lose. I use a lot of tool pallets for standardizing layer information so I end up adding new pipe or tube sizes, plate material and thicknesses, panel types and sizes, tooling clearances. . . I open the different pallets with toggle buttons on the main bar and it works pretty well. I just get annoyed by the process of trying to neatly add to it.
@RHammer this is a great post and you’re pretty much nailed everything that I’m aware of. As Mitch adds, Rhino does save some things quicker and other Rhino’s will load the new settings (assuming they are on the same machine), however Toolbars, RUIs and UI’y things as you say are a “last closed wins”.
Whilst I’m rewriting Toolbar’y things I did think about this scenario you presented and so the 9 UI will have a “Save” button that forces all of the open RUIs to save to disk. I could also add a “Reload/Refresh/Load” button that loads everything from disk. The RUIs can be entirely reloaded without a restart. Really I should look into the parts of Rhino that load/save settings automatically like other settings, but I’d need to spend more time thinking about that.
The above would be toolbars only, not window layouts, that’s something I’ll tackle in 10.