Grasshopper unload

Dear expert user, the _GrasshopperUnloadPlugin command has been deactivated because reasons.
To be less facetious, it never really did what it claimed to do, and in the process of not-quite-doing-what-it-pretended-to-do caused more problems than it solved.
If you absolutely, positively need this feature in order to achieve and/or maintain a life worth living, please post something to this effect on https://discourse.mcneel.com/
We apologise for the inconvenience.

Need this.

What problem were you solving with it?

really sucks having to close rhino just to enable or disable a plugin

Do you just want to hide the toolbar icons for a specific plugin, or is there more to the disabling than that?

Hi David,

not particularly to hide icons…that’s for another thread.

Mainly if there is a script that requires a certain plug in I don’t have installed, or I want to update a plugin, or test out something.

Or if there is some bug or performance hit and i want keep my session open in rhino.

for example, sometimes if GH is open attaching a file in the worksession takes forever

It is not actually possible to unload any assemblies from an ‘appdomain’ (i.e. Rhino) while it is running. Even the old UnloadGrasshopper command did not do that, it just pretended to do it. I’m not opposed to bringing some of that functionality back, although ideally through a properly named command.

The first step here is to figure out what the various features are people want, which of them are workarounds for bugs which oughtn’t be there in the first place.

This I haven’t tested at all myself yet. What does “sometimes” mean? When a particular gh file is loaded? When a particular gh plug-in is loaded? Randomly?

Hi David… you said it was pretending to do something… but whatever it was doing was working… why take it out?

What part of it was doing something you needed?

able to load / update / disable plugins without restarting rhino

1 Like

You mean plugins you’re developing, or plugins by someone else?

I was using it pretty frequently too (and I don’t develop gh plugins myself). For example, you can keep gh clean at start and once you notice a plugin is missing, you can simply ‘unload’ gh, install/enable the plugin and reload gh. Right now any change in plugin requires a complete Rhino restart which just takes a lot more time.

So the actual functionality you’d like to see is the ability to load and hide plugins while running? Loading should work, but it seems the current version isn’t keeping track of GHA files in plug-in folders. That needs some looking into.

The reason the Unload command was removed is because it didn’t actually unload anything, it just lied about it. In the process of doing that it also did a lot of other stuff you didn’t necessarily want to happen, causing all manner of potentially weird bugs and crashes.

The part where a memory-loaded plugin can be compiled and loaded anew for debugging purposes (which is what some people used the unload command for) is now covered by the GrasshopperReloadAssemblies command. I could extend this command to also look for plugins which were installed since Grasshopper started.

yes that would be helpful

Id like to be able to able to hide extraneous plugin menus entirely temporarily.

Ergo: Set up a workspace type functionality. For example say I was only working on a project that used Agent Based Modeling and GIS, I would set up a workspace that only included packages related to those two topics. When i was finished with the project or have to switch gears to say modeling a facade, I could default to seeing all installed plugins as a DEFAULT workspace or i would set up a workspace called FACADES to show only packages related to Facades and switch over to that workspace.

I was thinking this would be fairly easy to do. Set up a WPF app, Set a temp folder, Set Workspace Entry, Toggle buttons for the plugins on each workspace, When a user applies a “workspace”, the plugins (.gha files) get moved to the temp folder.

That part is straightforward and works to remove the icons and get a pseudo workspace functionality in line, but my gripe is I still have to close rhino completely, And reopen rhino and grasshopper. Which was what i set out to try and resolve in the first place.

So if I could at least kill the grasshopper thread and restart GH (Force reloading the GHA assemblies) that’d be great.

https://wiki.mcneel.com/rhino/schemes