Skip To Content

esri_featurelayer_elevatetofield (AutoLISP)

Функция (esri_featurelayer_elevatetofield) изменяет z-координаты элементов указанного векторного слоя и любых элементов TEXT, связанных с этими объектами.

Детали функции:

  • Если набор выборки не включен, все объекты векторного слоя будут изменены.
  • Эта функция поддерживает элементы векторных слоев POINT, POLYLINE, POLYGON и ANNOTATION.

Синтаксис

(esri_featurelayer_elevatetofield flname field [elevation_settings])

Аргументы

Список аргументов для функции:

  • flname | string | обязательный | имя существующего векторного веб-слоя чертежа.
  • field | string | обязательный | поле числового атрибута объекта.
  • elevation_settings | связанный список | дополнительный | список дополнительных настроек в виде пар значений, разделенных точкой, позволяющих поменять способ изменения высот.

    Связанная надписьТип значенияОписание значенияОбязательные или дополнительные
    "FIELDUNITS"

    string

    "Feet", "USFeet" или "Meters" (без учета регистра).

    Дополнительно (по умолчанию "Meters")

    "ZFACTOR"

    double

    Умножает значение FIELD каждого объекта на эту величину, чтобы определить высоту. Замещает FIELDUNITS.

    Необязательно (по умолчанию 1.0)

    "SELECTIONSET"

    набор выборки

    Набор выборки AutoCAD установлен для ограничения того, какие из объектов будут изменены. Если этот параметр не указан, будут изменены все объекты векторного слоя.

    Необязательно (по умолчанию ВСЕ объекты векторного слоя)

Пример использования 1

В этом примере изменяется высота всех пространственных объектов векторного слоя Contours на основе атрибутивного поля объекта, называемого ELEVATION, где единицы измерения значений выражаются в метрах.

(esri_featurelayer_elevatetofield "Contours" "ELEVATION")

Пример использования результата 1

Изменяется высота всех пространственных объектов векторного слоя Contours на основе значений атрибутивного поля ELEVATION и возвращается список значений true с числом измененных объектов.

(T 49)

Пример использования 2

В этом примере изменяется высота набора выборки пространственных объектов векторного слоя Spot_Elevation, и высоты, хранящиеся в поле ELEVATION, которые необходимо умножить на масштабный коэффициент для пересчета из метров в футы.

(progn
(setq ss (ssget))
(esri_featurelayer_elevatetofield "Spot_Elevation" "ELEVATION"
  (list
    (cons "ZFACTOR" 3.28084)
    (cons "SELECTIONSET" ss)
)))

Пример использования результата 2

Изменяется высота выбранного набора объектов отметок высот на основе указанного коэффициента масштабирования, и возвращается список значений true с числом измененных объектов. :

(T 20)

Возвращаемые значения

  • В случае успеха возвращается список значений true и число измененных элементов: (T <n>)
  • В случае неудачи возвращается список с первым значением nil, а затем связанный список, содержащий значение ключа "Error" и соответствующее сообщение об ошибке в виде строки: (nil ( "Error" . "<message>"))

Не удалось возвратить значения

Неудачное возвращение значения может произойти по любой из следующих причин:

  • (nil ("Error" . "Cannot calculate unit scale factor from current coordinate system."))

    Функция не может распознать указанные пользователем единицы или единицы системы координат карты.

  • (nil ("Error" . "Missing required argument."))

    Не указан один или несколько обязательных аргументов.

  • (nil ("Error" . "Feature layer not found."))

    Заданный векторный слой не найден в чертеже.

  • (nil ("Error" . "No supported feature layers found."))

    Слой имеет геометрический тип MULTIPATCH, который не поддерживается.

  • (nil ("Error" . "Field not found."))

    Отсутствует или не найдено имя поля, либо не корректны elevation_settings.