If you do a lot of piping in Revit, and you want to build your own content to match a specific manufacturer’s data, you should understand what Revit wants. The easiest way to do this is to open up the family “Elbow – Generic” and take a look at it. You will see something like this:
The 3D view doesn’t tell you much, other than what it looks like, and where the connectors are located.
If you open “Floor Plans” in the “Project Browser”, you will find a view “Ref. Level”. Open it and you will see:
Which, when you zoom in, shows the “guts” of the family.
You can barely see the elbow in this view, because of the dimensions and text. Change the view scale to 12” = 1’-0” and you can see everything clearly.
I’m assuming that you recognize the dashed lines as Reference Planes. The lines with the arrowheads are pipe connectors. If you change the display from “Hidden Line” to “Wireframe”, you will see a model line that represents the centerline of the elbow. There are also model lines at each end of the fitting that represent the “Tick Marks” for single line representation. If you are creating specific manufacturer content, you can delete the tick mark model lines because you probably won’t be creating single line piping drawings.
The model line at the centerline of the elbow is the heart of this family. It’s the “path” on which everything is built. An elbow is simply a sweep that uses this model line as its path. Therefore, the model line must behave correctly when fitting dimensions change.
Look closely at the dimensions, there are no less than six that are labeled “Angle = 90.00”, and one on the elbow that is labeled “Center Radius = 0’-0 13/16”. The fact that these dimensions have names tells you that “Angle” and “Center Radius” are parameters for this family.
Pipe fitting manufacturers provide the following data for their fittings: material, pipe size, outside diameter, inside diameter, center-to-end dimension, and weight. Of these, the material for a fitting family is the only parameter that remains constant through the size range of the elbow family. Note that none of these parameters are shown in the dimensions seen in this view.
If you pan out to the left along the horizontal reference planes, you will find the dimensions “Tick Size” and “Center Radius”. Pan up along the vertical planes, you will find “Center to End”.
Open and inspect all of the other views for this elbow, you won’t find any other dimensions, other than the word “Radius”, which indicates the pipe connector has a radius value. So how does Revit know how big to make the elbow?
Select the elbow and notice that it is a “Sweep”. This is a solid form that Revit uses to build the virtual mass of a family. Select “Edit Sweep” and then “Select Profile” and “Edit Profile” and it will prompt you to open a different view that will allow you to edit the profile. The profile is perpendicular to the reference plane, so it will appear as a line and you cannot change it there.
As you select “Edit Profile”, you will see a dimension named “Fitting Outside Radius” associated with a circle. That’s how Revit knows how big to make the elbow. Where does Revit find these parameters?
Open the “Family Types” editor:
You will see this window:
This is a list of the parameters for the family, their values, and how they are derrived. Since this is a fitting, the “Nominal Radius” parameter is adopted from the pipe that you are connecting to, and defaults to ½” if you insert it unconnected. The angle is also picked up through pipe routing in Revit. Everything else is calculated.
Note this formula:
This formula indicates that it is looking for a value to assign to “Fitting Outside Diameter” in a “lookup table”. Where is this lookup table?
Select this, and it opens a new window:
In order to view and/or edit this table, you must export it (it exports as a csv file) and open it with Excel or your favorite spreadsheet program that will edit csv files. This is how it looks:
This is a lookup table. This one is very simple, with only two columns of data. The first column is ignored by Revit. It describes the associated row; in this case, the pipe size. The next column is used in the lookup formula to know which row to select.
In the equation “= size_lookup(Lookup Table Name, “FOD”, Nominal Diameter + 1/8”, Nominal Diameter)
“size_lookup” tells Revit to get data from a lookup table
“Lookup Table Name” is a parameter with (in this case) a value of “Pipe Fitting – Generic”, which is the file name of the lookup table.
“FOD” is the column of data under the label “FOD##length##inches”. This label indicates the variable name, type of data, and units of measurement.
“Nominal Diameter + 1/8”” is a value that is returned if Revit cannot find a value in the lookup table.
The final “Nominal Diameter” tells Revit to bring this parameter from the family and find the matching value in the lookup table to locate which row has the data. There can be several values at the end of this equation. For example, if you have a reducing fitting with two diameeters, the equation might look like this:
“= size_lookup(Lookup Table Name, “FOD”, Nominal Diameter + 1/8”, Nominal Diameter1, Nominal Diameter2) this tells Revit to find the row where both diameters match.
Returning to the Ref. Level view, select the horizontal reference plane that passes through the connector arrowhead and note the properties:
Note that this is the “Center (Front/Back)” reference plane and that it defines the origin of the family.
Now select the vertical reference plane that passes through the connector arrowhead:
Note that this is the “Center (Left/Right) reference plane and it also defines the origin of the family. This is important, as Revit will place the family based on its center. For pipe fittings, the center of the fitting is where the two pipes intersect. Therefore, all reference planes that define the origin must pass through the center of the fitting. Typically, these are the Front/Back, Left/Right, and the Reference Level itself.
If your fitting isn’t placing correctly during pipe routing, check the reference planes that define the origin.
I always start with native Revit fittings when building manufacturer’s content. There are a variety of ends available (plain, socket, threaded, flanged, etc.) that have most of the parameters built into them. This makes it less likely to create an error as the fitting changes pipe size or angle.
The one thing I change in the OOB fitting is the center to end value. This is always given by the manufacturer, and can be used to determine the center radius. Revit’s OOB generic elbow does this in opposition, defining the center to end based on the center radius (and the center radius is based on fitting outside diameter).
Do this by putting the center to end dimension in the lookup table as “CTE”. Then add a parameter to the family “CtE” (or whatever you want to call it). Then for CtE insert the equation:
=size_lookup(Lookup Table Name, “CTE”, Nominal Diameter * 2, Nominal Diameter, Angle) This assumes that you are getting the CtE data from the manufacturer for each angled fitting they provide. Then change the Center Radius equation from “=Fitting Outside Radius + ¼”” to “=CtE/tan(Angle/2). This will give you the correct centerline radius because it’s determined by the CtE dimension.