Placing multiple elements in a view


#1

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!

 

 


#2

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!

 


#3

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!


#4

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


#5

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?


#6

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!