--- title: "ksCreateAttr3DExW - Cоздать атрибут по номеру типа атрибута из библиотеки libname (Unicode)" type: guide api: [api7] domain: [3d] tags: [guide, api7, 3d, kscreateattr3dexw] sources: - kscreateattr3dexw.html --- *API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами * Аналог данной функции при использовании Automation - метод ksAttributeObject::ksCreateAttr3DEx. Синтаксис Automation: ``` ksAttribute3D * LIB_FUNC ksCreateAttr3DExW (LPUNKNOWN pObj, IPart * pSourcePart, ksAttributeW * attr, double attrID, LPWSTR 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. При использовании ANSI следует использовать функцию ksCreateAttr3DEx.