One option you could make the twist section with a series of modifiers on a simple cross section model
Array modifier = set the height
Subsurf modifier (optional) for a smoother resolution
Simple Deform modifier to make the twist
Lattice modifier to control the taper (the Simple Deform modifier could do this for a linear taper)
Start from Cylinder and use sharp proportional falloff scale to get the shape, then again proportional edit turn loop on one end to get screw shape.
Select vertical loops, duplicate into separate object and convert to curves. Adjust curve parameters, convert back to the mesh and grid fill cap upper ends. Model the rest.
Richard’s method gives you the maximum flexibility and using modifiers means that your original geometry is always there to be edited - no undos necessary.
Here is a non-modifier way to do something similar, just as an alternative.
Looking at your original reference you would use something other than smooth - maybe sphere - for the falloff in the bridge dialog and for the slide up part. If you go to the top as in the reference the space part of the operation becomes even more important!
Sorry for the late response, I had a couple of shifts at work.
Richard, you are THE MAN. Thanks for the very concise information, you’ve helped me a great deal. The twist and lattice modifiers are really cool, I’ve just got a couple of followup questions if you don’t mind.
1.) When I recreated the start and end caps for the array, the z alignment was off and I had to manually adjust their z position by a seemingly random value. The position of my “center” piece was centered, and the position of the caps had to be moved but originally they were located at the point where they meet the center peice.
2.) I haven’t messed around with lattices before, When I tried to recreate yours, I couldn’t figure out how to add more edges. Usually I would use knife or loop cut, but these don’t work without a face. Just wondering if you could shed some light on this?
Update : Thanks for all the different responses guys. I’ve already succeed with Richard’s method, but I’ll be sure to try out yours as well so I can get more familiar with different ways of achieving this result.
In the properties editor, with your lattice object selected, you will have a lattice properties tab (next to the modifier spanner), under which you can change the density of the lattice in U,V and W directions and you can also change the type of interpolation in each direction. When it comes to lattices though, less is more is a good principle.