Graphisoft®

API Development KitVersion: 18

ACAPI_Element_Tool

요소들 상에서 도구 커맨드들을 실행합니다.

    GSErrCode  ACAPI_Element_Tool (
        API_Elem_Head**     elemHead,
        Int32               nItem,
        API_ToolCmdID       typeID,
        void*               pars
    );

 

파라미터

elemHead
[in] 작업할 요소들을 포함하는 핸들입니다.
nItem
[in] elemHead에 전달된 요소들의 개수입니다.
typeID
[in] 도구 커맨드의 타입입니다. 가능한 값들은 아래 목록에 나와 있습니다.
pars
나중 사용을 위해 예약됨.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADDATABASE
현재 데이터베이스는 동작에 적절하지 않습니다.
APIERR_BADPARS
전달된 파라미터가 올바르지 않습니다; typeID
APIERR_MEMFULL
동작을 완료하기에는 메모리가 부족합니다.

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

 

설명

이 함수는 요소들의 집합에서 도구 커맨드들을 실행하는 데 사용합니다. 요소들은 elemHead 핸들에서 지정합니다. 만약 이 파라미터가 NULL이면 이 함수는 현재 선택한 것들을 기반으로 동작합니다. 각 도구의 기능은 Tools 메뉴의 해당 커맨드들과 동일합니다.

다음 도구 커맨드들을 이용할 수 있습니다:

API_ToolCmdID

의미

APITool_Group

전달된 요소들을 가지고 새로운 그룹을 생성합니다.

APITool_Ungroup

전달된 요소들을 그룹 해제합니다.

APITool_SuspendGroups

Suspend Groups 모드 On/Off를 전환합니다.

APITool_Lock

전달된 요소들을 잠급니다.

APITool_Unlock

전달된 요소들을 잠금해제합니다.

APITool_BringToFront

전달된 요소들을 다른 것들보다 위로 가져옵니다.

APITool_BringForward

전달된 요소들을 앞으로 이동시킵니다.

APITool_SendBackward

전달된 요소들을 뒤로 이동시킵니다.

APITool_SendToBack

요소들을 다른 것들에 의해 겹쳐지도록 뒤로 보냅니다.

APITool_ResetOrder

전달된 요소들의 기본 그리기 순서를 리셋합니다.

 

예제

// 모든 벽들을 함께 그룹화 함

GS::Array<API_Guid> elemList;
ACAPI_Element_GetElemList (API_WallID, &elemList);
if (!elemList.IsEmpty ()) {
    GSSize nElems = elemList.GetSize ();
    API_Elem_Head** elemHead = (API_Elem_Head **) BMAllocateHandle (nElems * sizeof (API_Elem_Head), ALLOCATE_CLEAR, 0);
    if (elemHead != NULL) {
        for (GSIndex i = 0; i < nElems; i++)
            (*elemHead)[i].guid = elemList[i];

        ACAPI_Element_Tool (elemHead, nElems, APITool_Group, NULL);

        BMKillHandle ((GSHandle *) &elemHead);
    }
}

 

요구사항

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

 

참고사항

API_Elem_Head,
요소 관리자, API 함수