I spent a lot of time (about 2 days) researching how in the world to activate and deactivate a vacuum within a map. I finally gave up and posted a request for help on this thread: http://www.doom3world.org/phpbb2/viewtopic.php?t=5315
but was able to actually solve it myself before it was up for too long (thanks Scribblehead for helping out).
I finally found the solution but before I get into that I'm going to give a quick description of why this method is required in order to activate and deactivate a vacuum.
There are two specifically vacuum related entities in Doom 3:
You can target the info_vacuumseperator to disable it and flood a map with a vacuum but unfortunately doing this provides you no way of reactivating the info_vacuumseperator leaving the level to be in a vacuum until it's reloaded. The reason for this is when you trigger an info_vacuumseperator the game actually removes the entity from the map completely leaving nothing there for the trigger to turn back on.
What that means is, info_vacuumsperator is intended to be used with things like windows or other func_fracture type uses where you shatter a window and the vacuum floods the building. Because of this, it is not the entity we'll be using to seperate a room in a vacuum from another room.
For those that wish to create airlocks or (as in my situation) "other ideas", this tutorial is your best method of creating a vacuum and then disabling the vacuum.
This is where a third, not specifically vacuum related, entity comes into play:
A func_portal entity assigns whatever brush it's targeted at as a boundary as solid as a world brush (i.e. not like a func_static or other entity that doesn't block vis or other world events) until it's triggered. This entity adds loads of power to level design in many aspects other than just for vacuums, but in this tutorial we're only going to cover them as used in a repeatedably triggered vacuum (on and off).
First of all I apologize for a lack of pictures, I do not have a dedicated host but this is so simple that hopefully pictures won't be necessary.
Ok, here we go.
1. First you'll need to make a small 64x64x64 hollowed out cube in the middle of your test box (large hollowed out box with 1 info_player_start and a light used for testing things), place it near the floor so you can activate the door that we'll be making later by walking up to it. (Simply create a 64x64x64 cube that's on the floor of the map and hit "hollow" on the toolbar)
2. Select 1 brush in that small hollowed out cube and make it a func_door. Leave all the settings to their default but set the angle so that it slides away from the cube and not into the cube.
3. create a func_portal in front of the door.
4. Starting with everything deselected, select func_portal first, then select the func_door and press ctrl+k to set the target from the func_portal to the func_door
5. Place 1 info_vacuum inside the cube.
6. Save it as vacuumtest and compile it.
7. Press F2, hit ~ key and type map vacuumtest and hit enter.
8. If all things are done correctly as I've stated, you should be in a normal map and not in a vacuum. If so, exit and recheck each step to find the problem (most likely a leak in the small hollowed out cube)
9. Walk up to the cube to the brush you made a func_door, when the door is triggered it will release the func_portal and flood the test box with the vacuum.
10. Step away from the door and let it close and the door will activate the func_portal and the vacuum will be contained again inside the small cube.
There you have a 10 step method to creating a repeatedly triggered vacuum in a map. You can use doors or scripts or platforms and even gui's or a host of other triggers to activate and deactivate it at will.
This is to add some new information to get this to work properly.
The test map I pasted later in this thread shows the exact method I laid out in this tutorial, but upon putting this "set up" into the map I'm currently working on I found that even if I copy and pasted that exact box into the map it would for unknown reasons leak the vaccum without opening the door.
What I discovered is that it works somewhat erratically, perhaps based on some hidden function in the engine that gets called due to some event in the level or who knows, maybe it's buggy, I really don't know. But what I did to solve it was actually quite simple, just place a vis portal in the door and make sure that the func_portal is touching the vis portal just like you would with the info_vacuumseperator. I've tested this in three different instances so far and it seems to have solved it in all three cases.