Updating objects GH>Revit

Hey guys,

I’m currently testing streaming some basic objects from GH to Revit to get familiar with the new classes. One very cool thing of Speckle 2 is that updating is now done very well, good job :ok_hand:! However, I came across two minor issues when changing my GH model and trying to receive the updated stream in Revit.

  1. RevitBrace objects
    I have tested several structural related objects (columns, beams, floors, walls) which all seem to update properly, but I can’t get the Brace objects to update properly in Revit. When receiving the updated stream in Revit, the old brace object will remain in the model. Causing sometimes a conversion error when the brace itself is not updated and two identical instances are present in the model. When looking at the object itself in the stream the applicationId’s are exactly the same. Any thoughts on this?

  2. RevitColumn Vertical rotation
    The RevitColumn objects update in Revit like expected, except for the case when only the rotation input has been changed. In this case nothing will happen and the columns will remain the same as the previous commit. Only when I remove the columns and reload the latest commit the rotations are well received. What are your thoughts?

The images above are from earlier versions of the connectors, but I have just updated everything to the latest version which unfortunately didn’t solve these issues :cry:. I’m using Revit 2021 here btw.

Thanks in advance!

1 Like

Hey Gerran,

Thanks a lot for the detailed bug report, this is super useful for us!
I’ll track it internally and we’ll investigate as soon as we can :microscope:

1 Like

Hi @GerranLankhorst ,

I can confirm they’ve been now fixed and will be included in the next release (due in 1-2 weeks).

Thanks again for reporting these!

1 Like

Hi @teocomi ,

Thanks for the quick reply and the quick fix!

1 Like

this post seemed a good place for something I noticed/wanted to ask, as it is similar topic. I have been importing from GH to Revit some columns with consoles. As I use the same family type for different places, and just have them facing in different ways in Revit, I decided to spare myself figuring out every time what rotation I need to put in GH. Instead, I import them, and then was doing the axis rotation in Revit. After doing a rotation, I wanted to update with some new elements added, not affecting the rotated columns. However, after importing a next stream in Revit, it duplicated the already existing columns.

So here is my question/observation: Is it correct to assume that once an update has been done in Revit, it no longer treats the element as the same and a new stream will just create a new element in the same place instead of updating it? Is there some workaround for this?

Example 1: I pass Column X. Then in Revit I rotate Column X about its axis. Then I update something in the Grasshopper/Rhino and pass again Column X (the column has not been updated in the Rhino/GH). Once in Revit ,in the location of Column X now I have 2 Columns - the rotated and the one passed after the stream was updated.

Example 2: If I repeat the above, but without doing axis rotation of the column, it recognizes it as being the same and does not duplicate.

Hello @richardmih !

I think the update problem is instead related more to this other topic: Update behavior Rhino to Revit

Where the core issue has to do with the IDs we are generating for grasshopper not being very reliable.
I would suggest setting your own IDs on the column, in a similar way to this:


Hello @teocomi ,

I tried the proposed method by you. First I tried with some short applicaitonID and then with a 32 character long one, to match the length of the UUIDs. Unfortunately, in both case the columns get duplicated again, if I have modified their rotation in Revit prior to update via speckle