This class defines a single elevation region, specified by a minimum and maximum elevation.

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

Syntax

C#
public sealed class SurfaceAnalysisElevationData : ISurfaceAnalysis
Visual Basic
Public NotInheritable Class SurfaceAnalysisElevationData _
	Implements ISurfaceAnalysis
Visual C++
public ref class SurfaceAnalysisElevationData sealed : ISurfaceAnalysis

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.

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}

Inheritance Hierarchy

System..::..Object
  Autodesk.Civil.DatabaseServices..::..SurfaceAnalysisElevationData

See Also