Welcome to the Plugin Café forum and the Cinema 4D development community, it is great to have you with us!
Before creating your next postings, we would recommend making yourself accustomed with our Forum and Support Guidelines, as they line out details about the Maxon SDK Group support procedures. Of special importance are:
About your First Question
Okay, there seem to be some misconceptions here:
- A c4d.plugins.BasePlugin represents a registered plugin hook, e.g., the
MyObjectPluginData hook with the ID
123456789. For the example case, the
BasePlugin node is neither a representation of a
MyObjectPluginData instance nor a
BaseObject instance representing such
BasePlugin is just a bundle of metadata so that one can browse the installed plugins in a Cinema 4D instance.
- We do not expose the UIs of Cinema 4D in the API, something like 'need[ing] to know the opened editor window' is not possible. You do not have access to dialogs.
GraphView node graph is attached as a branch to a scene element. In the case of the
Xpresso tag there are convenience functions and types to access that graph like
GvNodeMaster. But you can always access the
GraphView branch via normal branching, I have used that for eaxample recently here in the function
IterRsGraphGraphs in that example code.
GraphView dialog is non-public and you cannot access the information of which graph it is currently displaying. But you can get the active master node with c4d.modules.graphview.GetMaster(id). That limits your access to native Xpresso graphs and excludes for example render engine material graphs.