Here are some of the sketches that I have produced with Revit to model a train station canopy.
The basic idea is to make a swept blend form that has two profiles parallel to the track and a path perpendicular to the track. The form can then be chopped into various sectional ribs and purlins that create the primary and secondary strucure of the canopy.
One conceptual trick is to use the offset command on the profiles P1 and P2 to make several profiles and eventually several concentric shells. One shell will eventually be the purlins, one shell will be the beams, and perhaps a final shell will become columns. If you edit the basic founding curve then you have to recreate all of the subsidiary profiles. That is not difficult, but it seems like there should be an easier way.
Once the form has been created and tweaked and shaped, you need to cut it up to make the structural mmbers. I built a new family of void boxes that can subtract away the bays leaving just the structural members. The family is parameterized to include bay spacing, a bay depth, and a structural thickness. It also has a parameter that works with the array object to repeat the bays.
One instance of this bay family cuts the purlin shell into individual purlins. Another instance cuts the beam shell into beams. A third instance cuts the column form into columns for each bay.
I am not really satisfied with the columns. I cannot figure out a way to shape the columns so that they are responsive to the roof form above them. Of course, one could just use form making tools on each column individually.
I have posted a bunch of screen dumps that might serve as inspiration.