--- 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); ``` Примечание: Метод устанавливает новые параметры для описания спецификации.