Graphisoft®

API Development KitVersion: 18

APIDb_NewDatabaseID

새로운 독립적인 디테일, 워크시트, 레이아웃, 또는 마스터 레이아웃 데이터베이스를 생성합니다.

    GSErrCode ACAPI_Database (
        APIDb_NewDatabaseID,
        API_DatabaseInfo*     databaseInfo,
        const GS::Guid*       parent,
        const GS::Guid*       child
    );

 

파라미터

databaseInfo Featuring API 10
[in/out] 생성할 데이터베이스의 파라미터들입니다.
parent
새로운 항목의 부모입니다.
child
만약 NULL이면, 새로운 항목이 실제 레벨 상에 있는 1번째 장소에 삽입될 것입니다. 그 외에는 child 이후에 삽입될 것입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_NOPLAN
열린 평면도 창이 없습니다.
APIERR_BADPARS
databaseInfoNULL입니다.
APIERR_REFUSEDPAR
전달된 typeIDAPIWind_DetailID, APIWind_WorksheetID, APIWind_LayoutID 또는 APIWind_MasterLayoutID가 아닙니다.
APIERR_GENERAL
새로운 데이터베이스를 생성할 수 없습니다.

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

 

설명

이 함수는 주어진 nameref 파라미터들을 이용하여 새로운 데이터베이스를 생성하는 데 사용합니다.
연관된 창이 열리지 않을 것입니다.

레이아웃 데이터베이스들의 경우, masterLayoutUnId에 기존 마스터 레이아웃을 지정해야 합니다.

만약 데이터베이스가 성공적으로 생성되면, 데이터베이스의 유일 ID가 databaseUnId 필드에 리턴됩니다.

 

예제

API_DatabaseInfo dbInfo;
BNZeroMemory (&dbInfo, sizeof (API_DatabaseInfo));
dbInfo.typeID = APIWind_DetailID;
sprintf (dbInfo.name, "Dooku 1");
sprintf (dbInfo.ref, "D01");

if (ACAPI_Database (APIDb_NewDatabaseID, &dbInfo, NULL) == NoError) {
    char msgStr[1024];
    sprintf (msgStr, "New detail database is created with unId:%d-%d", dbInfo.databaseUnId.id1, dbInfo.databaseUnId.id2);
    ACAPI_WriteReport (msgStr, true);
}

 

예제 2

이 예제는 Navigator_Test 테스트 애드온을 기반으로 하고 있습니다.
Int32 selected  = DGTreeViewGetSelected (dialogID, NavTreeView, DG_TVI_ROOT);
Int32 selParent = DGTreeViewGetItem (dialogID, NavTreeView, selected, DG_TVG_PARENT);
GS::Guid parent = APIGuid2GSGuid (NavigatorTestGlobals::Instance ().GetNavigatorItem (TruncateTo32Bit (DGTreeViewGetItemUserData (dialogID, NavTreeView, selParent))));
GS::Guid child  = APIGuid2GSGuid (NavigatorTestGlobals::Instance ().GetNavigatorItem (TruncateTo32Bit (DGTreeViewGetItemUserData (dialogID, NavTreeView, selected))));

API_DatabaseInfo                dbInfo;
BNZeroMemory (&dbInfo, sizeof (API_DatabaseInfo));
dbInfo.typeID = APIWind_LayoutID;
GS::ucscpy (dbInfo.name, L("This Layout is created through API.\0"));
dbInfo.masterLayoutUnId.id2 = 32;
ACAPI_Database (APIDb_NewDatabaseID, &dbInfo, &parent, &child);

 

요구사항

버전: API 6.1 또는 이후
헤더: APIdefs_Database.h

 

참고사항

API_DatabaseInfo
APIDb_DeleteDatabaseID, APIDb_ModifyDatabaseID, APIDb_GetDatabaseInfoID
APIDb_GetCurrentDatabaseID, APIDb_ChangeCurrentDatabaseID, APIDb_NewWindowID
ACAPI_Database, API 함수