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

*API интерфейсов. Версия 7 > Документ  > Свойства *


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

Интерфейс получения/редактирования значения свойств
Иерархия:
IDispatch
IPropertyKeeper
Описание:
Позволяет получать и редактировать значения свойств объектов.
Примечание:
Дополнительный интерфейс. Данный интерфейс можно получить у IPart7, IBody7, IEmbodiment, IMacroObject, IInsertionObject или IKompasDocument2D посредством вызова метода IUnknown::QueryInterface (const GUID far& iid, void** pif).
•IPropertyKeeper - свойства
•IPropertyKeeper - методы


## GetComplexPropertyValue - Получить значение составного свойства

Синтаксис Automation:
```
BSTR GetComplexPropertyValue( IProperty * Property, BOOL * FromSource );
```
Синтаксис COM:
```
HRESULT GetComplexPropertyValue( IProperty * Property, BOOL * FromSource, BSTR * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения.
Входные параметры:
Property    - интерфейс свойства.
Выходные параметры:
FromSource    - признак получения значения свойства из источника.
```


## GetPropertyAdditionalStorage - Получить дополнительные данные, связанные со свойством

Синтаксис Automation:
```
LPDISPATCH GetPropertyAdditionalStorage( IProperty * Property,
BOOL Create,
BOOL * FromSource );
```
Синтаксис COM:
```
HRESULT GetPropertyAdditionalStorage( IProperty * Property,
BOOL Create,
BOOL * FromSource,
IUserDataStorage ** Result );
Возвращаемое значение:
указатель на интерфейс пользовательского хранилища с дополнительными данными для свойства.
Входные параметры:
Property    - указатель на интерфейс свойства,
Create    - создавать хранилище, если оно отсутствует.
Выходные параметры:
FromSource    - хранилище было получено из источника.
```
Примечание:
При первом изменении значения свойства дополнительные данные очищаются автоматически.


## GetPropertyValue - Получить значение свойства

Синтаксис Automation:
```
BOOL GetPropertyValue( LPDISPATCH Property, VARIANT * Value, BOOL BaseUnit, BOOL * FromSource );
```
Синтаксис COM:
```
HRESULT GetPropertyValue(IProperty* Property, VARIANT * Value, BOOL BaseUnit, BOOL * FromSource, BOOL * Result );
Входные параметры:
Property    - интерфейс свойства,
BaseUnit    - TRUE - значение в базовых единицах измерения (СИ), - FALSE - в настроенных единицах измерения,
Выходные параметры:
FromSource    - хранилище было получено из источника,
Value    - значение свойства.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## GetUserDataStoragesManager - Менеджер для работы с пользовательским хранилищем данных

Синтаксис Automation:
```
LPDISPATCH GetUserDataStoragesManager( BOOL FromSource );
```
Синтаксис COM:
```
HRESULT GetUserDataStoragesManager( BOOL FromSource, IUserDataStoragesMng** PVal);
Входные параметры:
FromSource    - TRUE вернуть менеджер из файла источника объекта, - FALSE - вернуть менеджер из файла владельца объекта.
Возвращаемое значение:
- Указатель на интерфейс менеджера пользовательских данных IUserDataStoragesMng,
```


## InsertHypertextReference - Добавить ссылку в свойство

Синтаксис Automation:
```
BOOL InsertHypertextReference( IProperty * Property,
IKompasAPIObject * Object,
ksHypertextTypeEnum Type,
BOOL Brackets,
long TextLineIndex,
long Precision,
double PropertyId;
```
Синтаксис COM:
```
HRESULT InsertHypertextReference( IProperty * Property,
IKompasAPIObject * Object,
ksHypertextTypeEnum Type,
BOOL Brackets,
long TextLineIndex,
long Precision,
double PropertyId,
BOOL * Result );
Входные параметры:
Property    - свойство, в которое добавляется ссылка,
Object    - объект, на свойство или текст которого ссылаемся,
Type    - тип ссылки,
Brackets    - добавлять скобки,
TextLineIndex    - индекс строки в тексте объекта,
Precision    - количество знаков после запятой,
PropertyId    - идентификатор свойства, на которое ссылаемся.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## IsComplexPropertyValue - Признак комплексного значения свойства

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


## Properties - Метаданные объекта

Тип данных: BSTR
Синтаксис Automation:
```
Properties = Object.Properties    Получить свойство (* )
Object.Properties = Properties    Установить свойство (* )
Properties = Object.GetProperties()    Получить свойство (**)
Object.SetProperties( Properties )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Properties( &Properties )    Получить свойство
Object.put_Properties( Properties )    Установить свойство
```


## SetComplexPropertyValue - Установить значение составного свойства

Синтаксис Automation:
```
BOOL SetComplexPropertyValue( IProperty * Property, BSTR Value );
```
Синтаксис COM:
```
HRESULT SetComplexPropertyValue( IProperty * Property, BSTR Value, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения.
Входные параметры:
Property    - интерфейс свойства,
Value    - xml-строка с описанием структуры значения составного свойства.
```


## SetPropertyValue - Установить значение свойства

Синтаксис Automation:
```
BOOL SetPropertyValue( LPDISPATCH Property, VARIANT Value, BOOL BaseUnit );
```
Синтаксис COM:
```
HRESULT SetPropertyValue(IProperty* Property, VARIANT Value, BOOL BaseUnit, BOOL * Result );
Входные параметры:
Property    - интерфейс свойства,
Value    - значение свойства,
BaseUnit    -TRUE - значение в базовых единицах измерения (СИ), - FALSE в настроенных единицах измерения.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


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

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