In order to get that the shape changed from either vertices/delete/reshape you can use the arg on Module to get the difference in the shape. In order to do this in the OnRowChange Event you need to get both the OriginalGeometry and the NewGeometry first. You can compare them using .equals to get that change. In order to detect a move/rotate/scale, you will need to use the above methods to find out if IsSketchModified, IsMove, IsRotate, or IsScale is true. If these conditions are false, then you can assume that the change came from the OOB Attribute Editor.