---
title: "Интерфейс ISpecificationBaseObject"
type: interface
api: [api7]
tags: [interface, api7, ispecificationbaseobject]
sources:
  - ispecificationbaseobject.html
---

*API интерфейсов. Версия 7 > Работа со спецификацией *


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

Интерфейс базового объекта спецификации.
Иерархия:
IKompasAPIObject
ISpecificationObject
ISpecificationBaseObject
Описание:
Интерфейс позволяет получить и изменить параметры для базовых объектов спецификации. Для базовых объектов предусмотрена возможность автоматического заполнения колонок, сортировки, подключения графических объектов из сборочного чертежа, подключения деталей из сборки и т.д.
Примечание:
1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update.
2. Данный интерфейс можно получить у коллекции базовых объектов спецификации ISpecificationBaseObjects.


## AttributeNumber - Номер типа атрибута

Тип данных: double
Синтаксис Automation:
```
AttributeNumber = iObject.AttributeNumber    Получить свойство (* )
iObject.AttributeNumber = AttributeNumber    Установить свойство (* )
AttributeNumber = iObject.GetAttributeNumber()    Получить свойство (**)
iObject.SetAttributeNumber( AttributeNumber )    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_AttributeNumber( &AttributeNumber )    Получить свойство
iObject->put_AttributeNumber( AttributeNumber )    Установить свойство
```
Примечание:
Позволяет получить используемый тип атрибута для колонки с типом значения ksValueTypeRecord ISpecificationColumn::ValueType, и установить новый. Если требуется просто удалить тип атрибута, то в качестве значения этого свойства надо присвоить 0. В этом случае значение колонки с типом ksValueTypeRecord будет аналогично типу ksValueTypeString. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update.


## ClearGeometry - Очистить геометрию объекта спецификации

Синтаксис Automation:
```
BOOL ClearGeometry( BOOL ClearGeometry, BOOL ClearLeaders );
```
Синтаксис COM:
```
HRESULT ClearGeometry( BOOL ClearGeometry, BOOL ClearLeaders, BOOL * Result );
Входные параметры:
ClearGeometry    - очистить геометрию,
ClearLeaders    - очистить линии выноски.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```


## CommentObjects - Вспомогательные объекты, прикрепленные к объекту

Тип данных: Указатель на интерфейс ISpecificationCommentObjects коллекции вспомогательных объектов спецификации
Синтаксис Automation:
```
CommentObjects = iObject.CommentObjects    Получить свойство (* )
CommentObjects = iObject.GetCommentObjects()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_CommentObjects( &CommentObjects )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Documents - Документы, связанные с объектом спецификации

Тип данных: VARIANT
Синтаксис Automation:
```
Documents = iObject.Documents    Получить свойство (* )
Documents = iObject.GetDocuments()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Documents( &Documents )    Получить свойство
```
Примечание:
1. Связанными документами являются документы, в которых находится геометрия, подключенная к данному объекту, поэтому список связанных с объектом спецификации документов можно получить только для объектов в документе спецификации, в остальных документах геометрию можно подключить только из этого же документа.
2. Свойство возвращает переменную типа VARIANT на безопасный массив имен файлов, связанных с объектом спецификации SAFEARRAY (VT_ARRAY | VT_BSTR).
3. Свойство доступно только для чтения.


## Draw - Показывать объект

Тип данных: BOOL
Синтаксис Automation:
```
Draw = iObject.Draw    Получить свойство (* )
iObject.Draw = Draw    Установить свойство (* )
Draw = iObject.GetDraw()    Получить свойство (**)
iObject.SetDraw( Draw )    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Draw( &Draw )    Получить свойство
iObject->put_Draw( Draw )    Установить свойство
Значения свойства:
TRUE    - объект виден в таблице спецификации в любом режиме работы с ней,
FALSE    - показывать объект в таблице спецификации не нужно; при этом объект не удаляется (он по-прежнему участвует в расчете номеров позиций).
```
Примечание:
Свойство позволяет скрыть объект спецификации.


## DrawPosition - Показывать позицию

Тип данных: BOOL
Синтаксис Automation:
```
DrawPosition = iObject.DrawPosition    Получить свойство (* )
iObject.DrawPosition = DrawPosition    Установить свойство (* )
DrawPosition = iObject.GetDrawPosition()    Получить свойство (**)
iObject.SetDrawPosition( DrawPosition )    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_DrawPosition( &DrawPosition )    Получить свойство
iObject->put_DrawPosition( DrawPosition )    Установить свойство
Значения свойства:
TRUE    - в колонке "Позиция" объекта отображается ее содержимое,
FALSE    - колонка "Позиция" будет показываться пустой.
```
Примечание:
Свойство позволяет скрыть номер позиции объекта в спецификации.


## EditSourceObject - Передавать изменения в документ - владелец объекта

Тип данных: BOOL
Синтаксис Automation:
```
EditSourceObject = Object.EditSourceObject    Получить свойство (* )
Object.EditSourceObject = EditSourceObject    Установить свойство (* )
EditSourceObject = Object.GetEditSourceObject()    Получить свойство (**)
Object.SetEditSourceObject( EditSourceObject )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_EditSourceObject( &EditSourceObject )    Получить свойство
Object.put_EditSourceObject( EditSourceObject )    Установить свойство
```


## FillNameByMaterial - Синхронизировать наименование с материалом

Тип данных: BOOL
Синтаксис Automation:
```
FillNameByMaterial = Object.FillNameByMaterial    Получить свойство (* )
Object.FillNameByMaterial = FillNameByMaterial    Установить свойство (* )
FillNameByMaterial = Object.GetFillNameByMaterial()    Получить свойство(**)
Object.SetFillNameByMaterial( FillNameByMaterial )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_FillNameByMaterial( &FillNameByMaterial )    Получить свойство
Object.put_FillNameByMaterial( FillNameByMaterial )    Установить свойство
```


## Geometry - Геометрия объекта спецификации

Тип данных: VARIANT
Значения свойства:
| Массив SafeArray типа VT_ARRAY | VT_DISPATCH | |
| --- | --- |
Синтаксис Automation:
```
Geometry = iObject.Geometry    Получить свойство (* )
iObject.Geometry = Geometry    Установить свойство (* )
Geometry = iObject.GetGeometry()    Получить свойство (**)
iObject.SetGeometry(Geometry)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Geometry(&Geometry)    Получить свойство
iObject->put_Geometry(Geometry)    Установить свойство
```
Примечание:
У базового объекта СП может быть установлена геометрия, которая ассоциируется с данным объектом.
Для 2D документа это массив IDrawingObject.
Для 3D документа это массив объектов:
•IPart7(может быть один компонент),
•IBody7 (тела верхнего уровня сборки),
•IPositionLeader ( обозначения позиций верхнего уровня сборки).
•Получить можно всегда массив объектов. Если возвращается один объект, то тип VARIANT-а будет VT_DISPATCH, если возвращается несколько объектов, то тип VARIANT-а будет VT_ARRAY | VT_DISPATCH.
•Установить можно как массив, так и одиночный объект. При установке геометрии старая геометрия очищается.
При установке геометрии используется текущее значение флага ISpecificationBaseObject::SyncronizeWithProperties.
Версия: Компас v20


## IncludeGeometry - Добавить геометрию к объекту спецификации

Синтаксис Automation:
```
BOOL IncludeGeometry( VARIANT PVal, BOOL FillText );
```
Синтаксис COM:
```
HRESULT IncludeGeometry( VARIANT PVal, BOOL FillText, BOOL * Result );
Входные параметры:
PVal    - Объект VT_DISPATCH или список объектов VT_ARRAY    VT_DISPATCH,
FillText    - признак автоматического заполнения колонок: наименование, обозначение, масса взяты из свойств объекта.
Возвращаемое значение:
TRUE    - в случае удачного завершения.
```
Примечание:
Если при подключении компонента присылается флаг fillTexts = true, в объекте спецификации взводится флаг ISpecificationBaseObject::SyncronizeWithProperties.


## IsFirstObject - TRUE - первый одинаковый объект, FALSE - последующие одинаковые объекты

Тип данных: BOOL
Синтаксис Automation:
```
IsFirstObject = Object.IsFirstObject    Получить свойство (* )
IsFirstObject = Object.GetIsFirstObject()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsFirstObject( &IsFirstObject )    Получить свойство (* )
```
Примечание:
Свойство доступно только для чтения.
Версия: Компас v20


## IsGroupObject - Признак группового объекта спецификации

Тип данных: BOOL
Синтаксис Automation:
```
IsGroupObject = Object.IsGroupObject    Получить свойство (* )
IsGroupObject = Object.GetIsGroupObject()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_IsGroupObject( &IsGroupObject )    Получить свойство (* )
```
Примечание:
Свойство доступно только для чтения.
Версия КОМПАС v22


## Performance - Объект является исполнением

Тип данных: BOOL
Синтаксис Automation:
```
Performance = iObject.Performance    Получить свойство (* )
iObject.Performance = Performance    Установить свойство (* )
Performance = iObject.GetPerformance()    Получить свойство (**)
iObject.SetPerformance( Performance )    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Performance( &Performance )    Получить свойство
iObject->put_Performance( Performance )    Установить свойство
Значения свойства:
TRUE    - Объект является исполнением,
FALSE    - Объект не является исполнением.
```
Примечание:
Объекты спецификации, являющиеся исполнением, отличаются от простого объекта наличием суффикса исполнения. Их обозначение должно заканчиваться суффиксом с номером исполнения. Например: -02, -03, -10.
Отображение объектов, являющимися исполнениями зависит от настроек стиля спецификации.


## SetMaterial - Установить материал в объект спецификации и связанный с ним документ

Синтаксис Automation:
```
BOOL SetMaterial( BSTR Material, double Density );
```
Синтаксис COM:
```
HRESULT SetMaterial( BSTR Material, double Density, BOOL * Result );
Входные параметры:
Material    - материал,
Density    - плотность.
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
```


## SetSection - Установить номер раздела

Синтаксис Automation:
```
BOOL SetSection( long Val );
```
Синтаксис COM:
```
HRESULT SetSection( long Val, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае удачного завершения,
FALSE    - в случае неудачи.
Входные параметры:
Val    - номер раздела.
```
Примечание:
Задаваемый номер раздела должен присутствовать в данной спецификации.
Узнавать текущий номер раздела объекта надо у базового интерфейса ISpecificationObject.


## SpcUsed - Признаки использования в спецификации

Тип данных: BOOL
Синтаксис Automation:
```
SpcUsed = Object.SpcUsed(SpcUsedType)    Получить свойство (* )
Object.SpcUsed(SpcUsedType) = SpcUsed    Установить свойство (* )
SpcUsed = Object.GetSpcUsed(SpcUsedType)    Получить свойство (**)
Object.SetSpcUsed( SpcUsedType, SpcUsed )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SpcUsed( SpcUsedType, &SpcUsed )    Получить свойство
Object.put_SpcUsed( SpcUsedType, SpcUsed )    Установить свойство
Входные параметры:
SpcUsedType    - Признаки использования в спецификации из перечисления ksSpcUsedTypeEnum.
```


## SummaryCount - Суммарное количество для исполнения

Тип данных: double
Синтаксис Automation:
```
SummaryCount = iObject.SummaryCount( ColumnTypeNumber, BlockNumber )    Получить свойство (* )
SummaryCount = iObject.GetSummaryCount( ColumnTypeNumber, BlockNumber )    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_SummaryCount( ColumnTypeNumber, BlockNumber, &SummaryCount )    Получить свойство
Входные параметры:
ColumnTypeNumber    - номер колонки данного типа,
BlockNumber    - номер блока исполнений.
```
Примечание:
1. Свойство доступно только для чтения.
2. Данное свойство возвращает суммарное значение в колонке "Количество" указанного номера колонки для одинаковых объектов указанного блока исполнений.


## SummaryCountText - Суммарное количество для исполнения

Тип данных: Указатель на интерфейс IText
Синтаксис Automation:
```
SummaryCountText = Object.TemplatePath( ColumnTypeNumber, BlockNumber )    Получить свойство (* )
SummaryCountText = Object.GetSummaryCountText( ColumnTypeNumber, BlockNumber )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_SummaryCountText( DocumentType, DocumentTypeId, &SummaryCountText )    Получить свойство
Входные параметры:
ColumnTypeNumber    - номер колонки количество,
BlockNumber    - номер блока исполнений.
```
Примечание:
•В разных разделах количество может иметь различный тип.
•В разделе Детали, стандартные изделия, например, имеют целочисленное значение. При объединении нескольких объектов спецификации в этом случае количество суммируется.
•В разделе Материал количество строковое, и текст возвращается с объекта, у которого задано не пустое значение.
•В разделе Документация также формируется объединенное значение.
В отличие от ISpecificationBaseObject::SummaryCount метод может вернуть не пустое значение для строковых колонок.


## SyncronizeWithProperties - Брать данные из свойств и передавать данные в свойства объекта

Тип данных: BOOL
Синтаксис Automation:
```
SyncronizeWithProperties = Object.SyncronizeWithProperties    Получить свойство (* )
Object.SyncronizeWithProperties = SyncronizeWithProperties    Установить свойство (* )
SyncronizeWithProperties = Object.GetSyncronizeWithProperties()    Получить свойство (**)
Object.SetSyncronizeWithProperties( SyncronizeWithProperties )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_SyncronizeWithProperties( &SyncronizeWithProperties )    Получить свойство
Object.put_SyncronizeWithProperties( SyncronizeWithProperties )    Установить свойство
```


## UniqueMetaObjectKey - Уникальный идентификатор объекта

Тип данных: BOOL
Синтаксис Automation:
```
UniqueMetaObjectKey = Object.UniqueMetaObjectKey    Получить свойство (* )
UniqueMetaObjectKey = Object.GetUniqueMetaObjectKey()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_UniqueMetaObjectKey( &UniqueMetaObjectKey )    Получить свойство
```
Примечание
Свойство доступно только для чтения
