private void UpdateFromGUI(BaseField field, object oldFieldValueObj)
{
int oldIndex = (int)oldFieldValueObj;
subtypes[oldIndex].DeactivateOnSwitch();
currentSubtypeName = CurrentSubtype.Name;
CurrentSubtype.ActivateOnSwitch();
UpdateGeometry();
LogInfo($"Switched subtype to {CurrentSubtype.Name}");
foreach (var counterpart in this.FindSymmetryCounterparts())
counterpart.UpdateFromSymmetry(currentSubtypeIndex);
UpdatePartActionWindow();
FireEvents();
}