Gets the elevation analysis data for a Surface.
Namespace: Autodesk.Civil.DatabaseServicesAssembly: 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

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}