Arraying Family based on Excel.Read


I am working on a document to create and array a programming chip family based on an excel read. So far, I’ve been able to use some data correctly; I can space the families out based on their width. But in order to create their length spacing (you can see in the image there are two rows) I’ve only managed to do so by copying most of the Dynamo script over again.

I’m wondering if there is a way to create the number of rows and place the families according to a list of items pulled from excel. In this case those types are: one user, two user, three user, etc…

Any partial or related help is greatly appreciated!Script Revit

Just realized text isn’t showing up in the script image:

I’m not 100% up on the play with Excel, but have a look at my thread asking a similar question (Albeit, I was asking to parse out to excel). Peter Kompolschek has a method that does it!

Try reverse engineering that maybe?

Try the “List.GroupListOfListsByKey” from the Clockwork package:


1 Like

Sol Amour, Thanks for the reply. I’ll have to dig deeper into Peter’s solution to see if I can get it to work for me. The biggest challenge I think is going to be arraying the data back into a single list based on all of its parameters.

Dimitar, “List.GroupListOfListsByKey” is very helpful for sorting based on different sub-categories. I now have to figure out how to place the families in the Y direction based on the parent list, and in the X direction based on sub list. Thank you very much!

1 Like

Edward, Did you ever figure out a way of placing families in an XY array? I’m not needing the excel feature. I’m trying to place a family to represent occupancy visually at the center of a room. Best I could find was a custom legacy node called XYZ Grid. I would rather use a node users don’t have to manually install.

This maybe of interest. I was looking for a solution to arraying families, either creating a Revit array and controlling the spacing, but found scant information, so I came up with a graph to create a simple array. It requires a surface to create a starting point, but this point information could be extracted from a Room or other Location points. (Files are 2019 versions, units mm)ArrayFamily.dyn (128.3 KB)
TestArray.rvt (1.7 MB)
The main family used was a desk, and the related family a chair. see images.

1 Like