Object from Hierarchy has changed

On 20/03/2016 at 09:31, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R17 
Platform:   Windows  ;   
Language(s) :


I have to great a messenger that catches the changes done by the user in any object in the hierarchy.
So, in case of an EVMSG_DOCUMENTRECALCULATED event, I scan the hierarchy and for each object, I use the GetDirty method to check if that object has changed. Since GetDirty returns a checksum number, it appears that I need to compare it with a previous checksum number. So, It seems that I have to create a map with objects as keys and dirty numbers as values and with a change in any object, I have to scan all the hierarchy and ask each object for their dirty bits. Is there any alternative approach to check if an object has changes ? (matrix, cache, etc)

Can I get directly the dirty objects without having to scan the hierarchy ?

Thank you for your time.

On 21/03/2016 at 03:19, xxxxxxxx wrote:


there is no function that would return a list of changed objects. You have to create such a function yourself – by scanning the hierarchy. But you can use GetHDirty on the given BaseDocument to check if anything relevant changed and if a hierarchy scan is needed or not.

Best wishes,