Graphisoft®

API Development KitVersion: 18

ACAPI_Element_Merge_Remove

주어진 요소들로부터 병합 연결을 제거합니다.

    GSErrCode  ACAPI_Element_Merge_Remove (
        const API_Guid&     guid_Element1,
        const API_Guid&     guid_Element2
    );

 

파라미터

guid_Element1
[in] 1번째 요소 GUID입니다.
guid_Element2
[in] 2번째 요소 GUID입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_REFUSEDCMD
함수는 undoable이어야 합니다. 열린 undoable session이 없습니다.
APIERR_BADDATABASE, APIERR_NOTMINE
함수가 현재 데이터베이스에서 작동할 수 없습니다.
APIERR_BADINDEX
1개 이상의 전달된 ID들이 유효하지 않습니다.
APIERR_BADELEMENTTYPE
요소들 중 하나가 건설 요소 타입이 아닙니다.

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

 

설명

이 함수는 요소들 간의 병합 연결을 제겋바니다.

 

예제

void Do_Merge_Remove (void)
{
    API_ElemTypeID  typeID1;
    API_Guid        guid_Element1;

    if (!ClickAnElem ("Click on a construction element to remove the connection!", API_ZombieElemID, NULL, &typeID1, &guid_Element1)) {
        WriteReport_Alert ("No element was clicked.");
        return;
    }

    API_Element tmpElement;
    BNZeroMemory (&tmpElement, sizeof(tmpElement));
    tmpElement.header.guid = guid_Element1;
    if (ACAPI_Element_Get (&tmpElement) != NoError) {
        WriteReport_Alert ("No element was clicked.");
        return;
    }
    typeID1 = tmpElement.header.typeID;
    guid_Element1 = tmpElement.header.guid;
    if (typeID1 == API_SectElemID) {
        typeID1 = tmpElement.sectElem.parentID;
        guid_Element1 = tmpElement.sectElem.parentGuid;
    }

    API_ElemTypeID  typeID2;
    API_Guid        guid_Element2;
    if (!ClickAnElem ("Click on a second construction element to remove the connection with the first!", API_ZombieElemID, NULL, &typeID2, &guid_Element2)) {
        WriteReport_Alert ("No element was clicked.");
        return;
    }

    BNZeroMemory (&tmpElement, sizeof(tmpElement));
    tmpElement.header.guid = guid_Element2;
    if (ACAPI_Element_Get (&tmpElement) != NoError) {
        WriteReport_Alert ("No element was clicked.");
        return;
    }
    typeID2 = tmpElement.header.typeID;
    guid_Element2 = tmpElement.header.guid;
    if (typeID2 == API_SectElemID) {
        typeID2 = tmpElement.sectElem.parentID;
        guid_Element2 = tmpElement.sectElem.parentGuid;
    }

    GSErrCode err = ACAPI_Element_Merge_Remove (guid_Element1, guid_Element2);
    if (err != NoError) {
        if (err == APIERR_NO3D)
            WriteReport_Alert ("Only construction elements have merge connection!");
        else
            WriteReport_Alert ("ACAPI_Element_Merge_Remove failed: %d", err);
    }

    return;
}

 

요구사항

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

 

참고사항

ACAPI_Element_Merge_Elements
ACAPI_Element_Merge_GetMergedElements
API 함수