Persistent id of objects across commits


According to Architecture | Speckle Docs :

“Each object, when serialised, gets a unique id which is generated by hashing its value. This means that all objects are immutable: if they change throughout their lifecycle, they get a new hash.”

However, in this manner we can not monitor the object across commits. (who, what, when somebody changed the object, in order to “blame” for the changes). Is there any turnaround for a static id per object across commits ?


Hey @Dimitrios.Ververidis , good question!

Speckle objects are internally tracked and stored with the id property you mention, but if they originate from an authoring software like Revit, Rhino, Grasshopper etc they also have an applicationId filed which corresponds to the unique element id in the software they were created.
The Revit connector uses exactly that filed to see when en element needs updating or not.

Please feel free to add this explanation to the docs if you think it makes sense :slight_smile: