SDK Change Notes for Cinema 4D 2027.0.0

Summarizes the API and API documentation changes made between Cinema 4D version 2026.0.0 and 2027.0.0.

Documentation Changes

Documentation

Added

and updated many manuals and removed outdated content.

  • Added API Overview, providing an overview of the major API components.

  • Added Debugging, explaining how to find errors with the mxutils debug tools, and how to track down crashes caused by threading violations.

  • Added Geometry Model, explaining the geometry model of Cinema 4D: polygons, edges, normals, caches, and splines.

  • Added Implementing Plugins, explaining the basic concepts of implementing plugins.

  • Added Matrices, explaining matrices in the Cinema API: coordinate systems, transforms, and the operations of c4d.Matrix.

  • Added Quickstart, explaining the basics of using the Cinema 4D Python API.

  • Added Dialog and Description Resources, explaining how to define dialogs and node parameters with resource files, and how to use them from Python.

  • Added Scene Execution, explaining how Cinema 4D updates a scene, and where Python code runs in that process.

  • Added Scene Structure, explaining how a scene is organized with hierarchies and branches, and how to traverse it.

  • Added Scripting Elements, explaining the Python scripting elements embedded in Cinema 4D scenes.

  • Added Style Guide, explaining the code style and conventions used in this SDK.

  • Added Vectors, explaining how to do vector operations.

  • Added Working with the SDK, providing an overview of how to work with the SDK in Cinema 4D.

Added

the Example Index, listing all example scripts and plugins of the SDK.

Added

the Resource Index, listing description resources, icons, description data types, and node templates.

Added

many improvements to the documentation UI.

  • Added dark mode support.

  • Added custom search functionality.

  • Added new change notes style.

  • Added card-based layout for manuals and links.

  • Added AI driven classification for entities in the Cinema API.

  • Added SDK license information.

  • Reworked the landing page by giving the Cinema and Maxon API a more logical structure.

  • Updated sidebar handling.

Added

stubs for the plugin reload and update functions.

Updated

the SDK structure and organization.

  • Added auto-generated overview tables to the SDK examples.

  • Added agentic metadata with .agents folder.

  • Added place for user projects with the projects folder.

  • Removed the old unnecessarily complicated example structure.

Updated

the Graph Descriptions manual, see Graph Queries and Lazy Literals in particular.

  • Added the ability to query connections between nodes.

  • Added query operators and query compositions; you can now do more than simple equality checks, and carry out multiple checks on the same value.

  • Added a query function which can be used outside of descriptions. With this function, you can also select ports as a query result, and not just nodes.

  • Added maxon.GraphDescription.EvaluateQuery(), which evaluates a query against a node graph.

  • Added multiple new attributes on maxon.GraphDescription.

  • Added syntax to describe groups in a graph description, and a command to dissolve groups.

  • Added the concept of input groups.

  • Added commands for setting nodes as start or solo nodes.

  • Updated the already existing but mostly undocumented lazy literal functionality.

  • Updated relevant description commands to now support specifying the ports to which the command selectively should apply to (some commands already supported this, but now all of them do where it makes sense).

  • Updated maxon.GraphDescription.PARSE_FLAGS() to support new parsing modes.

  • Updated maxon.GraphDescription.QUERY_FLAGS() to support new query modes.

Updated

the documentation of element-local dirty states and hierarchical change propagation.

Examples

Added

33 example scripts.

Example

Description

data/_c4d_basebitmap.py

Demonstrates the usage of the central bitmap type.

data/_c4d_basecontainer.py

Demonstrates the usage of the fundamental container type in the Cinema API.

data/_c4d_descid.py

Demonstrates important functions for the types c4d.DescID and c4d.DescLevel.

data/_c4d_description.py

Demonstrates important functions for the type c4d.Description.

data/_maxon_basearray.py

Demonstrates instantiation and usage of various Maxon data types.

io/bitmap_init_vector_file.py

Initializes a bitmap from a vector image file.

math/_c4d_geraycollider.py

Demonstrates ray casting.

math/_c4d_matrix.py

Demonstrates working with matrices.

math/_c4d_noise.py

Demonstrates working with noise functions.

math/_c4d_quaternion.py

Demonstrates working with quaternions.

math/_c4d_vector.py

Demonstrates working with vectors.

math/_mxutils_random.py

Demonstrates deterministic random values with mxutils.Random.

misc/mxutils_checktype.py

Demonstrates type and iterable validation with mxutils.

misc/mxutils_debugprint.py

Demonstrates mxutils helpers for diagnosing Cinema 4D scene data.

misc/mxutils_decorators.py

Demonstrates mxutils helpers for diagnosing Cinema 4D scene data.

misc/mxutils_localimportpath.py

Demonstrates importing a package relative to a saved Python script.

misc/mxutils_symboltranslationcache.py

Demonstrates translating Cinema 4D symbols with SymbolTranslationCache.

nodes/graph_descriptions_basics.py

Demonstrates how graph descriptions create and modify node graphs.

nodes/graph_descriptions_commands.py

Demonstrates graph description commands.

nodes/graph_descriptions_queries.py

Demonstrates graph description queries, including lazy color and vector literals.

nodes/graph_descriptions_references.py

Demonstrates graph description references together with lazy color and URL literals.

nodes/nodes_create_or_get_graphs.py

Demonstrates creating or getting node graphs in a scene.

scene/_c4d_atom.py

Demonstrates important functions for the type c4d.C4DAtom.

scene/_c4d_baselist2d.py

Demonstrates important functions for the type c4d.BaseList2D.

scene/_c4d_gelistnode.py

Demonstrates important functions for the type c4d.GeListNode.

scene/documents.py

Demonstrates basic document operations.

scene/layers.py

Demonstrates how to assign a scene element to a layer.

scene/objects.py

Demonstrates basic operations on objects.

scene/parameters.py

Demonstrates different ways to access and modify parameters of Cinema 4D scene elements.

scene/takes.py

Demonstrates the fundamental operations of the Take System.

scene/traversal.py

Demonstrates scene traversal.

scene/undos.py

Demonstrates adding undo steps for document modifications.

scene/userdata.py

Demonstrates how to work with user data parameters.

Added

2 example plugins.

Example

Description

py_cmd_gui_html

Demonstrates how to implement a dialog that hosts an HTML viewer and can send and receive data to/from the displayed web page.

py_obj_assetcontainer

Demonstrates NodeData serialization and custom branching.

API Changes

Cinema API

Added

JavaScript execution and web messaging to c4d.gui.HtmlViewerCustomGui.

Added

c4d.plugins.NodeData.GetBranchInfo(), which allows for adding custom branches to your node based plugins, see the py_obj_assetcontainer example.

Fixed

c4d.plugins.ReloadPythonPlugin() scripts generated from the Plugin Manager to always use raw plugin paths, to avoid issues on Windows.

Maxon API

Added

maxon.GraphDescription connection queries, query operators, and port selection to graph descriptions.

  • Added the ability to query connections between nodes.

  • Added query operators and query compositions; you can now do more than simple equality checks, and carry out multiple checks on the same value.

  • Added a query function which can be used outside of descriptions. With this function, you can also select ports as a query result, and not just nodes.

  • Added maxon.GraphDescription.EvaluateQuery(), which evaluates a query against a node graph.

  • Added multiple new attributes on maxon.GraphDescription.

  • Added syntax to describe groups in a graph description, and a command to dissolve groups.

  • Added the concept of input groups.

  • Added commands for setting nodes as start or solo nodes.

  • Updated the already existing but mostly undocumented lazy literal functionality.

  • Updated relevant description commands to now support specifying the ports to which the command selectively should apply to (some commands already supported this, but now all of them do where it makes sense).

  • Updated maxon.GraphDescription.PARSE_FLAGS() to support new parsing modes.

  • Updated maxon.GraphDescription.QUERY_FLAGS() to support new query modes.

Updated

maxon.GraphNode.FindInnerNode() to also accept maxon.NodePath and strings.

Mxutils API

Added

mxutils.DebugNode and mxutils.DebugPrint for debug printing.

Updated

mxutils.IterateTree() to support depth-first, inverse depth-first, and breadth-first traversal.

  • Updated mxutils.IterateTree() to now support the traversal modes mxutils.TRAVERSAL_DEPTH_FIRST, mxutils.TRAVERSAL_INVERSE_DEPTH_FIRST, and mxutils.TRAVERSAL_BREADTH_FIRST.

Deprecated

five functions, which now point to their replacements and keep working.

All deprecated functions and methods now point to their respective replacements. The old callables will never be removed but no longer show up in the documentation. All replacements are API stable, i.e., old code of yours will continue to run as is (but automatically be redirected to the new implementations).