Assigning wall parameters to General annotation object

Hey guys!

I’m trying to make Dynamo use information from walls and write them in a General annotation (or is it called Annotation symbol? It’s the rightmost element in the annotation ribbon). I want him to find all the created Annotation symbols types, check their names, and then from walls, that have a type mark exactly like those names, extract certain information (for example the wall thickness), and put it in the correct annotation symbol.

The final effect I want to achieve looks like this. Annotation symbols types, that have information from specific wall types.

Here is as far as I got by myself. I tried using the tips from this topic: Select elements by parameter To make Dynamo select walls that have type marks like the general annotation families in the Revit file. He did pick 5 walls, but with different type marks…


The String Contains and Filter by Bool. Mask are not helping you.

What you want to use is List.FirstIndexOf (Inputs: List (list of all walls); Item (String From Annotation) and List.GetItemAtIndex.(Inputs: List: (list of all walls or parameter you want); Item (int from List.FirstIndexOf)

I use this trick a lot.

Let me know if you need more. Here is an example on another project:
Reorder based on another list

Timon, Wow, your suggestion did the job! You, are awsome!

I’ll propably have more questions tomorrow when I’ll be fine tuning the script. For now I’m having a different issue. A fragment of the script seems to be not responding to changes in the Revit file. When I add a new symbol annotation Dynamo doesn’t see it, running the script doesn’t work. Only when I restart the script and run it then he sees the changes in types. Strangely any other change seems to be noted by Dynamo.


Yes, that is a common issue. The input from Revit is not always refreshed. You can unplug in input to the node. Run the script. Replug it in and it will find the new inputs in Revit.