Run the bsp and "Use" the valvehandle to lower the counter-weight and raise the door. Release the valvewheel and the door lowers as the counterweight rises.
The valvehandle model (prop_dynamic_override) is the child of an invisible momentary_rot_button (mrb) which sequences the operation. The mrb starts and stops the counterweight (func_movelinear) and triggers the pulleys (an invisible func_rotating brush parented to a prop_dynamic_override pulley model) to rotate in the correct direction.
The func_movelinear outputs stop the pulley rotations when the counter-weight reaches the end of its travel in either direction.
A phys_pulleyconstraint keeps the movement of the counterweight and the door (func_physbox) in sync.
Move_rope and keyframe_rope entities simulate the cables. The keyframe_rope entities childed to the counterweight and the door have their Auto Resize flags checked, allowing them to "stretch" as their parents move.
Note that the func_physbox door is loosely constrained by the world brushes on either side.
Point Entities: phys_pulleyconstraint, prop_dynamic_override, move_rope, keyframe_rope Brush Entities: momentary_rot_button, func_physbox (door), func_movelinear (counterweight), func_rotating (parented to the pulley models)