Union of multiple areas for grid refinement

I’m working on the multigrid refinement cases.
I want to create two refinement areas, and they have coincidence parts. How shall I deal with this situation? I tried to create two Box3D which are adjacent to each other like below(Intersect at x-axis):
Box3D b1(0, x1 , 0, y1, 0, z1);
Box3D b2(x1+1, x2, 0, y2, 0, z2);
My idea is that the two Box3D refinement can be defined by telling the starting coordinate at next grid: x1+1.
But this didn’t work. Is my idea wrong?

Otherwise, is there any function that can create a complex area by combining various Box3D, like box1+box2-box3 or something like that?

Thank you very much.

with best wishes