Joining Ends of Beams via Rhino Inside Revit


I am a structural engineer trying to use Rhino Inside Revit to drive the creation of beams and columns in a steel building. I cannot figure out how to make the beams join to the columns automatically, as they would if I drew the beams natively in Revit. What I’m looking to be able to do is accomplished in Revit using the two end join icons at the end of each beam, shown in the image below.


I know that the Revit API has access to this parameter (AllowJoinAtEnd), but I can’t find it in Grasshopper. Does anyone know a workaround to making these joins default? Without this default joining, the beams do not display correctly on structural plans, and there’s no point driving this from Rhino since I would have to go back and correct every single beam anyway.

Thank you in advance for your help!


From memory I had tried to do similar things in Dynamo, and I got stuck at this point, (this was when the structural connections was still a plugin for revit) - I could automate a whole building of hundreds of members of different sizes and profiles - but I had to manually adjust, rotate, and join each one, including bolt sizes, plate sizes etc… I remember the most annoying thing was opening up all the dialogue boxes and adjusting each plate etc, there was no way to make a template for gusset plates and custom bolts and weld conditions… if you find a solution for this, or even a partial one, feel free to post it here,



Use the python component provided in the attached GH definition. The definition grabs the columns in model, creates beams with default type on the top end of the columns, and then uses the python component to join the ends of the beam: (13.0 KB)

1 Like

Thank you for your reply! This little Python component does exactly what I need it to do. Much appreciated!

1 Like

Hi Ehsan, could this also be used for a beam to beam connection?

it will toggle the end join connection on beams.

1 Like

Hi, grasshopper community! Unfortunately this doesn’t work for me. Not sure why but this python script returns nulls and doesnt allow join for element SE.This feature seems to be really helpfull if works.

try flattening the list, I don’t think that script is setup for complex inputs

I tried using this custom component recently - it seems to me that it may have broken with the addition of the element tracking features in v1.0?

Anyone able to get this to work with actively tracked elements?

Thanks @eirannejad, Would you also have this for Structural Columns?

Structural Framing Unjoin works well