Skip To Content

esri_attributes_get (AutoLISP)

Функция esri_attributes_get получает связанный список имен полей и значений их атрибутов.

Примечания по использованию:

  • Если указано только имя свойства, возвращаются все поля атрибутов и их значения, хранящиеся в элементе.
  • Если указано значение "FLNAME", включаются только атрибуты этого класса объектов, однако также включаются значения по умолчанию.
  • Если указано значение "FIELDNAME", возвращаются только это имя поля и его значение.
  • Если указаны значения "FLNAME" и FIELDNAME, будут возвращены значение поля или его значение по умолчанию в списке пары значений, разделенных точкой, и только в случае, если оно принадлежит слою объектов.

Синтаксис

(esri_attributes_get ename [attribute_settings])

Аргументы

  • ename |Имя элемента AutoCAD | обязательный | Имя элемента AutoCAD объекта.
  • attribute_settings | связанный список | дополнительный | список дополнительных настроек в виде пар значений, разделённых точкой, для ограничения набора полей и возврата соответствующих значений по умолчанию, как указано ниже:

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

    string

    Имя векторного слоя. Предполагается, что элемент является участником этого векторного слоя и включает только значения полей, указанных для этого слоя и возвращает значения по умолчанию.

    Дополнительный

    "FIELDNAME"

    string

    Одно значение поля для ограничения возвращаемого значения этого поля. Если указывается также значение FLNAME, значение FIELDNAME должно находиться в этом определении класса объектов.

    Дополнительный

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

Попытка получения всех атрибутов векторного слоя Centerlines для выбранного элемента.

(esri_attributes_get (car (entsel)) (list (cons "FLNAME" "Centerlines")))

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

Верните все атрибуты векторного слоя Centerlines для выбранного элемента в виде связанного списка:

(("EntityHandle" . "252") ("EntityType" . "LWPOLYLINE") ("StreetName" . "S Roosevelt Blvd") ("Pavement" . 6) ("Rating" . 0.6259))

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

Попытка получения значения поля StreetName из векторного слоя Centerlines для выбранного элемента.

(esri_attributes_get (car (entsel)) (list (cons "FLNAME" "Centerlines") (cons "FIELDNAME" "StreetName")))

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

Верните значение поля StreetName для выбранного элемента в виде связанного списка:

(("StreetName" . "White Street"))

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

Ниже перечислены возможные возвращаемые значения:

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

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

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

  • (nil ("Error" . "No attributes found on entity."))

    Элемент не содержит каких-либо из указанных значений поля.

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

    Указанный векторный слой в файле не существует.

  • (nil ("Error" . "Invalid associated list"))

    Параметр attribute_settings был неправильно структурирован или содержал недопустимые значения.

  • (nil ("Error" . "No fields found."))

    Указано неверное имя поля.

См. также

esri_featurelayer_getattributes — функция, предназначенная для возврата списка связанных списков атрибутов всех объектов указанного векторного слоя в чертеже.