Graphisoft®

API Development KitVersion: 18

ACAPI_Attribute_Create

속성을 생성합니다.

    GSErrCode  ACAPI_Attribute_Create (
        API_Attribute*        attribute,
        API_AttributeDef*     defs
    );

 

파라미터

attribute
[in/out] 속성의 파라미터들입니다. 속성의 타입은 반드시 속성 헤더의 typeID 필드에 전달되어야 합니다. 속성 헤더의 인덱스 필드는 새로 생성된 속성에 대한 참조 인덱스를 리턴하기 위한 출력 파라미터로 사용됩니다.
defs
[in] 속성의 추가 파라미터들입니다. 속성의 타입에 따라서 이것을 전달하는 것이 필수일 수도 있고 선택일 수도 있습니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_ATTREXIST
동일한 이름을 가진 속성이 이미 존재합니다.
APIERR_BADID
유효하지 않은 속성 타입이 전달되었거나, 펜 또는 글꼴 속성 타입이 주어졌습니다.
APIERR_BADPARS
NULL 속성 포인터가 전달되었습니다.
APIERR_NOTMINE
당신은 팀워크 프로젝트에 대하여 뷰-전용 모드 중에 있습니다.

다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.

 

설명

이 함수는 속성 헤더의 typeID 필드에 의해 정의된 하나의 속성을 생성하는 데 사용합니다. 새로 생성된 속성의 참조 인덱스는 속성 헤더의 index 필드에 리턴됩니다.

당신은 펜과 글꼴 속성들을 생성할 수 없습니다.

또한 이 함수는 불일치성 문제가 있는지 데이터를 점검합니다. 만약 문제가 생기면 자동으로 고치거나, 또는 오류 코드가 생성됩니다.

만약 데이터베이스 안에 동일한 이름을 가진 속성이 존재하면, 기존 인덱스가 리턴될 것입니다. 매칭 프로시저는 속성 정의의 차이점들을 무시합니다. 동일한 이름을 가진 여러 개의 속성들은 허용되지 않습니다.

속성을 생성할 때, 적용 가능한 필드들을 반드시 채워야 합니다.

API_Attr_Head

 

typeID

필수

index

무시

flags

적용가능한 곳에서 필수

name

필수

API_AttributeTypeID

defs

API_LayerID

-

API_LinetypeID

ltype_dashItems (dashed line 타입의 경우)
ltype_lineItems(symbol line 타입의 경우)

API_FilltypeID

fill_lineItems (vector fill 타입의 경우)
fill_lineLength (vector fill 타입의 경우)
sfill_Items (symbol fill 타입의 경우)

API_CompWallID

cwall_compItems

API_MaterialID

-

API_CityID

-

API_LayerCombID

layer_statItems

API_ZoneCatID

zone_addParItems

API_MEPSystemID

-

당신이 할당하고 ArhiCAD에게 전달한 동적 데이터 structure 그 어느 것도 ArchiCAD는 해제하지 않는다는 사실이 중요합니다. 더 이상 필요하지 않으면 defs 파라미터에 전달된 핸들들을 폐기해야 할 책임이 당신에게 있습니다. 호환성을 이유로 ACAPI_DisposeAttrDefsHdls 함수를 사용하는 것을 권장합니다.

 

예제

API_Attribute      attrib;
API_AttributeDefs  defs;
short              ltypeIndex;
GSErrCode          err;

BNZeroMemory (&attrib, sizeof (API_Attribute));
BNZeroMemory (&defs, sizeof (API_AttributeDefs));

attrib.header.typeID = API_LinetypeID;
/* attrib.linetype 채움 */
/* 비-솔리드 라인타입들에 대한 defs 채움 */

err = ACAPI_Attribute_Create (&attrib, &defs);
ltypeIndex = attrib.header.index;

ACAPI_DisposeAttrDefsHdls (&defs);

 

요구사항

버전: API 1.3 또는 이후
헤더: ACAPinc.h

 

참고사항

API_Attribute, API_AttributeDef,
ACAPI_DisposeAttrDefsHdls,
속성 관리자, API 함수