Sets the surface elevation analysis data for a Surface. Use this method to apply changes made to data returned by
GetElevationData().
Namespace: Autodesk.Civil.DatabaseServicesAssembly: AeccDbMgd (in AeccDbMgd.dll) Version: 13.4.2516.0
Syntax
Examples
CopyC#
1
2
3
4
5
6
7
8
9private SurfaceAnalysisElevationData[] CalculateElevationRegions(Autodesk.Civil.DatabaseServices.Surface surface, int steps, short startColor)
10{
11
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
28
29
30[CommandMethod("SurfaceElevationAnalysis")]
31public void SurfaceElevationAnalysis()
32{
33 using (Transaction ts = Application.DocumentManager.MdiActiveDocument.Database.TransactionManager.StartTransaction())
34 {
35
36 ObjectId surfaceId = doc.GetSurfaceIds()[0];
37 TinSurface oSurface = surfaceId.GetObject(OpenMode.ForWrite) as TinSurface;
38
39
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
48 ts.Commit();
49 }
50}
See Also