---
title: "Интерфейс IFeaturePattern"
type: interface
api: [api7]
domain: [sketch, feature]
tags: [interface, api7, sketch, feature, ifeaturepattern]
sources:
  - ifeaturepattern.html
---

*API интерфейсов. Версия 7 > Документ 3D  > Операции, массивы, эскизы, точки  > Массивы *


## Интерфейс IFeaturePattern

Базовый интерфейс работы с массивами.
Иерархия:
IDispatch
IFeaturePattern
Интерфейс позволяет получать и изменять общие параметры для операций копирования.
В зависимости от типа объекта используется определенный интерфейс операции копирования.


## AddInitialObjects - Добавить объекты в массив копируемых объектов

Синтаксис Automation:
```
BOOL AddInitialObjects( VARIANT Objects );
```
Синтаксис COM:
```
HRESULT AddInitialObjects( VARIANT Objects, BOOL * Result );
Входные параметры:
Object    - объект - тип VARIANT-а VT_DISPATCH или список объектов - тип VARIANT-а VT_ARRAY    VT_DISPATCH.
Возвращаемое значение:
TRUE    - в случае удачи.
```


## BasePoint - Базовая точка

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
BasePoint = Object.BasePoint    Получить свойство (* )
Object.BasePoint = BasePoint    Установить свойство (* )
BasePoint = Object.GetBasePoint()    Получить свойство (**)
Object.SetBasePoint( BasePoint )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_BasePoint( &BasePoint )    Получить свойство
Object.put_BasePoint( BasePoint )    Установить свойство
```


## BasePointType - Способ задания базовой точки

Тип данных: из перечисления ksPatternBasePointTypeEnum
Синтаксис Automation:
```
BasePointType = Object.BasePointType    Получить свойство (* )
BasePointType = Object.BasePointType    Установить свойство (* )
BasePointType = Object.GetBasePointType()    Получить свойство (**)
Object.SetBasePointType( BasePointType )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_BasePointType( &BasePointType )    Получить свойство
Object.put_BasePointType( BasePointType )    Установить свойство
```


## Clear - Очистить список исходных объектов массива

Синтаксис Automation:
```
BOOL Clear();
```
Синтаксис COM:
```
HRESULT Clear( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае удачи.
```


## Destroy - Разрушить массив

Синтаксис Automation:
```
BOOL Destroy();
```
Синтаксис COM:
```
HRESULT Destroy( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае удачи.
```


## Exemplar - Получить экземпляр по индексу (или индексам)

Тип данных: Указатель на интерфейс IModelObject
Синтаксис Automation:
```
Exemplar = Object.Exemplar( index1, index2 )    Получить свойство (* )
Exemplar = Object.GetExemplar( index1, index2 )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Exemplar( index1, index2, &Exemplar )    Получить свойство
Входные параметры
index1, index2 - индекс экземпляра
```
Примечание:
Свойство доступно только для чтения.
Значения индексов начинаются с 1.
В массиве по кривой используется один индекс (первый).


## GeometryPattern - Признак использования геометрического копирования

Тип данных: BOOL
Синтаксис Automation:
```
GeometryPattern = Object.GeometryPattern    Получить свойство (* )
Object.GeometryPattern = GeometryPattern    Установить свойство (* )
GeometryPattern = Object.GetGeometryPattern()    Получить свойство (**)
Object.SetGeometryPattern( GeometryPattern )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_GeometryPattern( &GeometryPattern )    Получить свойство
Object.put_GeometryPattern( GeometryPattern )    Установить свойство
Значения свойства:
TRUE    - используется геометрический массив,
FALSE    - не используется геометрический массив.
```


## GetExemplarsCounts - Получить количество экземпляров

Синтаксис Automation:
```
BOOL GetExemplarsCounts( long * Count1, long * Count2 );
```
Синтаксис COM:
```
HRESULT GetExemplarsCounts( long * Count1, long * Count2, BOOL * Result );
Выходные параметры:
Count1    - количество экземпляров в первом направлении копирования,
Count2    - количество экземпляров во втором направлении копирования.
Возвращаемое значение:
TRUE    - в случае удачи.
```
Примечание:
Два направления копирования имеют массивы по сетке и по концентрической сетке.
Для массивов остальных типов Count2 равен 1.


## InitialObjects - Исходные объекты массива

Тип данных: VARIANT
Синтаксис Automation:
```
InitialObjects = Object.InitialObjects    Получить свойство (* )
Object.InitialObjects = InitialObjects    Установить свойство (* )
InitialObjects = Object.GetInitialObjects()    Получить свойство (**)
Object.SetInitialObjects( InitialObjects )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_InitialObjects( &InitialObjects )    Получить свойство
Object.put_InitialObjects( InitialObjects )    Установить свойство
```
Примечание:
Если копируется один объект, то возвращается VARIANT с типом VT_DISPATCH.
Если копируется более одного объекта, то возвращается VARIANT с типом VT_ARRAY | VT_DISPATCH.


## InstanceDeletedIndexes - Список удаленных экземпляров массива

Тип данных: VARIANT
Синтаксис Automation:
```
InstanceDeletedIndexes = Object.InstanceDeletedIndexes    Получить свойство (* )
Object.InstanceDeletedIndexes = InstanceDeletedIndexes    Установить свойство (* )
InstanceDeletedIndexes = Object.GetInstanceDeletedIndexes()    Получить свойство (**)
Object.SetInstanceDeletedIndexes( InstanceDeletedIndexes )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_InstanceDeletedIndexes( &InstanceDeletedIndexes )    Получить свойство
Object.put_InstanceDeletedIndexes( InstanceDeletedIndexes )    Установить свойство
```
Примечания:
Возвращается массив SafeArray VT_ARRAY | VT_I4.
Свойства применяется для получения информации об удаленных копиях, а также управления составом удаленных копий.
Информация об удаленной копии выдается в виде индексов копии в узоре копирования.
В общем случае это два индекса по ортогональным осям в плоскости узора.
Для копий по кривой используется один индекс (первый).
Значения индексов начинаются с 1.


## IsInitialObject - Проверка: является ли объект исходным для массива

Синтаксис Automation:
```
BOOL IsInitialObject( IModelObject * Object );
```
Синтаксис COM:
```
HRESULT IsInitialObject( IModelObject * Object, BOOL * Result );
Входные параметры:
Object    - указатель на объект IModelObject.
Возвращаемое значение:
TRUE    - если объект есть в списке копируемых объектов.
```


## IsSuitableObject - Проверка пригодности объекта для операции

Синтаксис Automation:
```
BOOL IsSuitableObject( IModelObject * Object );
```
Синтаксис COM:
```
HRESULT IsSuitableObject( IModelObject * Object, BOOL * Result );
Входные параметры:
Object    - указатель на объект IModelObject.
Возвращаемое значение:
TRUE    - указанный объект можно скопировать с помощью данной операции.
```
