Family Instances Placement Range

Hello,

I have a list of Family Types ready for placement, which create a basic diagram of generic annotation symbols in a linear range. In concept, a max of 50 symbols which are spaced 1/2" apart. These symbols are all in a specific order, already sorted out in another section of the dyn.

Now…rather than create 50 devices that go straight UP in order on my page (landscape 24" x 36"), I would prefer a grid of them so they fit, but following this specific order. Beginning from a lower left corner going 1 - 20UP (over 1/2") 21 - 40 DOWN (over 1/2") and 10UP. Just like the ranges shown below. Those are a means to perform this task, but it appears I would have to split my list of 50 device up into three separate lists. Is there a better way to achieve what I need? Any help would be appreciated, thank you.

Best,
toothbrush

You can do this by altering only the point list, no need to edit the family list.

Build the list of points from 0-20 and the list of points from 21-40 and combine them into a single list.

Use a Geometry.Translate node to shift them by a range from 0 to 36, stepping 4 units along the X axis. Lacing and list level will matter. Check out the Dynamo Primer if you need assistance with that. Result should be a grid of all the points on the sheet in list of columns.

Use a List.Flatten node to flatten the list completely (-1 as the amount input). This should now just be a list of points forming the grid.

Use a FamilyInstance by point node with shortest lacing to place all the families. The shortest lacing will mean additional points will be discarded.

Note that you may want to use a legend here as placing items on a sheet isn’t a good practice - you’ll have to update each family instance on each sheet if the items change for some reason but a legend would allow bulk updates and allows for placement of the same view on multiple sheets.

Thank you Jacob, very informative. I will give your input a try and update the thread when complete.

Best

Solution updated. Thank you! That was it.