ACAPI_Element_Merge_Elements
주어진 요소들을 배열에 병합합니다.
GSErrCode ACAPI_Element_Merge_Elements ( const GS::Array<API_Guid>& guid_ElementsToMerge );
파라미터
- guid_ElementsToMerge
- [in] 병합할 요소들의 GUID들의 배열입니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_REFUSEDCMD
- 함수는 undoable이어야 합니다. 열린 undoable session이 없습니다.
APIERR_BADDATABASE
,APIERR_NOTMINE
- 함수가 현재 데이터베이스에서 작동할 수 없습니다.
APIERR_BADINDEX
- 전달된 ID들 중 1개 이상이 유효하지 않습니다.
APIERR_BADPARS
- 유효하지 않은 값이
guid_ElementsToMerge
파라미터에서 전달되었습니다. APIERR_BADELEMENTTYPE
- 배열 안에 건설 요소 타입이 아닌 요소가 있습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 주어진 요소들을 배열에 병합합니다.
예제
void Do_Merge_Elements (void) { API_SelectionInfo selectionInfo; API_Neig** selNeig; API_Element element; // 선택(Selection)을 가져옴 GSErrCode err = ACAPI_Selection_Get (&selectionInfo, &selNeig, true); if (err != NoError && err != APIERR_NOSEL) { ErrorBeep ("ACAPI_Selection_GetInfo", err); return; } BMKillHandle ((GSHandle *) &selectionInfo.marquee.coords); GS::Array<API_Guid> guid_ElementsToMerge; for (Int32 i = 0; i < selectionInfo.sel_nElemEdit; i++) { // 선택한 요소를 가져옴 BNZeroMemory (&element, sizeof(element)); element.header.guid = (*selNeig)[i].guid; if (ACAPI_Element_Get (&element) != NoError) continue; API_ElemTypeID tmpTypeID = element.header.typeID; API_Guid tmpGuid = element.header.guid; if (tmpTypeID == API_SectElemID) { tmpTypeID = element.sectElem.parentID; tmpGuid = element.sectElem.parentGuid; } guid_ElementsToMerge.Push (tmpGuid); } BMKillHandle ((GSHandle *) &selNeig); if (!guid_ElementsToMerge.IsEmpty ()) { GSErrCode err = ACAPI_Element_Merge_Elements (guid_ElementsToMerge); if (err != NoError) { if (err == APIERR_NO3D) WriteReport_Alert ("Elements To Merge can be construction elements only."); else WriteReport_Alert ("ACAPI_Element_Merge_Elements failed: %d", err); } } else { WriteReport_Alert ("There are no selected construction elements!\n"); } return; }
요구사항
- 버전: API 18 또는 이후
- 헤더: ACAPinc.h
참고사항
ACAPI_Element_Merge_Remove
ACAPI_Element_Merge_GetMergedElements
API 함수