CommandData based commands implement simple actions and can be invoked programmatically:
The Cinema 4D GUI is based on "dialog" windows based on the GeDialog class. A plugin can create custom dialog windows for user interaction or to create new managers.
Custom GUI elements are based on GeUserArea and CustomGuiData.
File selection dialogs are handled with the Filename class, see Filename Manual. Functions to open default message and question dialogs are defined in c4d_gui.h
.
Parameters of NodeData based plugins are displayed in the Attribute Manager. They are stored in a so-called parameter description.
The interactive viewport displays the currently active scene. By implementing a "Draw" function it is possible to draw in this viewport to add custom visualisations: