--- title: "ksCreateAttr3DEx - Cоздать атрибут по номеру типа атрибута из библиотеки libname" type: guide api: [api7] domain: [3d] tags: [guide, api7, 3d, kscreateattr3dex] sources: - kscreateattr3dex.html --- *API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами * Аналог данной функции при использовании Automation - метод ksAttributeObject::ksCreateAttr3DEx. Синтаксис Automation: ``` ksAttribute3D * ksCreateAttr3DEx (LPDISPATCH pObj, LPDISPATCH pSourcePart, LPDISPATCH attr, double attrID, BSTR libname); Входные параметры: pObj - указатель на объект для которого создается атрибут, sourcePart - указатель на интерфейс вставки детали IPart, attr - указатель на структуру параметров атрибута ksAttribute, attrID - уникальный номер типа атрибута, libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута берется в документе. Возвращаемое значение: Указатель на атрибут IAttribute3D - в случае удачного завершения, 0 - в случае неудачи. ``` Примечание: 1. Если libname = NULL - тип атрибута берется в документе. 2. pObj - может быть равен: – NULL или указателю на интерфейс 3d документа IDocument3D - создается атрибут у документа; – указателю на интерфейс коллекции объектов дерева IFeatureCollection - атрибут групповой; – указателю на интерфейс объекта дерева IFeature - атрибут у определенного объекта. 3. Атрибут можно добавить ко всем объектам дерева построений, кроме верхнего компонента, сопряжений, группы сопряжений. 4. sourcePart - может быть: – NULL - атрибут будет создан в текущем документе, – указатель на интерфейс детали или подсборки вставленной в сборку IPart - атрибут будет создан в документе-источнике, – если sourcePart == pObj создается атрибут документа в источнике. 5. При использовании Unicode следует использовать функцию ksCreateAttr3DExW.