There are times when we need to show a little more information than Revit is able to provide out of the box. Take for example internal pipe inverts and obverts. When tagging pipework, you can tag the quadrants of the pipe and the centre node.
So what do you do when you need to tag the the internal features of the pipe? The best method is to create parameters that can be filled out automatically using Dynamo. The central start and end node is already recorded in each piece of pipe, we just need to adjust those figures by the internal diameter and populate some parameters with that information. We would realistically need to add four new parameters to our piping:
- Upstream Invert
- Downstream Invert
- Upstream Obvert
- Downstream Obvert
These parameters will need to be Shared Parameters so that you can tag them later. In my example I have set the parameters up as number parameters, they are associated with the pipe category and they are instance parameters.
Once you have the parameters setup, start up Dynamo. For reference I’m using 1.3.3, but you could also use Dynamo 2.x.
The first step is collecting the information required to generate the correct inverts an obverts. For this we need the start and end offsets as well as the internal diameter.
The next step is to calculate the inverts and obverts. This is as simple as taking half of the internal diameter and then adding to the starting and end offsets for the obverts and then subtract the values from the start and end offsets for the inverts.
Finally we need to push these calculated values back to the piping. There is a small check required to ensure we input the correct data to the correct parameter, the reason being that the start and end offsets don’t relate to the upstream or downstream end of the pipe, but rather the start and end of the direction the pipe was drawn from.
The check is a simple if node, which checks which value is greater and places the larger of the values in the upObvert and the downObvert parameters.
The final step in the process is to create a pipe tag with labels for each of the relevant parameters and viola!
I have made all the files used in this demonstration available for download