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
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Global change notifications

    Cinema 4D SDK
    c++ sdk
    3
    3
    448
    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.
    • B
      BarnaBuzaVentuz
      last edited by

      Hi.

      We're developing a live-link plugin for C4D and ran into an issue where we need to register for individual event notifications (through AddEventNotification) per object in order to track the changes we need to sync. For example if I want to track if the material of a certain object has had a texture changed I need to add a notification to the object, keep track of any materials added to the object through that notification and add a separate notification for the material to keep track of the changes there. This is quite convoluted even for this very basic example.

      Is there a way to get event notifications for the whole document so we could easily sync over the changes to our application without the need of all the secondary scaffolding?

      Thanks,
      Barna / Ventuz

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

        Hello @BarnaBuzaVentuz,

        thank you for reaching out to us. You can listen to broad system wide core messages with for example MessageData::CoreMessage() or GeDialog::CoreMessage(). Broadcasted to these methods will be the EVMSG core messages from the core of Cinema 4D. As for example EVMSG_CHANGE, which will be broadcasted whenever something invokes EventAdd(), i.e., on all changes to the classic API scene graph of a Cinema 4D document.

        There are also SceneHookData plugins which can be used to monitor a scene, as they can be placed in the execution pipeline. There is however no information being broadcasted both in the core message and scene hook case which would tell you which part of the scene has changed, so you must manually search for the changes yourself.

        Cheers,
        Ferdinand

        MAXON SDK Specialist
        developers.maxon.net

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

          Hello @BarnaBuzaVentuz,

          without any further questions we will consider this topic as solved by Friday, December the 17th.

          Thank you for your understanding,
          Ferdinand

          MAXON SDK Specialist
          developers.maxon.net

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