ACAPI_Element_GetConnectedElements
주어진 요소에 연결된 요소들의 리스트를 리턴합니다.
GSErrCode ACAPI_Element_GetConnectedElements ( const API_Guid& guid, API_ElemTypeID connectedElemTypeID, GS::Array<API_Guid>* connectedElements, API_ElemFilterFlags filterBits = APIFilt_None, API_ElemVariationID variationID = APIVarId_Generic const API_Guid& renovationFilterGuid = APINULLGuid );
파라미터
- guid
- [in] 연결되어 있는 다른 요소들을 가진 요소의 식별자입니다.
- connectedElemTypeID
- [in] 가져올 연결된 요소들의 타입입니다. 현재 적용 가능한 타입들은 다음과 같습니다:
API_WindowID
,API_DoorID
(Wall 요소와 함께),API_SkylightID
(Roof 및 Shell 요소와 함께) - connectedElements
- [out] 가져온 연결된 요소들의 guid 리스트입니다.
- filterBits
- [in] 필터링을 위해 사용되는 flag들입니다. (ACAPI_Element_Filter를 보십시오) 기본값은
APIFilt_None
입니다. - variationID
- [in] 객체들에 대한 선택적인 variation ID입니다. 이 파라미터는 현재 무시합니다.
- renovationFilterGuid
- [in] 리노베이션 필터의 선택적인 글로벌 유일 식별자입니다. 이 파라미터는 현재 무시합니다.
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
- connectedElements 포인터가
NULL
입니다. APIERR_BADID
- guid 파라미터가 유효한 요소를 식별하지 않습니다. 또는 주어진 요소 타입이 요청한 타입의 요소들과 연결될 수 없습니다.
설명
이 함수는 주어진 타입과 variation을 가진 요소들을 가져오는 데 사용할 수 있습니다.
가져올 요소들은 주어진 요소와 소유권 관계에서 연결되어 있으며 filterbits
에 의해 정의된 기준과 일치합니다.
(ACAPI_Element_Filter의 표에서 설명하는 filterbits flag 값들을 보십시오)
이용 가능한 연결:
소유자 요소의 타입 (guid로 지정됨) | 연결된 요소 타입 (connectedElemTypeID) |
---|---|
API_WallID |
API_WindowID |
API_WallID |
API_DoorID |
API_RoofID |
API_SkylightID |
API_ShellID |
API_SkylightID |
주어진 벽 요소의 창 및 문들은 ACAPI_Element_GetMemo 함수로도 가져올 수 있습니다. (API_ElementMemo의 wallWindows, wallDoors 멤버들)
예제
// Shell 요소들의 Skylights를 나열함 GS::Array<API_Guid> shells; GSErrCode err = ACAPI_Element_GetElemList (API_ShellID, &shells); if (err == NoError) { GS::UniString reportString; for (GS::Array<API_Guid>::ConstIterator it = shells.Enumerate (); it != NULL; ++it) { API_Guid shellGuid = *it; GS::UniString shellGuidString = APIGuid2GSGuid (shellGuid).ToUniString (); GS::Array<API_Guid> skylights; err = ACAPI_Element_GetConnectedElements (shellGuid, API_SkylightID, &skylights); if (err == NoError) { if (skylights.IsEmpty ()) { reportString = GS::UniString::Printf ("Shell {%T} has no Skylights", shellGuidString.ToPrintf ()); } else { reportString = GS::UniString::Printf ("Skylights in Shell {%T}:", shellGuidString.ToPrintf ()); for (UIndex i = 0; i < skylights.GetSize (); i++) { API_Element element; BNZeroMemory (&element, sizeof (API_Element)); element.header.guid = skylights[i]; if (ACAPI_Element_Get (&element) == NoError) { API_LibPart libPart; BNZeroMemory (&libPart, sizeof (API_LibPart)); libPart.index = element.skylight.openingBase.libInd; if (ACAPI_LibPart_Get (&libPart) == NoError) { reportString.Append (" \""); reportString.Append (libPart.docu_UName); reportString.Append ("\""); } delete libPart.location; } } } } else { reportString = GS::UniString::Printf ("Failed to get Skylights for Shell {%T}", shellGuidString.ToPrintf ()); } ACAPI_WriteReport (reportString.ToCStr ().Get (), false); } }
요구사항
- 버전: API 15 또는 이후
- 헤더: ACAPinc.h
참고사항
ACAPI_Element_Filter, ACAPI_Element_GetElemList, ACAPI_Element_GetMemo
요소 관리자, API 함수