--- title: "Интерфейс IUserFolder" type: interface api: [api7] tags: [interface, api7, iuserfolder] sources: - iuserfolder.html --- *API интерфейсов. Версия 7 > Документ 3D  > Вспомогательные объекты, 3D-кривые и элементы тела  > 3D-кривые и элементы тела  > Интерфейс IModelObjects  > IModelObjects - свойства * ## Интерфейс IUserFolder Интерфейс пользовательской директории. Иерархия: IDispatch IKompasAPIObject IModelObject IUserFolder Данный интерфейс можно получить с помощью метода IUserFolders::Add. Версия: КОМПАС v18. ## Add - Создает новый элемент и добавляет его в коллекцию Синтаксис Automation: ``` LPDISPATCH Add(ksObj3dTypeEnum Type); ``` Синтаксис COM ``` HRESULT Add( ksObj3dTypeEnum Type, IModelObject * * Result ); Возвращаемое значение: - указатель на интерфейс IModelObject. Входные параметры: Type - тип объекта из перечисления ksObj3dTypeEnum ``` ## GetObjects - Получить набор объектов в виде SAFEARRAY DISPATCH - VT_ARRAY | VT_DISPATCH Синтаксис Automation: ``` VARIANT GetObjects(); ``` Синтаксис COM: ``` HRESULT GetObjects( VARIANT * Result ); Возвращаемое значение: Коллекция объектов возвращается в виде массива SAFEARRAY объектов LPDISPATCH (VT_ARRAY | VT_DISPATCH). Если возвращается один объект, то тип VARIANT-а будет VT_DISPATCH, если возвращается несколько объектов, то тип VARIANT-а будет VT_ARRAY | VT_DISPATCH. ``` ## SetObjects - Задать объекты Синтаксис Automation: ``` BOOL SetObjects( VARIANT Objects ); ``` Синтаксис COM: ``` HRESULT SetObjects( VARIANT Objects, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения. Входные параметры: Objects - набор объектов. ``` Примечание: •Если требуется передать один объект в наборе, его можно передать как VT_DISPATCH. •Если требуется передать несколько объектов в наборе, то нужно передать их как массив VT_ARRAY | VT_DISPATCH.