---
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.
