Graphisoft®

API Development KitVersion: 18

APIDb_GetHotlinkNodeTreeID

주어진 핫링크 노드 하의 트리 구조를 가져옵니다.

    GSErrCode ACAPI_Database (
        APIDb_GetHotlinkNodeTreeID,
        const API_Guid*                                    hotlinkNodeGuid,
        GS::HashTable<API_Guid,GS::Array<API_Guid>>*       hotlinkNodeTree
    );

 

파라미터

hotlinkNodeGuid
[in] 부모 노드의 guid입니다.
hotlinkNodeTree
[out] 주어진 부모 노드 하의 트리 구조입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
파라미터들 중 하나 이상이 NULL입니다.

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

 

설명

이 함수는 프로젝트에서 사용한 핫링크들의 중첩된(nested) 노드 계층을 탐색하는 데 도움을 줍니다. 이 구조는 부모 노드와 자녀 노드들의 배열 쌍(pair)의 해시 테이블 형태로 표현됩니다.

트리의 최상위 노드는 hotlinkNodeGuid 파라미터로 정의됩니다. 이것은 보통 Hotlink Module 타입 또는 XRef 타입 핫링크 루트 노드입니다. (APIDb_GetHotlinkRootNodeGuidID 함수로 가져올 수 있음) 그러나 서브 트리를 요청했을 때에만 아무 노드가 될 수 있습니다.

 

예제

API_HotlinkTypeID type = APIHotlink_Module;
API_Guid hotlinkRootNodeGuid = APINULLGuid;
if (ACAPI_Database (APIDb_GetHotlinkRootNodeGuidID, &type, &hotlinkRootNodeGuid) == NoError) {
    GS::HashTable<API_Guid, GS::Array<API_Guid> > hotlinkNodeTree;
    if (ACAPI_Database (APIDb_GetHotlinkNodeTreeID, &hotlinkRootNodeGuid, &hotlinkNodeTree) == NoError) {
        if (hotlinkNodeTree.ContainsKey (hotlinkRootNodeGuid)) {
            ACAPI_WriteReport ("List of main level hotlink nodes:", false);
            const GS::Array<API_Guid>& nodeRefList = hotlinkNodeTree.Get (hotlinkRootNodeGuid);
            for (UInt32 i = 0; i < nodeRefList.GetSize (); i++) {
                char guidStr[64];
                APIGuid2GSGuid (nodeRefList[i]).ConvertToString (guidStr);
                ACAPI_WriteReport (guidStr, false);
            }
        } else {
            ACAPI_WriteReport ("No hotlink node was found", false);
        }
    }
}

 

핫링크 관련 코드 샘플들에 대해서는 Element_Test 예제 애드온에서 찾을 수 있습니다.

 

요구사항

버전: API 12 또는 이후
헤더: APIdefs_Database.h

 

참고사항

APIDb_GetHotlinkNodeID
APIDb_GetHotlinkNodesID
APIDb_GetHotlinkRootNodeGuidID
APIDb_GetHotlinkInstancesID
ACAPI_Database
API 함수