The CorridorSurfaceCollection object allows you to add a new, empty CorridorSurface with the Add() method. This method takes a string specifying the new CorridorSurface name, and an optional StyleID of a CorridorSurfaceStyle to apply to the surface.
CorridorSurfaces may be removed from the CorridorSurfaceCollection using either the Remove() or RemoveAt() methods. Remove() takes a string specifying the CorridorSurface name, or a CorridorSurface object itself. RemoveAt() takes an integer specifying the index of the CorridorSurface object in the CorridorSurfaceCollection to remove.
This example illustrates creating a new CorridorSurface and adding it to the CorridorSurfaces collection on a specified Corridor.
// prompt for the target corridor name: String corridorName = _editor.GetString("Enter a corridor name:").StringResult; // Get the corridor ObjectId corridorId = _civilDoc.CorridorCollection[corridorName]; Corridor corridor = ts.GetObject(corridorId, OpenMode.ForWrite) as Corridor; // Get a surface style to use for the new corridor surface: ObjectId surfaceStyleId = _civilDoc.Styles.SurfaceStyles[0]; CorridorSurface corridorSurface = corridor.CorridorSurfaces.Add("New Example Corridor Surface", surfaceStyleId); // Corridor will now be out-of-date: _editor.WriteMessage("Corridor is out of date: {0}", corridor.IsOutOfDate); // You can re-build, although this won't do anything in this case, since // the new surface is empty: corridor.Rebuild(); // Remove the new surface: corridor.CorridorSurfaces.Remove(corridorSurface); ts.Commit();