Revit Reinforcement – Keeping a check on Bar Marks

Since 2015 Revit has provided the Rebar Number which automatically assigns bar marks to all reinforcing within the project making use of the partitions to generate a suitable bar mark.


This is of course a very useful feature and does provide an efficient method of bar marking. However, if you have then issued the model and need to make further changes to the model then you probably do not want the Rebar Numbers (Bar Marks) to change and of course, being automated this can happen.

A safe way of working is to use Dynamo to automatically synchronise the Rebar Number to the Schedule Mark (this was the method of bar marking prior to Revit 2015). This will obviously only be run prior to the issue of the drawings/model to keep a record of the bar marks.

If the Rebar Number does not equal the Schedule mark then we can take ‘manual’ control to rectify the problems.

Here is my Dynamo Script below.


It is a very simple routine that selects all the Structural Rebar in the project, gets the Rebar Number and then sets the parameter Schedule Mark with this value.

The next stage is to check that the marks are in synchronisation. To check for this we can use another Dynamo script. For this example I will explain a few stages as we need to use some logical checks and filtering of lists.

The first stage is to create a new shared parameter for the check. This needs to be a Yes/No parameter as shown below.


Next we will add this parameter to the project so Revit understands which category this applies. Notice that the parameter will need to be an Instance and applied to the Structural Rebar Category (Feel free to add others such as fabric etc.)


You can now build the Dynamo Definition to check the Rebar number and schedule mark are in synchronisation. Start by selecting all the Structural Rebar elements as shown below.


The next step gets the Schedule Mark and the Rebar Number and then checks to see if these values are equal. The output is a Boolean (true or false). Notice that one of these values is returning a false value.


The true or false lists are then evaluated by the List>filterByBoolMask. The list input is from all the Structural Rebar Elements and the mask is the Boolean output from the == node. The list is then split into two, one list for false and another for true. Finally the parameter “BarMarkSync” is then set to true or false with the use of the Boolean node.


To test this you can manually set some of the Schedule Marks to different values and then set up a Revit schedule to show the out of sync marks with conditional formatting as shown below. Another method could be to use filters to show the out of sync bar marks on a model view.


I hope some of you will try this tutorial if you are currently using Revit to produce Reinforcement  models and schedules.


9 thoughts on “Revit Reinforcement – Keeping a check on Bar Marks

  1. Good work! Can the routine be extended to get the Rebar Numbers back in sync again, i.e overwrite the rebar numbers with the stored list of schedule marks?

    1. Hi Mark,

      I don’t think this will be possible as the Rebar number is automated and controlled by partitions. If the bar mark loose sync then we would have to revert to the schedule Mark and then manually control.

      I would like to see a freeze tool to lock down issued reinforcement?

      1. A freeze tool has been on our wishlist since we started using Revit for reinforcement, reported to Autodesk but they haven’t implemented it. What we do in the meantime is add issued reinforcement to a group to prevent it being inadvertently changed.

  2. Hi Kieran, The partitions should not affect the this process as the Schedule mark can have the same value as another bar. For example, you could have Bar Mark 05/Schedule Mark 05 in one partition and Bar Mark 05/Schedule Mark 05 in a different partition.

    I think a good workflow for Autodesk would have been to allow the Copy/Monitor the structural elements into a separate model so that the RC detailing could be achieved without having to work in the same model. In this way you would be notified of changes to the structure and then decide how the reinforcement should behave.

  3. Hi Lawrenceh, is there a way to make the script work so that the Schedule Mark automatically sync with the Rebar Numer instead of manually changing it in Revit?

  4. Hello, I love this blog post. thanks for putting it up. I am not to good with dynamo so I have a problem knowing what codes to insert into the code blocks could you tell me?

    1. Hi Offiong,
      Python is very fussy with indents. If you copy and paste the Python into the Python node and make sure the indents are identical then this will work for you.

Leave a Reply to Offiong Cancel reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s