Graphisoft®

API Development KitVersion: 18

ACAPI_Element_ChangeDefaultsExt

창, 문, 단면, 입면, 실내 입면, ChangeMarker, 디테일, 워크시트 기본 요소와 그것의 마커(들)의 기본 파라미터들을 변경합니다. 당신은 이 함수를 통해 커튼 월과 서브 요소의 기본 설정 값들도 변경할 수 있습니다.

    GSErrCode  ACAPI_Element_ChangeDefaultsExt (
        API_Element*             element,
        API_ElementMemo*         memo,
        const API_Element*       mask,
        UInt32                   nSubElems,
        API_SubElemMemoMask*     subElems
    );

 

파라미터

element
[in] 기본값들을 변경하고 싶은 일반 파라미터들을 포함하고 있습니다. element->header.typeIDAPI_WindowID, API_DoorID, API_CutPlaneID, API_ElevationID, API_InteriorElevationID, API_ChangeMarkerID, API_DetailID, API_WorksheetID, API_CurtainWallID, API_CurtainWallPanelID, API_CurtainWallFrameID, API_CurtainWallJunctionID 또는 API_CurtainWallAccessoryID가 될 수 있습니다.
memo
[in] 기본값들을 변경하고 싶은 특수 파라미터들을 포함하고 있습니다.
mask
[in] 변경하고 싶은 파라미터들을 지정하는 마스크를 포함하고 있습니다. 유효한 데이터를 포함하고 있는 메모 필드들은 항상 사용합니다.
nSubElems Modified in API 12
[in] 전달된 서브 요소들의 개수입니다. (0-3)
subElems Modified in API 12
[in]
일반적으로 1번째 마커는 기본값들을 변경하고 싶은 일반 마커 파라미터들을 포함하고 있습니다. 만약 이 파라미터가 NULL이 아니면, header.typeID는 반드시 API_ObjectID이어야 합니다. 마스크는 변경하고 싶은 마커의 파라미터들을 지정합니다. 유효한 데이터를 포함하고 있을 경우 이 필드들은 항상 사용합니다.
2번째 마커 요소는 해당하는 경우 Story Handle Marker입니다.
3번째 마커 요소는 실내 입면 요소의 공통 마커입니다.

 

리턴 값

NoError
함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
전달된 element 파라미터가 NULL입니다.
APIERR_BADID
요소 타입이 API_WindowID, API_DoorID, API_CutPlaneID, API_ElevationID, API_InteriorElevationID, API_ChangeMarkerID, API_DetailID, API_WorksheetID, API_CurtainWallID, API_CurtainWallPanelID, API_CurtainWallFrameID, API_CurtainWallJunctionID 또는 API_CurtainWallAccessoryID이어야 합니다.
APIERR_MEMFULL
동작을 완료하기에는 메모리가 부족합니다.

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

 

설명

이 함수는 창, 문, 단면, 입면, 실내 입면, ChangeMarker, 디테일, 또는 워크시트 요소 타입에 대한 실제 기본 설정 값들을 변경하는 데 사용합니다. ACAPI_Element_ChangeDefaults 함수의 대체 함수입니다.

마커 파라미터들은 선택사항입니다. NULL을 전달하여 변경하지 않은 채로 둘 수 있습니다. 파라미터들의 자세한 해석에 대해서는 ACAPI_Element_ChangeExt 함수를 참조하십시오.

mask의 해당 필드가 0이 아닌 파라미터들만 변경합니다. 요청한 타입은 헤더의 typeIDvariationID 필드에 의해 식별됩니다.

memo 파라미터는 API_WindowIDAPI_DoorID의 경우에만 사용합니다. 라이브러리 파트 기반 요소들의 대하여 memoNULL로 세트되어 있으면, 원래 라이브러리 파트의 기본 파라미터들을 사용합니다. 그 외에는 memoparams 필드로부터 값들을 가져옵니다.

실제 기본 설정 값들을 가져오려면 ACAPI_Element_GetDefaultsExt 함수를 사용하십시오.

변경하려고 표시된 요소 인수를 채우기 위해 다음 파라미터들만 사용하시면 됩니다. 마스크 값들을 올바르게 설정하기 위한 매크로들이 다음과 같이 있습니다:

ACAPI_ELEMENT_MASK_CLEAR

마스크의 모든 flag들을 지웁니다.

ACAPI_ELEMENT_MASK_SETFULL

마스크의 모든 flag들을 세트합니다.

ACAPI_ELEMENT_MASK_SET

하나의 요소 파라미터에 따라 마스크의 하나의 flag만 세트합니다.

ACAPI_ELEMENT_MASK_CHECK

하나의 요소 파라미터에 대하여 마스크를 체크합니다.

전달된 핸들들을 폐기하기 위해 ACAPI_DisposeElemMemoHdls를 호출하는 것을 잊지 마십시오.

 

예제

API_Element element;
API_MarkerMemoMask marker;

BNZeroMemory (&element, sizeof (API_Element));
BNZeroMemory (&marker, sizeof (API_MarkerMemoMask));

element.header.typeID = API_DoorID;
element.header.variationID = APIVarId_Generic;
marker.markType = (API_MarkerMemoMaskType) (APIMarkerMemoMask_MainMarker | APIMarkerMemoMask_NoParams);
GSErrCode err = ACAPI_Element_GetDefaultsExt (&element, NULL, 1UL, &marker);
if (err == NoError) {
    ACAPI_ELEMENT_MASK_CLEAR (marker.mask);
    ACAPI_ELEMENT_MASK_SET (marker.mask, API_ObjectType, pen);
    marker.markElem.object.pen = 3;
    err = ACAPI_Element_ChangeDefaultsExt (&element, NULL, NULL, 1UL, &marker);
}

 

요구사항

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

 

참고사항

API_Element, API_ElementMemo
ACAPI_Element_GetDefaultsExt, ACAPI_Element_ChangeDefaults, ACAPI_DisposeElemMemoHdls
ACAPI_Element_CreateExt, ACAPI_Element_ChangeExt
API_WindowType, API_CutPlaneType, API_ElevationType, API_InteriorElevationType, API_ChangeMarkerType, API_DetailType, API_WorksheetType
요소 관리자, API 함수