--- 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 ) Получить свойство ``` Примечание Свойство доступно только для чтения