Placing multiple elements in a view


Hi all!

I’m wondering if it is possible to use Dynamo to layout a list of annotation elements within a view (create a legend of symbols used in a project). Basically, what I currently have is a short python script that runs through all of the annotations used in a revit document, and returns a list of each annotation used while removing duplicates. The next step that I haven’t been able to figure out is how to take this list of elements and copy them to a view. I’ve looked at placing a FamilyInstance.ByPoint and feeding in a list of points with the same count as the annotation elements, but this node doesn’t seem to like lists of families. Any ideas on general approaches to this problem? Thanks!




Hi Jared,

I am assuming that you need use “List.Count” with elements and connect with “List.ofRepeatedItem” with your points. See below graph.

Note: Below graph is just an example, it is not accurate. It is just to give you an idea how it works!



Thanks Kulkul. I’ve been able to gather the list of elements and produce a list of points with the same count. My problem is then placing these elements at the points in a view. I tried the Element.Type component that you used in your example, but it returned an empty list. I then went into the component and pulled out the python code that returns the element types, and got that working. However, now when I bring everything into the FamilyInstance.ByPointInView component it returns empty lists (see below). Any thoughts on why this might be??

Thanks for the help!


here an example how to use List.Combine to handle the list of family match the list of point.


Thanks Johnes. Would combining lists result in the families being placed at those points? I gave it a shot and it returned a list of nulls. Not sure why though. Any ideas?


Just to follow up on some progress. I realized that while the FamilyInstance.ByPointInView was returning empty lists, this was actually doing what I wanted in the Revit view. I just didn’t notice since the xyz values were so far from the other objects in the viewport. Why it does this is not completely clear, but nevertheless I got it to do what I needed. Thanks!