Это старая версия документа.
Нередко, при работе с поверхностью, пользователю требуется изменять или получать информацию из её элементов. Рассмотрим простые примеры по работе с элементами поверхности. Сперва выберем необходимые нам объекты и начнём мы с выбора точек поверхности.
В этом примере мы выберем точки поверхности на вкладке «План» и рассчитаем их среднюю отметку.
Для этого воспользуемся методом SelectPoints()
у слоя текущей поверхности (SurfaceLayer
). Выбранные точки необходимо будет получить так же у SurfaceLayer
с помощью метода GetSelectedPoints()
. Далее пройдёмся по выбранным точкам циклом foreach
и применим необходимую логику для расчёта средней отметки.
Ниже представлен код примера, который мы оформим в качестве метода CalculateAverageElevation()
с атрибутом [cmd(«calculate_average_elevation»)]
. Данный метод мы поместим в класс Module
для возможности последующего вызова этой команды из командной строки.
{ ... [cmd("calculate_average_elevation")] private void CalculateAverageElevation() { //Находим активный SurfaceLayer var cadview = CadView; var actSfcLayer = SurfaceLayer.GetSurfaceLayer(cadview); if (actSfcLayer == null) return; //Выбираем точки поверхности if (actSfcLayer.SelectedPointsCount == 0) { var res = actSfcLayer.SelectPoints(null, "Выберите точки поверхности:"); if (res == GetPointResult.Cancel) return; } if (actSfcLayer.SelectedPointsCount == 0) return; //Обращаемся к выбранным точкам и получаем сумму отметок var sfc = actSfcLayer.Surface; var sum = 0.0; foreach (var selectedPoint in actSfcLayer.GetSelectedPoints()) { var point = sfc.Points[selectedPoint]; sum += point.Vertex.Elevation; } //Вычисляем среднюю отметку и отображаем её в диалоговом окне var average = sum / actSfcLayer.SelectedPointsCount; MessageDlg.Show($"Средняя отметка: {average}"); } ... }
Как и в предыдущем примере, для выбора структурной линии нам потребуется слой текущей поверхности (SurfaceLayer
). Чтобы выбрать одну структурную линию, воспользуемся методом SelectOneStructureLine()
. Здесь возвращаемым значением сразу же будет выступать выбранная структурная линии, поэтому никаких дополнительных действий выполнять не придется.