Тема: Выбор элементов по расширенным данным

Необходимо выбрать все примитивы типа Text и MText, у которых в области расширенных совпадают имя приложения + значение текстового поля. В документе такие объекты есть (проверено). Вот код:

procedure TmForm.Button1Click(Sender: TObject);
  var
    i: Integer;
    DataType, Data: Variant;
    FiltrType, FiltrData: OleVariant;
    SelSet: IAcadSelectionSet;
  begin
    AcadApp:= GetAcadApplication(True);
    FiltrType:= VarArrayCreate([0,1], VT_I2);
    FiltrData:= VarArrayCreate([0,1], VT_VARIANT);
    FiltrType[0]:= 1001;
    FiltrType[1]:= 1000;
    FiltrData[0]:= 'Frame';
    FiltrData[1]:= 'Rec';
    SelSet:= mForm.AcadApp.ActiveDocument.SelectionSets.Add('XData');
    SelSet.Select(acSelectionSetAll, EmptyParam, EmptyParam, FiltrType, FiltrData);
    Memo1.Clear;
    Memo1.Lines.Add(IntToStr(SelSet.Count));
    for i:=0 to SelSet.Count-1 do
     begin
        case SelSet.Item(i).EntityType of
        acMText:
          with SelSet.Item(i) as IAcadMText do Memo1.Lines.Add(TextString);
        acText:
          with SelSet.Item(i) as IAcadText do Memo1.Lines.Add(TextString);
         end; // end case
     end; // end for
    SelSet.Delete;
  end;

Так вот MText выбирается и обрабатывается, а просто Text игнорируется полностью. Если выбирать только по имени приложения, тогда выбираются все примитивы, попадающие пол условие фильтра. Где ошибка, коллеги, подмогните?!

Re: Выбор элементов по расширенным данным

Ошибка в том, что расширенные данные можно фильтровать только по группе 1001 (т.е. по имени приложения). Об этом четко сказано в документации. То что для Mtext удается фильтровать и по группе 1000 - это скорее исключение, чем правило:

(ssget) does not retrieve individual extended data items (with group codes in the range 1000–2000).

Re: Выбор элементов по расширенным данным

Это исключение с MText и ввело меня в стопор. Если можно для одного, почему нельзя для другого?
Спасиб за ссылку, нашел, прочел - будем знать.

Re: Выбор элементов по расширенным данным

В продолжение темы выбора элементов.
Я убрал второй элемент из массивов фильтров, оставив фильтрацию только по имени приложения. Все по идее теперь должно было заработать как положено (отобрать все примитивы в пределах активного документа с именем приложения "Frame"). Так оно и делает, только проблема вот в чем - отбирать то отбирает, только теперь не заходит в цикл перебора элементов набора SelSet. Количество элементов в наборе считает верно, но вот по свойству .EntityType не перебирает примитивы. Перед самим  циклом перебора пытаюсь вывести значение i-го элемента набора:

ShowMessage('Это примитив - '+ IntToStr(SelSet.Item(i).EntityType));

и получаю сообщение типа: "Это примитив - 1546987", хотя, если я правильно понимаю, должно быть другое значение, определенное в AutoCAD_TLB для конкретного примитива.
Код точно такой же как выше, за исключенеим размерности массивов для фильтрования.
Подмогните, уважаемые!