i am trying to add a userobject component to toolPanel,but failed,this is my try:
this is userobject:
i drag it into visualstudio,and it become a byte:
But I have to stop now,because I donnot know how to add this userobject to toolpanel when the grasshopper is starting with other my custom c# component is loading…
(for example:add the userobject(in byte) in such a place automaticlly when loading)
do some one have idea about it?
Thank you very much!
string target = Grasshopper.Folders.DefaultUserObjectFolder + "MyUserObject.ghuser";
byte bytes = get your byte array out of the resources...
Thank you David,it works!
But,how to run your code at everytime my “.gha” is loading?
You can create a
Grasshopper.Kernel.GH_AssemblyPriority object in your plugin which will be once whenever the plugin is loaded. I’m not entirely sure what will happen when you start populating the UserObject folder during load, there may be awkward race conditions there. You may want to delay the actual writing of the files until the
Grasshopper.Instances.DocumentServer.DocumentAdded events fire.
i put add handle method to event in PriorityLoad:
(and handle method is in a static class: “Common”.)
it works well ,but is PriorityLoad the good place to put
“Grasshopper.Instances.CanvasCreated += Common.CreateUserObject;” ?or other place better?
Yep, it’s a good place. It only won’t work if your plugin is loaded after Grasshopper loads. So if Common.CreateUserObject is cheap to call, you could even put it into the constructor of one of your components.
David，if i delet or add “ghuser” in DefaultUserObjecFolder,the userObjectl will be immediately appear or disappear in the tool panel.
But if i add a fold in DefaultUserObjecFolder,for example:
When delete or add the object in “jj” folder,it will not be appear or disappear by restart Grasshopper rather than immdiately…
Do you have some idea of this ?because i prefere make it immediate to show…not restart gh.
I realize this is an old thread, but did you ever find a way to live load user objects from sub-folders? I’m encountering the same issue now.