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

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


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

Интерфейс описания спецификации у документа.
Иерархия:
IKompasAPIObject
ISpecificationDescription
Описание:
Описание спецификации включает в себя имя файла спецификации, подключенной к графическому документу и стиль этой спецификации.
Для фрагмента и детали описание спецификации содержит только стиль спецификации. Это связано с тем, что фрагмент и деталь непосредственно к спецификации не подключаются, но в них можно создавать объекты спецификации для передачи в чертежи и сборки.
Примечание:
Установка свойств доступна только для графических документов и документов-моделей. Для документа спецификации свойства интерфейса работают в режиме "только для чтения". После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.
Данный интерфейс можно получить у коллекции описаний спецификации ISpecificationDescriptions.


## Active - Текущее описание

Тип данных: BOOL
Синтаксис Automation:
```
Active = iObject.Active    Получить свойство (* )
iObject.Active = Active    Установить свойство (* )
Active = iObject.GetActive()    Получить свойство (**)
iObject.SetActive (Active)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_Active (&Active)    Получить свойство
iObject->put_Active (Active)    Установить свойство
Значения свойства:
TRUE    - описание активно,
FALSE    - описание неактивно.
```
Примечание:
1. Свойство возвращает признак активности описания и позволяет сделать описание активным. Tо есть установить свойство можно только в TRUE.
2. После изменения параметров оформления метод Update вызывать не требуется.


## BaseObjects - Базовые объекты спецификации

Тип данных: указатель на интерфейс ISpecificationBaseObjects коллекции базовых объектов спецификации
Синтаксис Automation:
```
Objects = iObject.BaseObjects    Получить свойство (* )
Objects = iObject.GetBaseObjects()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_BaseObjects (&Objects)    Получить свойство
```
Примечание:
1. Свойство позволяет получить коллекцию базовых объектов спецификации.
2. Свойство доступно только для чтения.


## CommentObjects - Объекты спецификации - комментарии

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


## CompareStyleWithLibStyle - Отличие стиля СП от библиотечного: 0 - не отличается, 1 - отличается, -1 - стиль не найден

Синтаксис Automation:
```
ksSpecificationStyleDifferenceTypeEnum CompareStyleWithLibStyle();
```
Синтаксис COM:
```
HRESULT CompareStyleWithLibStyle( ksSpecificationStyleDifferenceTypeEnum * Result );
Возвращаемое значение:
0    - не отличается,
1    - отличается,
-1    - стиль не найден.
```


## CurrentObject - Текущий объект спецификации (выделенный или редактируемый в таблице спецификации)

Тип данных: указатель на интерфейс ISpecificationObject объекта спецификации.
Синтаксис Automation:
```
CurrentObject = iObject.CurrentObject    Получить свойство (* )
iObject.CurrentObject = CurrentObject    Установить свойство (* )
CurrentObject = iObject.GetCurrentObject()    Получить свойство (**)
iObject.SetCurrentObject (CurrentObject)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_CurrentObject (&CurrentObject)    Получить свойство
iObject->put_CurrentObject (CurrentObject)    Установить свойство
```
Примечание:
1. С помощью данного свойства можно получить и установить текущий объект спецификации.
2. В графическом документе или документе-модели метод работает, если открыто окно спецификации в подчиненном режиме.


## DelegateMode - Режим редактирования внешних объектов для описания спецификации сборки

Тип данных: BOOL
Синтаксис Automation:
```
DelegateMode = Object.DelegateMode    Получить свойство (* )
Object.DelegateMode = DelegateMode    Установить свойство (* )
DelegateMode = Object.GetDelegateMode()    Получить свойство (**)
Object.SetDelegateMode( DelegateMode )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DelegateMode( &DelegateMode )    Получить свойство
Object.put_DelegateMode( DelegateMode )    Установить свойство
```
Примечание:
Позволяет получать и создавать внешние объекты спецификации в документе типа "сборка".


## Delete - Удалить описание

Синтаксис Automation:
```
BOOL Delete();
```
Синтаксис COM:
```
HRESULT Delete( [out, retval] BOOL* Result );
```
Примечание:
Метод удаляет описание спецификации.


## GetPerformanceParam - Получить параметры и имя колонки исполнения по индексу

Синтаксис Automation:
```
LPCTSTR GetPerformanceParam( long DisplayPerformanceIndex, long * PerformanceIndex, long * BlockIndex );
```
Синтаксис COM:
```
HRESULT GetPerformanceParam( long DisplayPerformanceIndex, long * PerformanceIndex, long * BlockIndex, BSTR * PerformanceName );
Входные параметры:
DisplayPerformanceIndex    - индекс отображаемого исполнения (начинается с единицы).
Выходные параметры:
PerformanceIndex    - номер колонки исполнения,
BlockIndex    - указатель на структуру параметров библиотечной панели свойств.
Возвращаемое значение:
- Имя исполнения.
Метод позволяет получить имя исполнения, номер исполнения и номер блока по индексу исполнения.
```
Примечание:
1. Индекс исполнения начинается с единицы.
2. В групповой спецификации по варианту Б, созданной по сборке, у которой есть исполнения с непоследовательными номерами исполнений, часть колонок исполнений может быть отключена и отображаться будут только те исполнения, которые пришли из сборки. В такой спецификации в одной строке объекта спецификации могут отображаться исполнения и количество из нескольких блоков.
3. В групповой спецификации по варианту A также могут быть непоследовательные номера исполнений, если спецификация создана по сборке.
4. Метод рекомендуется использовать вместо свойства ISpecificationDescription::PerformanceName.PerformanceIndex и BlockIndex позволяют сопоставить имя исполнения и значение количества в конкретной колонке количество объектов спецификации.


## GetSpecificationObjectsForGeom - По геометрии получить массив объектов спецификации в виде SAFEARRAY'я DISPATCH - VT_ARRAY | VT_DISPATCH или одиночный VT_DISPATCH

Синтаксис Automation:
```
VARIANT GetSpecificationObjectsForGeom( VARIANT PGeom, long SectionNumb, double AttrNumb );
```
Синтаксис COM:
```
HRESULT GetSpecificationObjectsForGeom( VARIANT PGeom, long SectionNumb, double AttrNumb, VARIANT * Result );
Входные параметры:
PGeom    - массив SafeArray типа VT_ARRAY    VT_DISPATCH объектов геометрии,
SectionNumb    - номер раздела объектов СП,
AttrNumb    - номер типа атрибута объектов СП или 0.
Возвращаемое значение:
- Массив SafeArray типа VT_ARRAY    VT_DISPATCH объектов спецификации.
Версия Компас v23
```


## LayoutName - Имя файла библиотеки стилей

Тип данных: BSTR
Синтаксис Automation:
```
LayoutName = iObject.LayoutName    Получить свойство (* )
iObject.LayoutName = LayoutName    Установить свойство (* )
LayoutName = iObject.GetLayoutName()    Получить свойство (**)
iObject.SetLayoutName (LayoutName)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_LayoutName (&LayoutName)    Получить свойство
iObject->put_LayoutName (LayoutName)    Установить свойство
```
Примечание:
1. Свойство позволяет получить и установить имя библиотеки стилей, из которой будет взят стиль спецификации для данного описания.
2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


## NeedRebuild - Необходимость перестроения спецификации

Тип данных: BOOL
Синтаксис Automation:
```
NeedRebuild = Object.NeedRebuild    Получить свойство (* )
Object.NeedRebuild = NeedRebuild    Установить свойство (* )
NeedRebuild = Object.GetNeedRebuild()    Получить свойство (**)
Object.SetNeedRebuild (NeedRebuild)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_NeedRebuild( &NeedRebuild )    Получить свойство
Object.put_NeedRebuild( NeedRebuild )    Установить свойство
```
Примечание:
1. Свойство позволяет временно отключить обновление окна документа спецификации из функций API при создании и изменении объектов спецификации. А также ускорить:
•создание и изменение большого количества объектов,
•работу функции изменения имен исполнений в групповых спецификациях.
2. При изменении объектов спецификации можно воспользоваться свойством ISpecificationDescription::PerformanceName или методом ISpecificationObject::Update.


## Objects - Объекты спецификации

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


## PerformanceCount - Количество исполнений

Тип данных: long
Синтаксис Automation:
```
PerformanceCount = Object. PerformanceCount    Получить свойство (* )
Object. PerformanceCount = PerformanceCount    Установить свойство (* )
PerformanceCount = Object.Get PerformanceCount()    Получить свойство (**)
Object.Set PerformanceCount ( PerformanceCount)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ PerformanceCount( & PerformanceCount )    Получить свойство
Object.put_ PerformanceCount( PerformanceCount )    Установить свойство
```


## PerformanceCountInBlock - Количество исполнений в блоке

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


## PerformanceName - Отображаемое имя исполнения

Тип данных: BSTR
Синтаксис Automation:
```
PerformanceName = iObject.PerformanceName( PerformanceIndex, BlockIndex )    Получить свойство (* )
iObject.PerformanceName( PerformanceIndex, BlockIndex ) = PerformanceName    Установить свойство (* )
PerformanceName = iObject.GetPerformanceName( PerformanceIndex, BlockIndex )    Получить свойство (**)
iObject.SetPerformanceName( PerformanceIndex, BlockIndex, PerformanceName )    Установить свойство (**)
```
Синтаксис COM:
```
iObject.get_PerformanceName( PerformanceIndex, BlockIndex, &PerformanceName )    Получить свойство
iObject.put_PerformanceName( PerformanceIndex, BlockIndex, PerformanceName )    Установить свойство
Входные параметры:
PerformanceIndex    - номер колонки типа "количество", начиная с 1(актуально для СП по варианту Б),
BlockIndex    - номер блока, начиная с 0 (актуально для СП по варианту A).
```
Примечание:
1. В текст обозначения исполнения, которое редактируется, нужно включать разделитель.
2. Для получения имен исполнений рекомендуется использовать метод ISpecificationDescription::GetPerformanceParam.
3. Для ускорения работы функции при массовом изменении спецификации рекомендуется воспользоваться методом ISpecificationDescription::NeedRebuild.


## SheetSpecification - Спецификация или таблица изменений на листе

Тип данных: Указатель на интерфейс ISheetSpecification
Синтаксис Automation:
```
SheetSpecification = Object.SheetSpecification    Получить свойство (* )
SheetSpecification = Object.GetSheetSpecification()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_SheetSpecification( &SheetSpecification )    Получить свойство
```
Примечание:
Свойство доступно только для чтения.
КOMPAS v24


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

Тип данных: BOOL
Синтаксис Automation:
```
ShowAllObjects = iObject.ShowAllObjects    Получить свойство (* )
iObject.ShowAllObjects = ShowAllObjects    Установить свойство (* )
ShowAllObjects = iObject.GetShowAllObjects()    Получить свойство (**)
iObject.SetShowAllObjects (ShowAllObjects)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_ShowAllObjects (&ShowAllObjects)    Получить свойство
iObject->put_ShowAllObjects ( ShowAllObjects)    Установить свойство
Значения свойства:
TRUE    - отображаются все объекты в описании,
FALSE    - одинаковые объекты отображаются одной строкой, а в колонке количество отображается.
```
Примечание:
Свойство позволяет получить или установить состояние режима работы, в котором на экране отображаются все объекты спецификации, в том числе базовые объекты спецификации, имеющие одинаковую текстовую часть, а также базовые объекты спецификации, в настройках дополнительных параметров которых выключена опция показа объекта в таблице.
Одинаковые объекты могут иметь одинаковые или разные номера позиций, могут находиться в соседних строках или в разных местах таблицы (в пределах одного раздела спецификации). Если объекты с одинаковой текстовой частью находятся в разных разделах спецификации, то они считаются разными.


## ShowExcludedObjects - Показывать только исключенные объекты

Тип данных: BOOL
Синтаксис Automation:
```
ShowExcludedObjects = Object.ShowExcludedObjects    Получить свойство (* )
Object.ShowExcludedObjects = ShowExcludedObjects    Установить свойство (* )
Object.SetShowExcludedObjects( ShowExcludedObjects )    Получить свойство (**)
iObject.SetShowOnSheet (ShowOnSheet)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_ShowExcludedObjects( &ShowExcludedObjects )    Получить свойство
Object.put_ShowExcludedObjects( ShowExcludedObjects )    Установить свойство
```


## ShowOnSheet - Показывать на листе

Тип данных: BOOL
Синтаксис Automation:
```
ShowOnSheet = iObject.ShowOnSheet    Получить свойство (* )
iObject.ShowOnSheet = ShowOnSheet    Установить свойство (* )
ShowOnSheet = iObject.GetShowOnSheet()    Получить свойство (**)
iObject.SetShowOnSheet (ShowOnSheet)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_ShowOnSheet (&ShowOnSheet)    Получить свойство
iObject->put_ShowOnSheet (ShowOnSheet)    Установить свойство
Значения свойства:
TRUE    - описание отображается на чертеже,
FALSE    - описание не отображается на чертеже.
```
Примечание:
1. Свойство позволяет отобразить или скрыть спецификацию в чертеже.
2. Свойство работает только в чертеже.


## SpecificationDocumentName - Имя подключенного файла документа спецификации

Тип данных: BSTR
Синтаксис Automation:
```
DocumentName = iObject.SpecificationDocumentName    Получить свойство (* )
iObject.SpecificationDocumentName = DocumentName    Установить свойство (* )
DocumentName = iObject.GetSpecificationDocumentName()    Получить свойство (**)
iObject.SetSpecificationDocumentName (DocumentName)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_SpecificationDocumentName (&DocumentName)    Получить свойство
iObject->put_SpecificationDocumentName (DocumentName)    Установить свойство
```
Примечание:
1. Свойство позволяет получить и установить полное имя файла документа спецификации подключенной к данному чертежу или сборке. Доступно только для чертежа или сборки.
2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


## SpecificationStyle - Стиль спецификации

Тип данных: указатель на интерфейс ISpecificationStyle cтиля спецификации
Синтаксис Automation:
```
Style = iObject.SpecificationStyle    Получить свойство (* )
Style = iObject.GetSpecificationStyle()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_SpecificationStyle( &Style )    Получить свойство
```
Примечание:
1. Полученный интерфейс отражает содержимое стиля в библиотеке стилей для данного описания на момент получения и в дальнейшем не отслеживает изменений в библиотеке стилей.
2. Свойство доступно только для чтения.


## SpecificationTuning - Настройки спецификации

Тип данных: указатель на интерфейс ISpecificationTuning настроек спецификации
Синтаксис Automation:
```
SpecificationTuning = iObject.SpecificationTuning    Получить свойство (* )
SpecificationTuning = iObject.GetSpecificationTuning()    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_SpecificationTuning (&SpecificationTuning)    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## StyleID - Номер стиля в библиотеке стилей

Тип данных: long
Синтаксис Automation:
```
StyleID = iObject.StyleID    Получить свойство (* )
iObject.StyleID = StyleID    Установить свойство (* )
StyleID = iObject.GetStyleID()    Получить свойство (**)
iObject.SetStyleID (StyleID)    Установить свойство (**)
```
Синтаксис COM:
```
iObject->get_StyleID (&StyleID)    Получить свойство
iObject->put_StyleID (StyleID)    Установить свойство
```
Примечание:
1. Свойство позволяет получить и установить номер стиля в библиотеке стилей, из которой будет взят стиль спецификации для данного описания (см. LayoutName).
2. После изменения параметров оформления нужно вызвать метод Update, чтобы новые данные вступили в силу.


## Update - Изменить описание

Синтаксис Automation:
```
BOOL Update();
```
Синтаксис COM:
```
HRESULT Update ([out, retval] BOOL* Result);
```
Примечание:
Метод устанавливает новые параметры для описания спецификации.
