Try something like this - amend the array of button names to match your actual sheet:

Sub Add_Row_Field()'Author: Jon Acampora, Excel Campus
'Swaps out Row Fields, via a button that has the macro assigned to it
'Remove all Row fields and add the Row field to the pivot table.
'The field is determined by the button text that calls the macro (i.e. name the button with the EXACT name of the Field that it's assigned to)
Dim pt As PivotTable
Dim pf As PivotField
Dim sField As String
Dim buttonNames
buttonNames = Array("Button 1", "Button 2", "Button 3") ' <-- Change these names to match your actual buttons
Dim thisButton As String
thisButton = Application.Caller
For Each pt In ActiveSheet.PivotTables
    'Set variables
    sField = ActiveSheet.Shapes(thisButton).TextFrame.Characters.Text
    'Remove existing fields
    For Each pf In pt.RowFields
        If pf.Name <> "Structure Level 02" Then
           ' This is the line that makes the Level 2 Row Field stay in place
        End If
    Next pf
    'Add field that button was clicked for
    pt.PivotFields(sField).Orientation = xlRowField
    pt.PivotFields(sField).Position = 1
Next pt
' change button brightness
Dim nm
For Each nm In buttonNames
     With ActiveSheet.Shapes(Application.Caller)
          If nm = thisButton Then
              .Fill.ForeColor.Brightness = 0.5
          Else
              .Fill.ForeColor.Brightness = 0
          End If
     End With
Next nm
End Sub