With the grid surface you can assign only the Y (elevation) value of a data point. The indexX and indexZ parameters are simply indices in a 2D array.
The following code:
gridSurface.Data.SetValue(indexX, indexZ, valueY);
is the same as:
gridSurface.Data[indexX, indexZ] = valueY;
If you need to set three values (X, Y, Z) per data point, you should use the NMeshSurfaceSeries:
meshSurface.Data.SetValue(indexX, indexZ, valueY, valueX, valueZ);
The NTriangulatedSurfaceSeries also displays three values per data point, but there the points are not ordered in a grid-like structure.
Best Regards,
Nevron Support Team