Is it possible to use speckle for version control and revert changes within Revit? (exactly like GitHub works🧐)

Hello Speckle community and team, just a quick question. Is it possible to use speckle for version control within Revit?, but only for one area or only for certain selected Elements (pipes, pipes fittings, mechanical equipment, etc).
What I mean is: in the same way as when you upload your repository to GitHub and you know that you can create multiple branches of the same project and then merge only the parts that interest you without fear of losing the initial work or the work of another colleague who is working on the same project.
I understand that the idea of ​​Speckle is something like this, but I don’t know if this tool already exists within the Speckle ecosystem or is still under development.
This need arose for me because I use Revit daily in my office to review and fix Clash Coordination Issues with different trades. Sometimes we have had this problem going back to previous design versions or geometry only in some areas or elements. We do not want to replace the whole Revit file when some changes have to be reverted. Thank you very much for the help, and if this already exists that is very cool. Cheers!

1 Like

Hi Luis!

Thanks for the good question, Speckle already supports version control, let me explain how it currently works:
every time you send, for instance, your Revit model to Speckle a commit is created automatically. The commit contains information on everything that was sent. If some elements had been sent before, Speckle is smart enough to only store them once.
So in this way, with every “send action” you are creating snapshots of your model that you can use for version control.
Now, we currently do not have UI features to show visually what has actually changed from a commit to another (diffing), but on tech side it is totally possible.

Note that the versioning is happening on the Speckle data itself and not on the Revit file, and therefore to restore an old version of your model, you’d need to receive that commit back from Speckle. Currenlty this operation is not aways smooth as some Revit elements are not fully supported, but it should work well for the supported ones.

Let me know if you have any questions!