Mhh... a func_train as elevator, covered with an invisible func_breakable that moves with it and targets a serie of events when enough damage is applied (700). These events would be changing the target of the func_train, e.g. letting it fall down, and disabling the elevators call buttons...