Graphisoft®

API Development KitVersion: 18

APIEnv_ChangeNavigatorViewID

주어진 Project Navigator 항목과 그것의 뷰 설정들을 세트합니다.

    GSErrCode ACAPI_Environment (
        APIEnv_ChangeNavigatorViewID,
        API_NavigatorItem*     navigatorItem,
        API_NavigatorView*     navigatorView
    );

 

파라미터

navigatorItem
[in] guid로 식별되는 네비게이터 항목입니다.
navigatorView
[in] 지정한 항목의 새로운 뷰 설정들입니다. (NULL이 될 수 있음)

 

리턴 값

APIERR_BADPARS
지정한 네비게이터 항목이 Public View Map 또는 My View Map에 존재하지 않습니다. (팀워크 모드)
APIERR_NOTMINE
당신은 항목을 변경할 권한을 갖고 있지 않습니다.
NoError
함수가 성공적으로 완료되었습니다.

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

 

설명

이 함수를 이용하여 Project Navigator 항목의 이름 또는 ID를 변경할 수 있고 선택적으로 그것의 뷰 설정들도 변경할 수 있습니다. View Map 항목들만 변경할 수 있습니다.

 

예제

API_NavigatorItem navItem;
BNZeroMemory (&navItem, sizeof(API_NavigatorItem));
navItem.mapId = API_PublicViewMap;    //for performance
if (ACAPI_Environment (APIEnv_GetNavigatorItemID, guid, &navItem)== NoError) {
        API_NavigatorView navView;
        BNZeroMemory (&navView, sizeof(API_NavigatorView));
    if (ACAPI_Environment ( APIEnv_GetNavigatorViewID, &navItem, &navView) == NoError) {
        if (navView.layerStats != NULL)
            BMhKill ((GSHandle*) &(navView.layerStats));
        if (navView.modelViewOpt != NULL)
            BMKillPtr ((GSPtr*) &(navView.modelViewOpt));
        if (navView.dimPrefs != NULL)
            BMKillPtr ((GSPtr*) &(navView.dimPrefs));

        //name
        if (navItem.customName) {
            navItem.customName = false;
        } else {
            navItem.customName = true;
            CHCopyC ("Name from API", navItem.name);
        }

        //uiId
        if (navItem.customUiId) {
            navItem.customUiId = false;
        } else {
            navItem.customUiId = true;
            CHCopyC ("ID from API", navItem.uiId);
        }

        // settings
        // layer combination
        short attributeCount, i;
        API_Attribute attribute;
        err = ACAPI_Attribute_GetNum (API_LayerCombID, &attributeCount);
        if (err == NoError) {
            BNZeroMemory (&attribute, sizeof (API_Attribute));
            attribute.header.typeID = API_LayerCombID;
            for (i = attributeCount; i > 0; --i) {
                attribute.header.index = i;
                err = ACAPI_Attribute_Get (&attribute);
                if (err == NoError) {
                    CHTruncate (attribute.header.name, navView.layerCombination, sizeof (navView.layerCombination));
                    break;
                }
            }
        }

        // model view options
        err = ACAPI_Attribute_GetNum (API_ModelViewOptionsID, &attributeCount);
        if (err == NoError) {
            BNZeroMemory (&attribute, sizeof (API_Attribute));
            attribute.header.typeID = API_ModelViewOptionsID;
            for (i = attributeCount; i > 0; --i) {
                attribute.header.index = i;
                err = ACAPI_Attribute_Get (&attribute);
                if (err == NoError) {
                    CHTruncate (attribute.header.name, navView.modelViewOptName, sizeof (navView.modelViewOptName));
                    break;
                }
            }
        }

        // dimension styles
        err = ACAPI_Attribute_GetNum (API_DimStandID, &attributeCount);
        if (err == NoError) {
            BNZeroMemory (&attribute, sizeof (API_Attribute));
            attribute.header.typeID = API_DimStandID;
            for (i = attributeCount; i > 0; --i) {
                attribute.header.index = i;
                err = ACAPI_Attribute_Get (&attribute);
                if (err == NoError) {
                    CHTruncate (attribute.header.name, navView.dimName, sizeof (navView.dimName));
                    break;
                }
            }
        }

        // scale
        navView.drawingScale = 123;

        err = ACAPI_Environment (APIEnv_ChangeNavigatorViewID, &navItem, &navView);
    }
}

 

요구사항

버전: API 10 또는 이후
헤더: APIdefs_Environment.h

 

참고사항

ACAPI_Environment,
API 함수