Rotation of Structural Column


I am looking for a way to obtain and change the rotation of a structural column in Revit. The out of the box column family does not have a rotation parameter, and the rotation seems hard to control in general. We want to rotate columns that have already been modeled to be tangent to a radial grid.

Is there a simpler way than to add a rotation parameter to the family, have dynamo calculate the correct rotation given the position along the curved grid, and input the angle to the new parameter?

Thank you!

Try using FamilyInstance.SetRotation

I get the following message.

I have noticed that a rotation angle becomes available if the column style is set to slanted rather than vertical. My approach now would be to change all the columns to slanted with one script, run another script that calculates the correct rotation and gives the value to the column, then a third run that returns the columns to being vertical.

Highly recommend against converting to slanted then back again, this will wreak all sorts of havoc in your model not to mention if there is a lot of framing attached to your columns it will take an unacceptably long time.

There is no acceptable column by curve node. That node produces a slanted column even if its vertical forcing a parameter change prior to running the SetRotation.

The setrotation tool also has a bug where significant quantities of instantiated member rotation assignments will actually produce rogue columns. That means dynamo shows the preview in one location but places in the database in a different location!!! You can get around that be running in stages. Step 1 instantiates, step 2 applies rotation.

Back to the column placements…I recommend a custom node that uses the family instance by point and maps appropriate levels and offsets based on a curve input. This allows you to generate columns by curve inputs without requiring the lame use of slanted properties.


I was trying to do the same, rotate column instance by a specified amount or to a specific angle (i.e. rotate by 10 irrespective of its current angle or make it 10 wrt to the horizontal axis).

But this method selects all the instances of the family type, of the selected elements. How can I just rotate the selected elements.

Any help is appreciated

@adi, would the below be a suitable workflow?


Thanks for the response.
But I see your column family has cross-section rotation parameter built into it.
I only get this parameter for our beam families.
So I had to use the familyinstance.set rotation node.
I ended up filtering the family instances by the elementID based on the selection.



You need to temporarily change the Column Style parameter to Slanted, use the @Tom_James solution and change again the parameter to Vertical.

@Jeff_Shaver, sorry to revive this old thread, but i’m having issues creating vertical columns - it looks like the workflow you show here involves several custom nodes. Would you be willing to share the dyn graph?

1 Like

What issues are you having? I’ve had some time with structural columns.

Guess who this is?

@inscrip Issue is that I’m trying to place vertical columns based on a x-and-y coordinate, as well as a level for base constraint and top constraint. Seems dynamo only wants to make me sloped columns.

Also- lemme guess. NICK CARTER!