Gets the elevation analysis data for a Surface.

Namespace: Autodesk.Civil.DatabaseServices
Assembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.4.2516.0

Syntax

C#
public SurfaceAnalysisElevationData[] GetElevationData()
Visual Basic
Public Function GetElevationData As SurfaceAnalysisElevationData()
Visual C++
public:
array<SurfaceAnalysisElevationData^>^ GetElevationData()

Return Value

An array of SurfaceAnalysisElevationData objects.

Remarks

This method returns elevation analysis data for a Surface. Data only exists if it has been generated in the Surface Analysis tab. Elevations will appear in the GUI if the elevation component of the surface style are set to visible, but the analysis data will be empty. Data is generated from the Analysis tab on the Surface Properties dialog.

Use SetElevationData() to apply changes made to data returned by this method.

Examples

CopyC#
 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