You can always set multiple variables at the beginning for each door’s location or rotation. Then, you’ll want to use Timelines to move them.
Right click to create a Timeline. Double click the node to go into its editor. For this scenario, I used 1 second Length for the Timeline (set at the top) and used float track (f+ button at the top) to make a 0 to 1 value over the course of 1 second (right click to create a key, where you can set its time and vaue).
The reason for that is I am using a Lerp, or Linear Interpolate (that means go from A to B according to Alpha, which is 0=A all the way to 1=B), to handle the change in rotation or location (I made pics for both depending on if these are rotating or sliding doors).
So we use the location or rotation variable you set at the beginning (this solves your problem of it snapping to the origin; we are simply starting with where it’s already at) from the referenced door to supply the A values of the Lerp. For the B value, I again used its location but used a Break to split it up, so I could add 90 to the Yaw rotator. The Alpha uses the float track from the Timeline, so it goes from A to B in 1 second, swinging 90 degrees smoothly.
Finally, use a Set Actor Rotation for your door reference and plug in the resulting output of the Lerp.
You can also see that I set up an End Overlap event that plugs into the Reverse track on the Timeline. That’s just an example of course, and will make the door reverse its rotation back to the original. Timelines are very nifty like that. You have tons of control over your values. Play around with them and you’ll surely find other uses.
Here’s the BP setup, both for rotation and location:
EDIT: I used the wrong nodes here. Instead of using Get Actor Rotation/Location, you’ll want to use the variables you established earlier containing their initial rotation or location.
Let me know if you need any more info!