If you are looking for a way to read the Vertices of Civil 3D Surface boundary object, here is the .NET API which facilitates the same.
SurfaceBoundary.Vertices Property - > Gets a collection of vertices that make up the boundary.
And here is a VB.NET code snippet which demonstrates the usage of the same -
Dim tSurface As Autodesk.Civil.DatabaseServices.TinSurface
tSurface = trans.GetObject(idEnt, OpenMode.ForRead)
If tSurface.BoundariesDefinition.Count > 0 Then
For i As Integer = 0 to tSurface.BoundariesDefinition.Count -1
Dim boundaryName As String = tSurface.BoundariesDefinition.Item(i).Name.ToString()
Dim surfaceBoundary As SurfaceBoundary = tSurface.BoundariesDefinition.Item(i).Item(0)
Dim boundaryVerticesPointColl As Point3dCollection = surfaceBoundary.Vertices
ed.WriteMessage(vbCrLf + "Boundary Name :" + boundaryName )
For j As Integer = 0 to boundaryVerticesPointColl.Count -1
ed.WriteMessage(vbCrLf + "Boundary Vertices :" + boundaryVerticesPointColl.Item(j).ToString() )
Next
Next
End If
Hope this is useful to you!