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.
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?
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.
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.