Hello Community,
lately I’ve been trying to understand Speckle, especially how it realizes data curation with Autodesk Revit.
So far, I have tested the fundamental operations of inserting, moving and deleting an object in my Revit project by receiving commits that I have previously pushed from the same project. Inserting and moving work fine, but when trying to delete a hosted object like a door, I encounter a problem. I understand that in order to “delete” a hosted object on the Speckle server, you can’t just push a “delete this” commit. Instead you have to remove the hosted object in your Revit file and then include the former host object in your next commit. When receiving this commit in an earlier version of the project, the applicationId (in Revit: UniqueId) of the host object should be recognized and the hosted object should be “deleted”.
This works fine as long as the commit containing the former host object contains more than just the host object. I wonder if this is intended and if so why it works this way.
- Objective: “Deleting” a hosted element (door) by pushing only its host element (wall) as a selection to the Speckle server
- Issue: When receiving the commit back into an older version of the Revit project the door isn’t deleted.
- Example:
-
creating a Revit model:
-
pushing the walls, the floor and the door as a selction to the server:
-
removing the door in the Revit model and pushing only its former host wall:
-
receiving the initial commit with all the objects → (a new) door (with new Id and UniqueId) is inserted again:
-
receiving the commit containing only the empty wall → door still exists in the Revit model:
If I push “Everything” instead of a selection, or if I add another element to the selection (e.g., the former host wall and the wall opposite to it) in step 3, deleting the door in step 5 works just fine:
But right after receiving the commit containing only the former host wall (and not deleting the door), even when receiving the “right” commit, the door is not deleted. After receiving only the former host wall, the door seems to be “stuck”. Even after receiving the original project commit, the door can’t be removed by a Speckle commit. Only after I have manually removed it and received the initial project commit again, can a commit like the one containing the host wall and the opposite wall remove the door from the Revit project.
I’ve encountered the same problem with windows.
I’ve been using:
- this Speckle_branch
- Revit 2024.1
- Revit Connector 2.17.0
- Revit database explorer 2024 - v2.2.2
Thanks in advance!