APIEnv_UserWorkspaceID
팀워크 프로젝트의 클라이언트의 작업공간 데이터를 리턴합니다.
GSErrCode ACAPI_Environment ( APIEnv_UserWorkspaceID, API_WorkspaceInfo *workspaceInfo, short *userID, NULL );
파라미터
- workspaceInfo
- 입장했을 때 멤버에 대하여 할당된 작업공간 데이터입니다.
- userID
- 팀 클라이언트의 멤버 ID입니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
- 파라미터 중 1개 이상이
NULL
입니다. APIERR_NOPLAN
- 열린 프로젝트가 아닙니다.
APIERR_MEMFULL
- 메모리가 부족합니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 현재 클라이언트의 작업공간 정보를 가져오는 데 사용합니다. API 함수들이 데이터베이스에 접근하고 변경하는 부분이 사용자가 ArchiCAD의 UI로 할 수 있는 것과 동일하기 때문에, 이 정보는 매우 중요합니다.
예약된 층, 단면/입면, 레이어, 카메라 경로, 상세, 워크시트, 레이아웃 데이터베이스가 리턴됩니다. 이 함수는 클라이언트가 새로 생성한 프로젝트 구성요소들을 가져오지 않습니다. (은연중에 클라이언트의 작업공간에 추가됨) 그러나 팀 프로젝트로 아직 보내지 않습니다. (프로젝트 관리에 등록되지 않음)
더 이상 필요하지 않으면 내부 핸들들을 폐기하는 것을 잊지 마십시오.
예제
API_WorkspaceInfo workspaceInfo; API_StoryInfo storyInfo; Int32 i, ind; char buffer[256]; short userId = 0; BNZeroMemory (&workspaceInfo, sizeof (API_WorkspaceInfo)); GSErrCode err = ACAPI_Environment (APIEnv_UserWorkspaceID, &workspaceInfo, &userId, NULL); if (err == NoError) { ACAPI_WriteReport ("Stories:", false); if (workspaceInfo.nStories != 0) { BNZeroMemory (&storyInfo, sizeof (API_StoryInfo)); ACAPI_Environment (APIEnv_GetStorySettingsID, &storyInfo, NULL, NULL); for (i = 0; i < workspaceInfo.nStories; i++) { ind = (*workspaceInfo.stories)[i]; sprintf (buffer, " [%3d] \"%s\"", ind, (*storyInfo.data)[ind - storyInfo.firstStory].name); ACAPI_WriteReport (buffer, false); } BMKillHandle ((GSHandle *) &storyInfo.data); } } BMKillHandle ((GSHandle *) &workspaceInfo.stories); BMKillHandle ((GSHandle *) &workspaceInfo.layers); BMKillHandle ((GSHandle *) &workspaceInfo.sections); BMKillHandle ((GSHandle *) &workspaceInfo.camSets); BMKillHandle ((GSHandle *) &workspaceInfo.details); BMKillHandle ((GSHandle *) &workspaceInfo.worksheets); BMKillHandle ((GSHandle *) &workspaceInfo.layouts); BMKillHandle ((GSHandle *) &workspaceInfo.marquee.coords);
요구사항
- 버전: API 2.1 또는 이후
- 헤더: APIdefs_Environment.h