element tagging with dynamo

Today I was asked to help create some roof plans for a glass canopy system and then tag each panel with its unique Mark value. Well, this sounds easy enough in Revit if you ask me, so why Dynamo? I am definitely not trying to over-complicate my life, however I do enjoy automatic somewhat mundane tasks. Normally, tagging is not one of them, unless those tags just don’t seem to be willing to be placed exactly where I want them. In that case my only option is to either move them around manually, or call in the big bad Dynamo! I chose the latter and created another node called “Create Annotation Tag”, that you can now enjoy as part of the Package Manager. Here’s the problem:


You can see tags generated through standard method of Annotate>Tag All are overlapping randomly not only with each other but also with panel edges. That’s not very good looking plan. Here’s an image of what you can do in seconds with my new node:


Now that is a bit better! Good news is that you can use it on any element, in any view, and with any tag…it basically is a Revit’s Tag All tool but with extra control over where the tag actually gets placed. Remember that 3D Views have to be locked to be able to place Annotation.

Here’s a YouTube video with a brief demonstration.


Support archi-lab on Patreon!


  1. andrew says:

    Any luck using this for placing room tags? I’m getting “NULL” when i try to use it for that. Thanks.

    Attachment:  2015-06-10_1031.png

  2. This might sound like magic but Room Tags are not considered Annotation Tags per Revit API and actually have their own overload for placement/creation. newRoomTag = doc.Create.NewRoomTag(roomId, locationUV, viewId). Create Annotation Tag node will not work with Room Tags. Please try attached image instead. Good luck!

    Attachment:  Capture.png

  3. Richard says:


    Thanks for making all these tools! I am trying to use the “create annotation tag” on revision clouds, but am having trouble defining the location. The clouds themselves exist in views, not model space so I cant find a way to pull a location from them. Any thoughts?

    • Richard,

      A RevisionCloud is not an AnnotationTag Element. It has its own separate create method. If its not already in Dynamo, you would have to add it via something like a ZeroTouch node or a Python custom node. Also, a “location” for a revision cloud is more like an Array of curves instead of a single Point. Please see attached for a Revit API method that you would have to implement for this one:

      Attachment:  Capture2.png

  4. Richard says:

    Sorry, I wasn’t clear. The clouds are already created, but I wanted to tag them with a revision triangle using the “create annotation tag” node. I will take a look at the revision cloud API methods, the IList variables seem like they could be used to find a location for the revision tag/triangle. Thanks for your help!

  5. Richard says:


    I found the method I need to use RevisionCloud.GetSketchCurves() but cannot implement it properly. I tried adjusting your “filled region boundary curves” node by replacing the i.GetBoundaries() call with i.RevisionCloud.GetSketchCurves() but get the following error:

    Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
    Traceback (most recent call last):
    File “”, line 47, in
    AttributeError: ‘RevisionCloud’ object has no attribute ‘RevisionCloud’

    I then tried a dumbed down version (see attached) and get the following error:

    Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
    Traceback (most recent call last):
    File “”, line 30, in
    TypeError: expected RevisionCloud, got list

    I am new to working with the Revit API… In your boundary curves node, what are the process list and ToDSType functions accomplishing? (I am sure I am sending a revision cloud into the python script btw, or at least that’s what dynamo is telling me I am doing)

    Any help would be appreciated. Thanks you!

  6. Richard says:

    I had to “unwrap” the dynamo data :) my revision cloud sketch lines script works now. sorry for hijacking your comments section!

  7. Goh SM says:

    Hi there, I’m a beginner in Dynamo. Was wondering is there any possibility that you might be able to share the dynamo coding here to me?

    • Sorry, just follow the instructions. If you get lost post here or on the Dynamo forum and I am sure people will help you get it right. I believe that you will learn more the hard way, than the easy way.

  8. Jan says:

    Hey Konrad,

    I found your Annotation Tag Package and would love to use it, however, Dynamo 1.2.1 doesn’t support it.
    Would you be a good sport and update your package :)
    Thanks mate!

  9. Jan says:

    ….. Never mind me, I was using the stand-alone Annotation Tag package instead of the Archi-lab package. All is well now.

  10. Bruce says:

    Hi Konrad,
    Any luck using this for placing Area tags? I’m getting “There is no loaded tag type that can be used when tagging referenceToTag with tagMode” when I try to use it for that. Thanks.

  11. David says:


    Thanks sharing. I found the Create Annotation Tag. However, I am receiving an error that it cannot be opened in my version of Dynamo ( Is there any way to update the package?

    Thanks in advance,

  12. Joshua Ziese says:

    Hello Konrad
    I have an issue I created this node to place tags on foundation as part of big Revit/Dynamo project. But for the life of me I can not get this to place correctly without running twice.

  13. Tiara Dobbs says:

    This may sound like a silly question but do you have a copy of the script somewhere in your posts?

    Would love to have a play

    • Hi, unfortunately not. I don’t post ready to go scripts, as I usually want people to follow the post, and re-create it. That way they can learn more. I know its not very efficient but that’s how I have been doing these posts for a while now. I might change that for the new ones.

  14. Ged says:

    Is it possible to get an image of this script? so I can see nodes etc.

  15. Donato says:

    Hello, I am looking for a method in Dynamo to indicate the value of z (elevation) in the building profile extracted with Dynamap.
    I had found your tool , but it does not run in the current version of Dynamo, would you have indications to help me?

    thank you very much

  16. Jeremy Van Ryswyk says:

    Is there a way to place keynote tags with dynamo?

  17. Ahmed says:

    I would appreciate if you upload this dyn file as I couldn’t find it in your website.
    Thank you.

    • This is an old post. I doubt this would work for anybody at this point. Also, I don’t usually post sample files. The goal of a step by step tutorial is to follow it, recreate what I did, and hopefully learn something new in the process. I do post sample files for my Patreon supporters.

  18. Jason says:

    Hi Konrad, sorry to ask this question even in 2022.
    For my company, juniors have to tag all in every views for window schedule for condo unit.
    It has a lot of views, and they have to go to each view to tag all not tagged.
    I found your annotation tool but i cannot be able to locate and tag all the curtain panels in elevation view without tagging all the panels on perpendicular walls, even the ones behind it.
    However, as i shown in screenshot, the tag all not tagged from Revit API works fine, i just need to know how to script it so that we can tag multiple views (50views) one shot. Thanks a lot.

    Attachment:  Capture-1.png

    • Jason,

      Sounds like a lot of fun! Yes, this can probably be done/automated. I would really need to get my hands on some sample files so I can test things out, but in general a tagging tool like that should be doable.

Leave a Comment