Maybe something like this.
<CommandMethod("MakeFlatSurface")>
Public Sub CmdMakeFlatSurface()
Dim aDoc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = aDoc.Editor
Dim db As Database = aDoc.Database
Dim opt As New PromptEntityOptions(vbCrLf + "Select Surface: ")
opt.SetRejectMessage(vbCrLf + "Must be a surface.")
opt.AddAllowedClass(GetType(TinSurface), True)
Dim res As PromptEntityResult = ed.GetEntity(opt)
If res.Status = PromptStatus.OK Then
Using tr As Transaction = db.TransactionManager.StartTransaction
Dim surf As TinSurface = tr.GetObject(res.ObjectId, OpenMode.ForRead)
Dim borders As ObjectIdCollection = surf.ExtractBorder(Autodesk.Civil.SurfaceExtractionSettingsType.Plan)
Dim elev As Double = surf.GetGeneralProperties.MeanElevation
Dim styleId As ObjectId = cvlDoc.Styles.SurfaceStyles.Item(0)
Dim newSurfaceId As ObjectId = TinSurface.Create("MyFlatSurface", styleId)
Dim newSurface As TinSurface = tr.GetObject(newSurfaceId, OpenMode.ForWrite)
Dim verts As TinSurfaceVertexCollection = surf.Vertices
For Each vert As TinSurfaceVertex In verts
Dim p As New Point3d(vert.Location.X, vert.Location.Y, elev)
newSurface.AddVertex(p)
Next
newSurface.BoundariesDefinition.AddBoundaries(borders, 1.0, SurfaceBoundaryType.Outer, True)
tr.Commit()
End Using
End If
End Sub