Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Register
    • Login

    Creating custom asset nodes via Python API

    Scheduled Pinned Locked Moved Cinema 4D SDK
    2026pythonwindows
    1 Posts 1 Posters 36 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • I Offline
      itstanthony
      last edited by

      Hey folks,

      I'm working on a Python script to automate Redshift AOV setups in C4D 2026. Everything works fine with standard RS nodes (Store Color To AOV, Bump Maps, etc.) using GraphDescription.ApplyDescription().

      However, I'm stuck with a custom node I created and saved to the Asset Browser called "Normal Blender AOV". I can drag it into the Node Editor manually, but I can't figure out how to instantiate it programmatically via Python.

      Here's what the node looks like:
      alt text

      The Node Editor shows these IDs:

      • Asset ID: 76fe7ff03ad648d0b63ba1bb0bb05157@b905183b22b84cbe8793eec9029494c6
      • Instance ID (when created): 76fe7ff03ad648d0b63ba1bb0bb05157@BIWmc46OMVztmLGP18FR9_

      I've tried using these IDs in different ways:

      # Attempt 1: Using asset ID as type
      create_setup = {
          "NormalBlenderAOV": {
              "$type": "76fe7ff03ad648d0b63ba1bb0bb05157@b905183b22b84cbe8793eec9029494c6"
          }
      }
      maxon.GraphDescription.ApplyDescription(graph, create_setup)
      # Missing node type declaration
      
      # Attempt 2: With asset: prefix
      # Same error
      
      # Attempt 3: Using base ID only (before @)
      # Same error
      

      The node exists in my Asset Browser and I can use it manually, but I'd like to dynamically instantiate it from the script (similar to how the script creates other Redshift nodes).

      Right now my workaround is to detect if the node already exists in the material and connect to it, which works fine. But I'd love to be able to create it programmatically from the Asset Browser.

      Is there a way to instantiate custom Asset Browser nodes via Python in Redshift material graphs? If anyone has experience with this, I'd really appreciate any guidance.

      Thanks!
      Anthony

      Setup: Cinema 4D 2026.1, Redshift 2026.2.1

      1 Reply Last reply Reply Quote 0
      • First post
        Last post