drawing list management with dynamo

This is not your typical workflow for managing a drawing list, but due to some complicated/overlapping schedule and need to possibly issue drawings with the same number (yet part of a different package), we ended up adding a Package Prefix to all sheet numbers. Here’s what a sheet number looks like on one of the projects that I work on:

The 02 prefix indicates a package number (in this case package two). However, with this numbering scheme we had to come up with a separate way to sort them when scheduling. Why? Because sheet with a number 01 A05 003 would schedule before 02 A03 001 and that’s not exactly how I wanted that drawing list to be sorted. I used Dynamo to quickly get each sheet number, strip the leading package number from it and write it back to a sorting parameter. Easy enough, here are the steps:


1. First i collected all of the sheets in a project. Then i extracted all of the “Appears in Sheet List” parameters to check if that’s an actual sheet or just a presentation sheet. I really didn’t have to filter them out like this, but the less of them the faster the process. I used a custom node called “Dispatch” to get only sheets that were getting scheduled.

2. Once I had all of the sheets that I wanted to work on, I grabbed the Sheet Number from each and stripped the first two characters (package number). I used two custom nodes to do that. First was “Replace Substring” which I used to get rid of all white space characters. It’s not obvious by looking at the image but the String node going to “search” input is set to search for spaces or in programming ” “. The “replace” input is supplied with empty string node thus deleting all spaces from a string that its being applied to. Once spaces are gone I used a custom node called “Slice String” to remove first two characters.

3. Last step was to set a new parameter called “SheetNumberSort” to a new value. That’s easy with a custom node called “Set List Instance Parameters”. It will need a transaction node at the end since there are changes to Revit DB that need to be committed.

Thats it, and here’s a drawing list sorted by this new parameter:


Remember to add all appropriate parameters to your project in order to operate on them.

This definition is relatively low risk, since it writes data to a new parameter, but keep in mind that it makes changes to Revit DB. Always test on a detached version first.

Good luck!

Support archi-lab on Patreon!


  1. Christian says:

    Hey Konrad. Thanks for this post. Could you share the content of your Slice String-node or even share some insight on how to remove all non-numeric characters from a list?


    • Christian,

      You can use Python for that. Import module called “re”. Then you can do something like this:
      re.sub(“[^0-9]”, “”, whateverStringYouWantToProcess)

      Good luck!

  2. John says:

    I don’t mean to get off topic but in looking at the schedule you are making it appears you have a series of dots corresponding to sheet releases. How are you doing that? My experience with Revit is that it will not give you that info out of the box (though I know it stores it) Have you done this manually or through some automation?


    • I wrote a tool that will synchronize Sheet’s Revisions/Issues with Shared Parameters of my choosing so I can schedule them like that.

      • John Weiler says:

        Just curious, but is there any chance you are planning on releasing that tool?

        John W

        • John,

          This post is really old, but also really simple and if you follow the step by step looking at the images, Iam sure you can just re-create it. Please feel free to ask specific questions here, as some of the nodes might no longer exist, were re-named or simply replaced by other. Good luck!

          • John Weiler says:

            I guess I was referring to the tool that synchronizes sheet revisions with shared parameters. I am looking to make a table of contents that tracks all drawing releases rather then just the most recent.

            Thanks for any help.

  3. Joel says:

    Hi Konrad,,
    Good day, how can I add the sheet revision for modification in dynamo? thank you

  4. Aditya says:

    Hi Konrad,

    I am trying to find a way to make my workflow in Rhino more efficient and with the help of gh and visualarq things are getting relatively good. however I get stuck at creating a smarter titleblock system and taking that data to a drawing issue sheet.
    Have you ever tried this before? thanks :)

    • You understand that you are asking a Rhino question under a Dynamo/Revit post? I am not sure I am following you here. Can you please explain what you are trying to do? Please be specific. What are you trying to take, from where, where to? What kind of data?

Leave a Comment