APINavigator_​ChangeNavigatorViewID

Sets the given Project Navigator item and its view settings.

    GSErrCode ACAPI_Navigator (
        APINavigator_ChangeNavigatorViewID,
        API_NavigatorItem*     navigatorItem,
        API_NavigatorView*     navigatorView
    );

 

Parameters

navigatorItem
[in] The navigator item identified with its guid.
navigatorView
[in] New view settings of the specified item (can be nullptr).

 

Return Values

APIERR_BADPARS
The specified navigator item doesn’t exist neither in Public View Map nor in My View Map (TeamWork mode).
APIERR_NOTMINE
You have no permission to change the item.
NoError
The function has completed with success.

For other common API errors see the API Errors document.

 

Remarks

Use this function to change a Project Navigator item’s name or ID and optionally its view settings. Only View Map items are modifiable.

This function is a non-undoable data structure modifier function. See more details on this topic at Command Overview.

 

Example


API_NavigatorItem navItem;
BNZeroMemory (&navItem, sizeof(API_NavigatorItem));
navItem.mapId = API_PublicViewMap;    //for performance
if (ACAPI_Navigator (APINavigator_GetNavigatorItemID, guid, &navItem)== NoError) {
        API_NavigatorView navView;
        BNZeroMemory (&navView, sizeof(API_NavigatorView));
    if (ACAPI_Navigator ( APINavigator_GetNavigatorViewID, &navItem, &navView) == NoError) {
        if (navView.layerStats != nullptr)
            BMhKill ((GSHandle*) &(navView.layerStats));
        if (navView.modelViewOpt != nullptr)
            BMKillPtr ((GSPtr*) &(navView.modelViewOpt));
        if (navView.dimPrefs != nullptr)
            BMKillPtr ((GSPtr*) &(navView.dimPrefs));

        //name
        if (navItem.customName) {
            navItem.customName = false;
        } else {
            navItem.customName = true;
            GS::UCopy (L("Name from API"), navItem.uName);
        }

        //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_Navigator (APINavigator_ChangeNavigatorViewID, &navItem, &navView);
    }
}

 

Requirements

Version: API 10 or later
Header: APIdefs_Navigator.h

 

See Also

ACAPI_Navigator,
API Functions