SurfaceAnalysisElevationData Class

This class defines a single elevation region, specified by a minimum and maximum elevation.
Inheritance Hierarchy
SystemObject
  Autodesk.Civil.DatabaseServicesSurfaceAnalysisElevationData

Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.8.0.292
Syntax
public sealed class SurfaceAnalysisElevationData

The SurfaceAnalysisElevationData type exposes the following members.

Constructors
 NameDescription
Public methodSurfaceAnalysisElevationDataInitializes a new instance of the SurfaceAnalysisElevationData class
Public methodSurfaceAnalysisElevationData(Double, Double, Color)Initializes a new instance of the SurfaceAnalysisElevationData class
Top
Properties
 NameDescription
Public propertyMaximumElevation Gets or sets the maximum elevation value for the elevation range.
Public propertyMinimumElevation Gets or sets the minimum elevation value for the elevation range.
Public propertyScheme Gets or sets the color value for the elevation range. This is an AutoCAD Color object.
Top
Remarks
An elevation region defines a minimum and maximum elevation. It also defines how the elevations in that elevation region appear (color).

A Surface elevation analysis typically contains several elevations. The Surface.Analysis.GetElevationData() method returns an array of SurfaceAnalysisElevationData objects, one for each elevation.
Example
C#
 1/// <summary>
 2/// Calculates elevation regions for a given surface, and returns an array that can be passed 
 3/// to Surface.Analysis.SetElevationData()
 4/// </summary>
 5/// <param name="surface">A Civil 3D Surface object</param>
 6/// <param name="steps">The number of elevation steps to calculate</param>
 7/// <param name="startColor">The index of the start color.  Each subsequent color index is incremeted by 2.</param>
 8/// <returns>An array of SurfaceAnalysisElevationData objects.</returns>
 9private SurfaceAnalysisElevationData[] CalculateElevationRegions(Autodesk.Civil.DatabaseServices.Surface surface, int steps, short startColor)
10{
11    // calculate increments based on # of steps:
12    double minEle = surface.GetGeneralProperties().MinimumElevation;
13    double maxEle = surface.GetGeneralProperties().MaximumElevation;
14    double incr = (maxEle - minEle) / steps;
15
16    SurfaceAnalysisElevationData[] newData = new SurfaceAnalysisElevationData[steps];
17    for (int i = 0; i < steps; i++)
18    {
19        Color newColor = Color.FromColorIndex(ColorMethod.ByLayer, (short)(100 + (i * 2)));
20        newData[i] = new SurfaceAnalysisElevationData(minEle + (incr * i), minEle + (incr * (i + 1)), newColor);
21    }
22
23    return newData;
24}
25
26
27/// <summary>
28/// Illustrates performing an elevation analysis
29/// </summary>
30[CommandMethod("SurfaceElevationAnalysis")]
31public void SurfaceElevationAnalysis()
32{
33    using (Transaction ts = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction())
34    {
35        // Select first TIN Surface              
36        ObjectId surfaceId = doc.GetSurfaceIds()[0];
37        TinSurface oSurface = surfaceId.GetObject(OpenMode.ForWrite) as TinSurface;
38
39        // get existing analysis, if any:
40        SurfaceAnalysisElevationData[] analysisData = oSurface.Analysis.GetElevationData();
41        editor.WriteMessage("Existing Analysis length: {0}\n", analysisData.Length);
42
43        SurfaceAnalysisElevationData[] newData = CalculateElevationRegions(oSurface, 10, 100);
44
45        oSurface.Analysis.SetElevationData(newData);
46
47        // commit the transaction
48        ts.Commit();
49    }
50}
See Also