Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Graph Description Explicit Connections can not work in 3rd-renderer (Arnold).

    Cinema 4D SDK
    windows python 2025
    2
    5
    95
    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.
    • DunhouD
      Dunhou
      last edited by

      Hey community,

      I am working on something with GraphDescription, but seems I can not use explicit connection with Arnold, but Redshift and VRay worked as I want.
      I know 3rd is not full supported, but is this a problem with SDK design or Arnold's lack of adaptation, should I ask to Arnold dev?
      I tried match label/id/lazy id, but none of them work.

      btw: The notification and sorting of the forum have not been fixed yet. I have also tested it on a new computer and browser

      Cheers~
      DunHou

      this is want I want:

      0273eee1-1a1b-4140-b095-f1ae45c5df10-image.png

      Code:

      import maxon
      
      desc = {
          "$type": "#~.material",
          "#<shader":
              {
                  "$type": "#~.standard_surface",
                  "#<base_color": {
                      "$type": "#~.image",
                      "#<filename": maxon.Url("asset:///file_2e316c303b15a330"),
                      "#<multiply -> #>output.r": {
                          "$type": "#~.image",
                          "#<filename": maxon.Url("asset:///file_2e316c303b15a330")
                      }
                  }
              }
      }
      
      maxon.GraphDescription.ApplyDescription(
          maxon.GraphDescription.GetGraph(name="test"), desc)
      

      https://boghma.com
      https://github.com/DunHouGo

      ferdinandF 1 Reply Last reply Reply Quote 0
      • ferdinandF
        ferdinand @Dunhou
        last edited by

        Hey @Dunhou,

        You are talking about the "#<multiply -> #>output.r" part, right? What is the error output of the ApplyDescription call? Graph descriptions are usually very verbose in what is going wrong and tell you why something is not working.

        Have you tried absolute (i.e., non-lazy) paths and turning off validateAbsolutePaths with that you can basically force graph descriptions to always work in the addressing part, because it completely turns off all cache evaluation. I never tested graph descriptions with Arnold, it could be that they do something super unusual with their nodes, but at face value that image node looks pretty normal.

        As you know third party APIs are formally out of scope of support, and checking this will take some time. But I will try to give it a look, but this will only be post release, as I currently absolutely blasted with work, and I would first also have to request a license, as we do not have Arnold licenses out of the box in our SDK software pool. So, this would probably happen around end of September. Please tell me explicitly if you will need help or not with this.

        btw: The notification and sorting of the forum have not been fixed yet. I have also tested it on a new computer and browser

        In what capacity? Have you tried resetting your browser cache? That sounds all bit mysterious. What happend with the forum rollback, is that all the nodebb sessions were invalidated. But that should have rectified itself the latest after seven days. Can you show us your console output?

        Cheers,
        Ferdinand

        MAXON SDK Specialist
        developers.maxon.net

        DunhouD 1 Reply Last reply Reply Quote 0
        • DunhouD
          Dunhou @ferdinand
          last edited by

          Hey @ferdinand,

          Thanks for your tips! Disabled validateAbsolutePaths with lazy paths can also work in this case, but if you interested, here is the console without disabled:

          I know third party APIs are not supported, just want to know if it is possible due to Arnold. It looks like it is due to my poor knowledge 🤡

          And as I know, Arnold has demo plugin that only has watermark on render, I use the demo to create plugins and it it worked as same as the full version.

          Cheers~
          DunHou

          Traceback (most recent call last):
            File "scriptmanager", line 19, in <module>
            File "C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\python311\maxon\frameworks\nodes.py", line 548, in ApplyDescription
              res: DataDictionary = GraphDescription._ApplyDescription(
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            File "C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\python311\maxon\decorators.py", line 495, in Auto
              ExecStaticMethod(*args)
          RuntimeError: The node attribute reference '>output.r' (space: 'com.autodesk.arnold.nodespace', lang: 'en-US', node: 'com.autodesk.arnold.shader.image') is not associated with any IDs. [graphdescription_impl.cpp(2003)]
          In:
          { <- Error in this scope ->
             $type: #~.image
             #<filename: asset:///file_2e316c303b15a330
             #<multiply -> #>output.r: {
          
               $type: #~.image
               #<filename: asset:///file_2e316c303b15a330
            }
          } [graphdescription_impl.cpp(203)]
          

          I test on a brand new Macbook, and refresh my PC browser, and try to use private mode. None of them worked, but the notification of my question does show in the Ring icon, but the sort does not work. not sure about UNREAD, but I do miss the recent topic.
          370c425b-0e9b-49d2-9f73-d68db93029ce-image.png

          https://boghma.com
          https://github.com/DunHouGo

          1 Reply Last reply Reply Quote 0
          • ferdinandF
            ferdinand
            last edited by ferdinand

            Hey DunHou,

            the error is a bit different one as I would have expected. It also seems to treat '>output.r' as a reference and not as an ID. I will have to take a look what is going wrong there, this does not look right.

            This could be an edge case of what is also happening for standard. Vectors are not actually exposed data types for which you could find data descriptions in a data description database. So, the information the data type Vector has there components x, y, and z and the datatype ColorA has the components r, g, b, and a cannot be evaluated in this manner. But the Standard renderer has add custom code which decomposes all its color ports into color port bundles of the form Color {r, g, b}. When then the API is caching the graph description lookup, it only sees that outer Color port parent, but not its bundle children {r, g, b} which are added at runtime. Which is exactly why I added validateAbsolutePaths, so that you can forcibly side step the cache. Because even if you use explicit IDs, graph descriptions check under the hood if what you wrote makes sense (to avoid cryptic errors or worse - something failing silently).

            But what is Arnold is doing there is not a port bundle but just four ports next to each other. But maybe they do something similar like Standard where they dynamically create ports at runtime outside of the 'normal' bounds of a variadic port (where dynamic ports are expected and somewhat predictable).

            I will have a look when I have time. What you could do, is check the resource of the Arnold image node in the resource editor. When you cannot see there the r output port, it means it is irregularly added at runtime, and therefore cannot be cached or predicted. Maybe @peter_horvath knows more?

            Or there could of course also just be a bug in how graph descriptions handle explicit output port references.


            Regarding the forum, the errors you have there are 'normal', it is just the emoji plugin of NoddeBB. And you have no notifications at all? I.e., this here?

            ebb40f5a-9ae9-491d-aba9-f3bf641f3213-image.png

            My daily driver is Edge, and there it works on Win, MacOS, and Linux for me. I also checked on Safari and FF and it seems to work there too.

            But these broken notifications are a common NodeBB problem, and are usually tied to dangling sessions. But I have not seen a case as persistent as yours before. You could try to go User Icon > Settings > Three Dots > Login Sessions and there manually revoke all your sessions.

            On top of that you can try to either completely delete the browser cache for developers.maxon.net or just force the site rebuilding it py pressing CTRL + F5 or similar key combos.

            MAXON SDK Specialist
            developers.maxon.net

            DunhouD 1 Reply Last reply Reply Quote 0
            • DunhouD
              Dunhou @ferdinand
              last edited by

              Hey @ferdinand ,

              thanks for details.

              Cheers~
              DunHou


              About forum, I can get notification about my own topic, And I clear all the cache, but nothing changed.

              After I tried to reset my account settings manually, then it worked as expected.

              https://boghma.com
              https://github.com/DunHouGo

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