First make sure your Buildings have a unique "id"
(which does not contain a |
character, you will see why below). You can add it for example via field calculator by adding a new field with the expression $id
if they do not have one already.
Then run the "Polygon Self-Intersection" from SAGA Processing tools and choose this "id"
as Identifier:
Which will create a new layer, where the overlapping Parts become their own polygons.
This new layer will contain a new "id"
field, containing the "id"
s of their original buildings split by a |
sign.
Now open the field calculator of this new layer and calculate a new field with this expression:
if(regexp_match("ID",'\\|') > 0, regexp_substr("ID",'[^|]*'), "ID")
to get the second "ID"
as "mergeID"
or
if(regexp_match("ID",'\\|') > 0, regexp_substr("ID",'(?<=\\|).*'), "ID")
to get the first "ID"
as "mergeID"
:
This expression looks up in your "ID"
field, whether it contains a |
character. If so, it chooses the ID
before
or after
the |
character. If it does not contain this character, it will just copy
over the ID
to the "mergeID"
.
Then run the "Dissolve" from processing toolbox and choose this "mergeID"
as dissolve field:
Your final result: