Reporting Parameters
Reporting parameters in Revit are great, particularly if you are a structural engineer. They give you access in the family to things that you have no way of defining within the family. The best way to explain is with an example.
When you view structural framing in Revit, the ends of beams will automatically cut back according to how wide their supporting beam is. This all happens because of the ‘Member Left’ and ‘Member Right’ planes which exist in the standard structural framing family template.
This is the most simple structural framing family that you can make.
When we put this into a project spanning between two supporting beams it works well. The ends cut back according to how wide the supporting beam is. This is great. You can also see that it gives us access to how long the actual ‘cut length’ of the beam will be.
We can add some parameters into our structural framing to make it a bit more interesting. I have made it deeper for the middle third and tapering for each of the ends. I have fixed the ends to the ‘Member Left’ and ‘Member Right’ planes to ensure I keep my nice cut back.
When I put this into the project it works well. My beam is tapered for the first and last thirds and deep in the middle. Perfect.
Now what I would like to do, is take advantage of this cutback distance. I want to use it in some calculations. And I can do that by using a reporting parameter to dimension between my ‘Member Left’ plane and the ‘Left’ plane, and the same on the other end. To show you what I mean, here is a snapshot of the family. Take my word for it that these are reporting parameters (it doesn’t work if they aren’t either). I haven’t actually used these reporting parameters for anything yet, but I plan to use them to do something clever like give my beam a prescribed amount of bearing on its support.
When we load this back into our project, something rather bizarre happens.
The beam will correctly insert with its tapered ends at third points when you first insert it. But if you subsequently change the location of the supporting beams and increase the span, the length of the tapered bits stays the same rather than maintaining its one third relationship. Even more confusingly, if I look at the ‘LengthOverThree’ parameter in the properties dialog box it is reporting the correct value, not the one shown on screen. Now I’m confused.
If you don’t believe me. Try it for yourself.
The solution
I did eventually discover the solution to this problem. Though it took me rather longer than writing this post! If you add a reporting parameter to the length of the beam and use this in ALL of your calculations instead of the native ‘Length’ parameter the problem seems to go away.
I don’t know why this happens. I have a theory that it might have something to do with the length as a parameter within the family. After all, ‘Length’ isn’t really a normal parameter, it must be a reporting parameter. How can the family know how long the beam is going to be until it’s placed?!
Please give me a shout if you come across this issue in any other circumstances or find another way around it!