Этот метод получает словарь имен полей и значений их атрибутов.
- Если указан только 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, которая получает связанный список имен полей и значений их атрибутов по умолчанию.