Sets the surface elevation analysis data for a Surface. Use this method to apply changes made to data returned by GetElevationData().

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

Syntax

C#
public void SetElevationData(
	SurfaceAnalysisElevationData[] analysisData
)
Visual Basic
Public Sub SetElevationData ( _
	analysisData As SurfaceAnalysisElevationData() _
)
Visual C++
public:
void SetElevationData(
	array<SurfaceAnalysisElevationData^>^ analysisData
)

Parameters

analysisData
Type: array<Autodesk.Civil.DatabaseServices..::..SurfaceAnalysisElevationData>[]()[][]
An array that contains the elevation analysis data for the Surface.

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