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.