As you already know, there are three kinds of families in Revit: system families, model-in-place families and external (loadable) families (also know as .RFA files).
Some Revit categories are exclusively system categories (families of those categories can be created only in project environment), for example: Walls, Stairs, Floors and similar categories. There are, however, hybrids (can both have system and external families in the same category), for example Structural Foundation categories but they are topic for some other time.
Having families that can be only created in project environment can be limiting in some cases, I’ll give you an example: having custom stairs as external family that is classified as Stairs category is “impossible”.
How to make “impossible” possible?
Let’s skip right to the point: I want to have external family as Stairs category.
Have in mind that Revit versions older than Revit 2018 don’t have Stairs category available under Model-in-place dialog. If you are using older Revit version, for this example, choose Walls category instead of Stairs.
To do it, first, in your project environment, use Component > Model-in-place tool to create what you need. Select the appropriate category and give it whatever name Revit offers.
Model your family using available Revit tools. Trick that can be applied here is that you model only what’s necessary (regarding the context), everything else can be modeled and parameterized later in family environment. After all, your main focus is to get the right Revit category in RFA file.
In my example, I just modeled a box 200x100x25cm.
Now, the most important part:
1. While still in the Model-in-place family edit environment, select all the geometry and create a group.
2. Do not click on “Finish model” button (green check-mark on the ribbon) but look at the Groups in Revit Project Browser. Do the right mouse button click and choose “Save Group”. This will save your geometry as external loadable RFA family in Stairs category.
3. Now you can open the RFA file you saved and edit in family editor, but in Stairs category and load it into your project like any other family.
The same can be done with other system categories (Walls, Floors, Roofs, for example). Good thing is that families can be joined as they were made in project.
Have in mind that Revit versions older than Revit 2017 don’t have Stairs category available under Model-in-place dialog.
You can download this example family from the Warehouse.
I also included example family in Walls category in case you use Revit 2015.