If my plugin is already running and I am opening a new 3dm file - I can read plugin-related data with ReadDocument Sub.
But if required 3dm file is opened and I start my plugin afterward - how to check if file contains plugin data and if yes - read this data in a similar way as with ReadDocument?
As far as I know, this is not possible to load the data after the file has been opened. What you can do is this:
File3dm f; // you should open the 3dm file that is already opened
foreach (var pd in f.PlugInData)
Guid id = pd.PlugInId;
if (id == myPluginId)
// alert the user that they should re-open the file now that your plug-in is loaded
Sounds reasonable. Thanks!
@dale - can you please confirm this?
@dale or @stevebaer - can you comment, please?
You shouldn’t have to worry about this. Your plug-in will automatically be loaded when Rhino encounters data written by it in the 3dm file.
Only in the case where a) the plug-in is not previously known by Rhino and b) gets loaded manually after a file containing data has been loaded do you need to do ask the user to re-load the file. Otherwise, the plug-in is indeed loaded on demand by Rhino.
Question related to this:
I would like to save current doc.
Dim opts As New FileWriteOptions()
opts.SuppressDialogBoxes = True
But still i need to press Enter before it saves:
Save file name <C:\Users\DSO007\Desktop\curproj.3dm> ( Version=6 SaveSmall=No GeometryOnly=No SaveTextures=Yes SavePlugInData=Yes Browse ):
@menno @stevebaer , what should I add in order to save in absolutelz silent mode/no @Enter@ confirmation?
Why not script it using
RhinoApp.RunScript("_-SaveAs "D:\temp\test.3dm" _EnterEnd");
this, of course, will work but I was just thinking when using SuppressDialogBoxes - saving should take place without extra confirmation. I guess using of RC doesn’t foresee using of Script.
Just would like to now if it is a Bug or not?
When saving a document, you should script the Save command using RhinoApp.RunScript…
And when WriteFile to be used then?
I’m not sure I can tell you - sorry…
Because 3dm is an open file format, there is the possibility to read/write outside of rhino, when using Rhino3dmIO. That’s when to use WriteFile.