Because I'd normally just post a link to a tutorial and then straw would complain, I'm going to write this one myself.
Create your elevator out of brushes (doesn't really matter where you make it - ingame it will move to the first stop target automatically).
Select all the brushes and press ctrl+T. From the list select func_train.
In its properties give it the name 'lift' and make the first stop target 'stop1'.
Make a path_corner exactly
where you want your elevator to begin (the exact center of the lift will be aligned with the path_corner) and call it 'stop1'. In its properties make the next stop 'stop2'. In its flags you may want to check 'wait for retrigger' (this will make the elevator stop here and not move on until you've triggered it again).
Make a path_corner where you want your elevator to go next and call it 'stop2'. Now if you want your elevator to only travel between these two destinations, make the next stop target 'stop1' again. Otherwise, repeat this for stop3, stop4, etc.
Now you only need something to trigger the elevator (make it start moving). So make a small button brush (you can use a texture with + at the beginning of the name to make the texture toggle between on and off ingame when you use the button).
Select it, press ctrl+T and tie it to func_button. Write 'lift' under target. In the flags you may want to check 'don't move'.
You may also want to set the delay before reset to the time that the elevator will need from stop1 to stop2 to make the button unpressable in the meantime.
Now you have a working elevator, try it out to see if it works.
OK I will
post the tutorial
anyway, it has a .rmf file to show you (rmfs are better than words).
...and that's the bottom line because Mate de Vita said so.