Skip To Content

Attributes.Get (.NET)

Этот метод получает словарь имен полей и значений их атрибутов.

  • Если указан только ArcGIS for AutoCAD ObjectId, возвращаются все поля атрибутов и их значения, хранящиеся в элементе.
  • Если указано значение flName, включаются только атрибуты этого векторного слоя.
  • Если указаны значения flName и fieldName, будут возвращены значение поля или его значение по умолчанию и только в случае, если оно принадлежит векторному слою.

Декларация

public Dictionary<string, IConvertible> Esri.ArcGISForAutoCAD.Attributes.Get(Document doc, ObjectId objId, string flName = null, string fieldName = null)

Параметры

ТипИмяОписаниеОбязательный

Документ

doc

Документ AutoCAD, на основании которого следует действовать.

required

ObjectId

objId

AutoCAD ObjectId объекта.

required

string

flName

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

обязательно, если fieldName указано

string

fieldName

Имя одного поля. Возвращаемое значение ограничено этим одним полем.

optional

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

ТипОписание

Dictionary<string, IConvertible>

Словарь имен полей и значений их атрибутов. Key: имя поля, Value: значение атрибута.

Замечания по условиям возникновения ошибок

Этот метод может выдать исключение или вернуть null, если параметр является некорректным.

Пример 1

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

// Initialize
var doc = Application.DocumentManager.MdiActiveDocument;
var flName = "Centerlines";
var objId = Esri.ArcGISForAutoCAD.FeatureLayer.SelectEntity(doc, flName);

// Get the attributes
var centerlinesAttributes = Esri.ArcGISForAutoCAD.Attributes.Get(doc, objId, flName);

// Print the attributes
foreach (var attribute in centerlinesAttributes)
{
  doc.Editor.WriteMessage("\nKey = {0}, Value = {1}", attribute.Key, attribute.Value);
}

/* Example output 
Key = EntityHandle, Value = 252
Key = EntityType, Value = LWPOLYLINE
Key = StreetName, Value = S Roosevelt Blvd
Key = Pavement, Value = 6
Key = Rating, Value = 0.6259
*/

Пример 2

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

// Initialize 
var doc = Application.DocumentManager.MdiActiveDocument;
var flName = "Centerlines";
var objId = Esri.ArcGISForAutoCAD.FeatureLayer.SelectEntity(doc, flName);

// Get the attribute from the single field
var streetNameAttribute = Esri.ArcGISForAutoCAD.Attributes.Get(doc, objId, flName, "StreetName");

// Print the street name
doc.Editor.WriteMessage("The street name is " + streetNameAttribute["StreetName"]);

/* Example output
The street name is Truman Avenue
*/

См. также

FeatureLayer.GetAttributes - метод .NET, который возвращает коллекцию словарей со всеми названиями полей и значениями для всех объектов в указанном векторном слое на чертеже.

FeatureLayer.SelectEntity — метод .NET, который предлагает выбрать один элемент и возвращает его AutoCAD ObjectId.

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