Try this in a game logic.
0 = [getpos this,300] spawn {
sleep 1;
{
private "_b";
_b = _x;
for "_i" from 0 to 7 do {
_b animate ["dvere" + str _i,1]
};
} foreach ((_this select 0) nearobjects (_this select 1))
The 300 number is the distance it closes doors in a radius.
If that fails I believe there is a module in a3 that can do the same thing.