I would assume it’s 3D buttons, so Actors that are in the level.
Here’s what I would suggest:
1- Right click in the Content Browser then Blueprints > Blueprint Interface. This would create an empty Blueprint Interface. Let’s refer to it as a BPI.
2- Rename the BPI, for example BPI_Doors then open it. It will have a default function called NewFunction_0, rename it to OpenDoor.
3- Create a BP_Door actor and open it, this is the Actor Blueprint of the in-world door that has the door mesh.
4- Go to the Class Settings of the BP_Door actor found at the top bar, then from the Details Panel navigate to the Interface section, click Add, then select BPI_Doors.
Now the door actor can utilize the doors BPI.
5- from the My Blueprint panel, double click the Open Door function, this will add a new Event to the graph, this is where your door opening logic should be.
6- Create a BP_Button actor and open it. This is the actor responsible for opening the doors.
7- Create a new variable of Actor type and call it DoorReference, make sure Instance Editable and Expose On Spawn are set to True.
8- Create a new custom event and call it OpenDoor for example, this is the event that your player should call when interacting with BP_Button actors.
9- Get a reference to the DoorReference variable, check if is valid, then check if it implements the BPI_Doors interface. If it does implement it, call the OpenDoor interface event.
10- Now you can drag and drop as many doors and buttons as you need to the level. When selecting any BP_Button actor, you will be able to pick or select which door actor it opens from its Details Panel.
This is of course just a general overview to help you get started. I hope it helps!