I have no idea what to title this...

I am planning on making a city building game that uses a grid, and you click and place buildings on a plane which is on the same y as the grid (so it looks like it is lining up with that.) The problem is to do with the plane though. Some “buildings” like the subway station, and road, should go into the ground, rather than sit on top. For the subway station, the mesh goes through the plane.

So the question is, how do I make the plane underneath / through the subway station go “invisible” or delete?

If I made it a separate plane for each space, and then a raycast deletes that plane when the subway station is above it, it was use a lot of processing power to make every plane (4 vertices per plane, 500*500 city zone.) So how do I go about this?? any ideas are super useful, urgently need some sorta solution…
Thanks

The biggest problem with making a plane per grid space is that you will have 500*500 gameObjects so I would look up how to create meshes. You will probably want to separate the grid into chunks so you can temporarily hide things that you aren’t using and make refreshing the mesh faster. I would look at a procedural generation tutorial. Here is the first part of a voxel tutorial that will show you how to create meshes and split space into chunks.

You can also reduce the number of faces if they are solid color using some of the techniques described at this tutorial