//oFunction doesn't have a handle defined
MultiLangString oMultiLangString = new MultiLangString();
PointMate oPointMate = new PointMate();
PointMate[] oPMBefore = oFunction3D.GetSourceMates(Mate.Enums.PlacementOptions.ConsiderMountingClearance);
//oPMBefore.Length: 9
oPointMate.Create("G1", "*", oMultiLangString, new Matrix3D());
oPointMate.LogicalType = Mate.Enums.LogicalType.UserGripPoint;
oFunction3D.AddMatePersistent(oPointMate);
PointMate[] oPMAfter = oFunction3D.GetSourceMates(Mate.Enums.PlacementOptions.ConsiderMountingClearance);
//oPMAfter.Length: 10