---
title: "CreateAttrIterator - Создать итератор для перебора атрибутов объекта"
type: guide
api: [api7]
tags: [guide, api7, createattriterator]
sources:
  - createattriterator.html
---

*API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами *


## CreateAttrIterator - Создать итератор для перебора атрибутов объекта

Пример...
Аналог данной функции при использовании Automation - метод ksIterator::ksCreateAttrIterator.
Синтаксис:
```
reference CreateAttrIterator(reference obj,
unsigned int key1,
unsigned int key2,
unsigned int key3,
unsigned int key4,
double numb);
Входные параметры:
obj    - указатель на объект,
key1, key2, key3, key4    - ключи для поиска по ключам,
numb    - номер типа атрибута для поиска по номеру.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
1. Если obj = 0, то производится перемещение по объектам с заданным атрибутом внутри графического документа.
2. Если obj не равен 0, то объектом может быть объект вида, вид, группа, слой, тогда движение будет происходить по атрибутам этого объекта.
3. Если obj не равен 0, то объектом может быть документ, тогда движение будет происходить по атрибутам документа.
4. Итератор работает с атрибутами активного документа.


## CreateAttrIterator - Пример использования

double x, y;
reference pObj;
char password[11];
int j;
RequestInfo info;
memset (&info, 0, sizeof(info));
info.prompt = "Укажите объект";
do
{
j = Cursor (&info, &x, &y, 0);
if (j)
{
if (ExistObj(pObj = FindObj (x, y, 1e6)))
{
LightObj (pObj, 1);
//создадим итератор для хождения по атрибутам объекта
reference iter = CreateAttrIterator (pObj, 0,0,0,0,0);
//встали на первый атрибут
reference attr = MoveAttrIterator (iter, 'F', 0);
if (attr)
{
j = ReadString ("Ввести пароль типа атрибута", password, 10);
if (j)
{
//удалить атрибут
if (!DeleteAttr (pObj, attr, password))
MessageBoxResult(); // неудачное завершение -
// выдадим результат работы
// нашей функции
}
}
else
Message("атрибут не найден");
LightObj (pObj, 0);
}
}
}
while (j);
