Graphisoft®

API Development KitVersion: 18

ACAPI_Element_Decompose

Multi-plane 지붕의 면들을 열거합니다.

    GSErrCode  ACAPI_Element_Decompose (
        const API_Guid&                     elemGuid,
        API_ElementDecomposerInterface*     elementDecomposer
    );

 

파라미터

elemGuid
[in] 분해할 요소의 식별자입니다. 현재 이것은 PolyRoof 요소이어야 합니다.
elementDecomposer
[in] 분해하는 동안 사용되는 호출자가 구현한 객체에 대한 인터페이스 포인터입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
elementDecomposer 포인터가 NULL이거나 elemGuid로 지정한 요소가 PolyRoof 타입이 아닙니다.
APIERR_BADID
elemGuid 파라미터가 유효한 요소를 식별하지 않습니다.

 

설명

이 함수를 사용하여 Multi-plane 지붕의 평면들을 Single-plane API_RoofType 요소들의 집합으로 열거합니다.

먼저 API_ElementDecomposerInterface의 파생 클래스를 구현할 필요가 있습니다. 이 클래스의 객체 인스턴스는 GeneratePartElement 메서드에 의해 콜백되는 ACAPI_Element_Decompose에게 전달되어야 합니다.

 

예제

API_ElementDecomposerInterface 타입의 클래스 선언:

class PolyRoofConverter : public API_ElementDecomposerInterface {
public:
    PolyRoofConverter (const API_Guid& polyRoofGuid);
    virtual GSErrCode   GeneratePartElement (const API_Guid& guid, const API_ElemPartId& partId,
                                             const API_Element& partElem, const API_ElementMemo& partMemo);
};

주어진 지붕 요소에 대한 분해 호출하기:

void DecomposeRoof (const API_Guid& roofGuid)
{
    API_Element element;
    BNZeroMemory (&element, sizeof (API_Element));
    element.header.guid = roofGuid;

    GSErrCode err = ACAPI_Element_Get (&element);
    if (err == NoError && element.roof.roofClass == API_PolyRoofID) {
        PolyRoofConverter polyRoofConverter (element.header.guid);
        err = ACAPI_Element_Decompose (element.header.guid, &polyRoofConverter);
    }
}

 

Element Test 예제 애드온의 snippet 함수들도 보십시오.

 

요구사항

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

 

참고사항

API_ElementDecomposerInterface
API_RoofType
요소 관리자, API 함수