Limitations of Python SDK


Currently the Python SDK still has some limitations compared to the C++ SDK. In order to make planning of your plugin projects easier, we’d like to maintain a list of existing limitations. Unfortunately this task is quite time consuming. Thus we’d like to ask for your help. If you stumble over something, you’d be able to do in C++, but can’t realize with the Python SDK, please leave us a short comment or send an email: [email protected].

Current Limitations

  • Initiating Morph tags
  • Linking Xrefs
  • Editing (for example creating a point selection) FFDs with unusual operators (without usage of HighlevelData)
  • c4d.DescriptionPostSetValue() is not defined
  • Layer shaders layer can´t be edited
  • ProjectPoint() is not included therefore it´s not possible to create UV coordinates from a given texture projection. Only through the creation of an UV tag the corresponding RGB values are readable
  • Video post data plugin is not available
  • C4D standard falloff types are not available
  • Python version of BaseVolumeData does not include a reference to the current RayObject
  • No public access to TreeView
  • Snap module isn’t fully implemented, you can’t create a tool that makes use of the new snap engine
  • NodeData.GetDDescription() is not available
  • RegisterPluginHelpDelegate() is not available
  • Content Browser can’t be accessed
  • GeColliderEngine not available
  • Submenus can not be changed
  • GenerateTexturePath() is not available
  • MaterialPreviewData is not available

Andreas Block

Fomer SDK Support Lead and Developer Over ten years of development in industry automation provided me with a good foundation of low level and FPGA programming knowledge as well as with insight into various operating systems. Cinema 4D has been a hobby of mine since it started to emit its first rays of light back in Amiga times (still known as Fastray back then).


  1. Hello MAXON SDK Support Team,

    what I especially miss in the C4D Python SDK are NodeData.GetDDescription() and the SNHookClass.

    Would be great if these two would be implemented soon.
    (And it would be really outstanding if it would even be implemented in former C4D Versions with a small service update as well but I know that this is unfortunately very unlikely.)

    Kind regards,

    PS: I highly appreciate the latterly increased attention to the whole SDK and development stuff from MAXON side now. Was about time. ;o)

  2. Hello Tom,

    thanks for your message. We will consider your ideas and try to find out what is possible to implement.

    Best wishes,

  3. Another limitation is not being able to dock windows. It would be nice to have the ability to write a script that can build a “pallet” with various plugins and custom script windows to help artists by building an advanced layout. For example: I have a script that builds a window with various tools to setup a custom render farm. I would like to be able to launch the render queue window and dock it to the side of the just build window.

  4. Actually I’m not quite sure, this can currently be achieved with the C++ API.
    Anyway thanks for the suggestion, I’ll forward this as a feature request.
    To offer a workaround: You know, you can save single palettes? In this way you can at least provide your plugin user with a ready to use palette and he can dock it, where ever he wants.

  5. Some windows may be dynamically build and thus a saved pallet will show “plugin not found.” While having the user dock the windows him/her-self, having an advanced setup that involves say 20 windows, (where you wouldn’t have to require the user to change layouts,) would become repetitive and take time away from working on the finished product.

    Thank you for forwarding my request.

  6. .res and .h symbols aren’t automatically parsed, nor are ENUMs properly supported as in C++, which means you have to define all IDs in two places: your plugin source and the .h files. This can sometimes lead to issues when you forget to update both files.

  7. I’ve suggested that years ago already! Hopefully this will make it into the Python API, soon. I have been using a bunch of different workarounds. I can not believe it would not be a piece of cake to add this functionality I am not proven otherwise.

  8. Probably best to add that access to the R16 Reflectance material channel is not implemented.. So anything to do with standard spec or refl is not possible..

Comments are closed.