--- title: "Интерфейс ISpecificationObject" type: interface api: [api7] tags: [interface, api7, ispecificationobject] sources: - ispecificationobject.html --- *API интерфейсов. Версия 7 > Работа со спецификацией * ## Интерфейс ISpecificationObject Интерфейс объекта спецификации. Иерархия: IKompasAPIObject ISpecificationObject Описание: Различаются несколько типов объектов спецификации (см. ksSpecificationObjectTypeEnum). Данный интерфейс позволяет получить общие параметры для объектов спецификации и изменить общие параметры для базовых и вспомогательных объектов спецификации. Примечание: 1. После изменения параметров объекта спецификации требуется вызвать метод ISpecificationObject::Update. 2. Данный интерфейс можно получить у базового ISpecificationBaseObject и вспомогательного ISpecificationCommentObject объектов спецификации и через безопасный массив ISpecificationDescription::Objects для остальных типов объектов спецификации. ## AdditionalBlock - Номер блока дополнительных разделов Тип данных: long Синтаксис Automation: ``` AdditionalBlock = iObject.AdditionalBlock Получить свойство (* ) iObject.AdditionalBlock = AdditionalBlock Установить свойство (* ) AdditionalBlock = iObject.GetAdditionalBlock() Получить свойство (**) iObject.SetAdditionalBlock (AdditionalBlock) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_AdditionalBlock (&AdditionalBlock) Получить свойство iObject->put_AdditionalBlock (AdditionalBlock) Установить свойство ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## AdditionalColumns - Дополнительные колонки Тип данных: указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации Синтаксис Automation: ``` AdditionalColumns = iObject.AdditionalColumns Получить свойство (* ) AdditionalColumns = iObject.GetAdditionalColumns() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_AdditionalColumns (&AdditionalColumns) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## AdditionalSection - Номер дополнительного раздела Тип данных: long Синтаксис Automation: ``` AdditionalSection = iObject.AdditionalSection Получить свойство (* ) iObject.AdditionalSection = AdditionalSection Установить свойство (* ) AdditionalSection = iObject.GetAdditionalSection() Получить свойство (**) iObject.SetAdditionalSection (AdditionalSection) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_AdditionalSection (&AdditionalSection) Получить свойство iObject->put_AdditionalSection (AdditionalSection) Установить свойство ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## AttachedDocuments - Присоединенные документы Тип данных: указатель на интерфейс IAttachedDocuments коллекции присоединенных документов Синтаксис Automation: ``` AttachedDocuments = iObject.AttachedDocuments Получить свойство (* ) AttachedDocuments = iObject.GetAttachedDocuments() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_AttachedDocuments (&AttachedDocuments) Получить свойство ``` Примечание: 1. Получить коллекцию можно только для базовых и вспомогательных объектов спецификации, если в стиле для заданного раздела установлен признак ручное заполнение или чтение из основной надписи. 2. Свойство доступно только для чтения. ## BlockNumberByIndex - Номер блока Тип данных: long Синтаксис Automation: ``` BlockNumber = iObject.BlockNumberByIndex (index) Получить свойство (* ) BlockNumber = iObject.GetBlockNumberByIndex (index) Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_BlockNumberByIndex (index, &BlockNumber) Получить свойство Входные параметры: index - индекс объекта в общем массиве объектов спецификации. ``` Примечание: 1. Свойство позволяет получить номер блока объекта спецификации. 2. Один и тот же базовый объект спецификации может быть вставлен в спецификации несколько раз в нескольких блоках. 3. Свойство доступно только для чтения. ## Columns - Колонки объекта спецификации Тип данных: указатель на интерфейс ISpecificationColumns коллекции колонок объекта спецификации Синтаксис Automation: ``` Columns = iObject.Columns Получить свойство (* ) Columns = iObject.GetColumns() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_Columns( &Columns ) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Delete - Удалить объект Синтаксис Automation: ``` BOOL Delete(); ``` Синтаксис COM: ``` HRESULT Delete( [out, retval] BOOL* Result ); ``` Примечание: Метод позволяет удалить базовый или вспомогательный объект спецификации из документа и из коллекции. ## Edit - Редактировать объект Синтаксис Automation: ``` BOOL Edit(); ``` Синтаксис COM: ``` HRESULT Edit ([out, retval] BOOL* Result); ``` Примечание: Метод позволяет запустить процесс визуального редактирования для базового или вспомогательного объекта спецификации. ## FirstOnSheet - Размещать объект в начале нового листа спецификации Тип данных: BOOL Синтаксис Automation: ``` FirstOnSheet = iObject.FirstOnSheet Получить свойство (* ) iObject.FirstOnSheet = FirstOnSheet Установить свойство (* ) FirstOnSheet = iObject.GetFirstOnSheet() Получить свойство (**) iObject.SetFirstOnSheet (FirstOnSheet) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_FirstOnSheet (&FirstOnSheet) Получить свойство iObject->put_FirstOnSheet (FirstOnSheet) Установить свойство Значения свойства: TRUE - объект спецификации разместить в начале новой страницы спецификации, FALSE - объект спецификации разместить после предыдущего. ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## IncrementPosition - Позиция объекта возрастает Тип данных: BOOL Синтаксис Automation: ``` IncrementPosition = iObject.IncrementPosition Получить свойство (* ) iObject.IncrementPosition = IncrementPosition Установить свойство (* ) IncrementPosition = iObject.GetIncrementPosition() Получить свойство (**) iObject.SetIncrementPosition (IncrementPosition) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_IncrementPosition (&IncrementPosition) Получить свойство iObject->put_IncrementPosition (IncrementPosition) Установить свойство Значения свойства: TRUE - номер позиции объекта должен быть на единицу больше номера позиции предшествующего ему объекта, FALSE - номер позиции объекта совпадает с номером позиции предыдущего объекта. ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## NestedBlock - Номер блока вложенных разделов Тип данных: long Синтаксис Automation: ``` NestedBlock = iObject.NestedBlock Получить свойство (* ) iObject.NestedBlock = NestedBlock Установить свойство (* ) NestedBlock = iObject.GetNestedBlock() Получить свойство (**) iObject.SetNestedBlock (NestedBlock) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_NestedBlock (&NestedBlock) Получить свойство Object->put_NestedBlock (NestedBlock) Установить свойство ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## NestedSection - Номер вложенного раздела Тип данных: long Синтаксис Automation: ``` NestedSection = iObject.NestedSection Получить свойство (* ) iObject.NestedSection = NestedSection Установить свойство (* ) iObject.GetNestedSection() Получить свойство (**) iObject.SetNestedSection (NestedSection) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_NestedSection (&NestedSection) Получить свойство iObject->put_NestedSection (NestedSection) Установить свойство ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## ObjectType - Тип объекта Тип данных: из перечисления ksSpecificationObjectTypeEnum Синтаксис Automation: ``` ObjectType = iObject.ObjectType Получить свойство (* ) ObjectType = iObject.GetObjectType() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_ObjectType (&ObjectType) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Section - Номер раздела Тип данных: long Синтаксис Automation: ``` Section = iObject.Section Получить свойство (* ) Section = iObject.GetSection() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_Section (&Section) Получить свойство ``` Примечание: 1. При создании базового или вспомогательного объекта спецификации номер раздела передается в метод Add. Переместить уже созданные объекты из одного раздела в другой нельзя. 2. Свойство доступно только для чтения. ## State - Состояние объекта Тип данных: из перечисления ksSpecificationObjectStateEnum Синтаксис Automation: ``` State = iObject.State Получить свойство (* ) State = iObject.GetState() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_State (&State) Получить свойство Значения свойства: ssIndependent - объект создан в данном документе, ssFromInsert - объект пришел из вставки другого документа (фрагмента, детали или подсборки), ssEdit - объект из вставки другого документа, но редактировался в данном документе. ``` Примечание: Свойство доступно только для чтения. ## Subsection - Номер подраздела Тип данных: long Синтаксис Automation: ``` Subsection = iObject.Subsection Получить свойство (* ) iObject.Subsection = Subsection Установить свойство (* ) Subsection = iObject.GetSubsection() Получить свойство (**) iObject.SetSubsection (Subsection) Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_Subsection (&Subsection) Получить свойство iObject->put_Subsection (Subsection) Установить свойство ``` Примечание: 1. Свойство доступно только для базового и вспомогательного объекта спецификации. 2. Изменение этого свойства вступит в силу после вызова метода ISpecificationObject::Update. ## UniqueNumber - Уникальный номер, присваивается при создании Тип данных: double Синтаксис Automation: ``` UniqueNumber = iObject.UniqueNumber Получить свойство (* ) Objects = iObject.GetBaseObjects() Получить свойство (**) ``` Синтаксис COM: ``` iObject->get_UniqueNumber (&UniqueNumber) Получить свойство ``` Примечание: Свойство доступно только для чтения. ## Update - Обновить данные Синтаксис Automation: ``` BOOL Update(); ``` Синтаксис COM: ``` HRESULT Update ([out, retval] BOOL* Result); ``` Примечание: После изменения параметров объекта спецификации требуется вызвать данный метод, чтобы новые данные попали в модельный объект спецификации. Если объект спецификации еще не создан, метод Update создает объект спецификации в документе. Для ускорения работы функции при массовом изменении спецификации рекомендуется воспользоваться методом ISpecificationDescription::NeedRebuild.