Placing columns on multiple levels



















I’m trying to automate the placement of several columns via Dynamo. I have created an excel spreadsheet using Grasshopper and Lunchbox. Each point has a separate Z coordinate. However, when Dynamo places the columns they are all being ‘flattened’ onto Level 1. I’ve modified the column family so that it is disassociated from the work plane but they are still be placed on level 1. If I use a generic model family which is dissociated from the work plane it works fine. So can I control the column base/height when positioning?

I know that Dynamo has a ‘FamilyInstance.ByPointAndLevel’ node but this would require filtering out the data into various levels which seems cumbersome. Is there a better way?








You can quickly split your points by level with the “GroupByKey” node. Once that is done, you could create new levels at each unique Z coordinate. Finally you have to make sure your matching points are split into sub lists matching the number of levels - that is why you will need to use the “List.Transpose” node. Don’t forget to put your lacing to cross product for the creation node. Good luck :slight_smile:




columns at levels



Hi Dimitar

I actually have a bunch of custom columns that I need to place. So using a generic column and splitting it at different levels isn’t going to help me. So is there a way I can control the column base/height when positioning?

Funky column


I was using a standard column family in my example. For base level it assumes the levels that were automatically generated based on Z coordinates. For top level the family assumes the “Unconnected” parameter and makes all columns 2500mm tall, which seems to be Revit’s default. I would suggest, after you place your columns, you do a new definition that runs an element collector for columns, reads their base level, sorts them by it and then applies a top level accordingly.