Adding new navigator item [SOLVED TEMPORARILY]

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2013-11-06
07:28 AM
- last edited on
‎2023-08-01
06:57 PM
by
Doreena Deng
‎2013-11-06
07:28 AM
I am trying to add a navigator item using ACAPI_Environment(APIEnv_NewNavigatorViewID, ...). I followed the sample code on the documentation and just modify the parent_child values to the first child (index 0) of navigation set (index 1), but unable to do so.
Here is my code
This codes loops to each child of navigator set.
This is the error that I got.
API_FolderNavItem and NULL instead of &navi_view, I am able to add it. But other than that, I failed. Is there a rule set for each type, like this type (API_NavigatorItemTypeID) can only be used on this map (API_NavigatorMapID)?
EDIT
I found out that you need to get and save an existing item by usingAPIEnv_GetNavigatorItemID as a new API_NavigatorItem. Then use it together with an API_NavigatorView on APIEnv_NewNavigatorViewID.
API_FolderNavItem in this case) within a folder and I am able to do so. I was able to create up to 3 subfolders (if written as a folder path: folder/subfolder1/subfolder2/subfolder3). But not on other item (I used API_StoryNavItem in this case).
EDIT 2
Is this the correctparent_child relationship?
Here is my code
if (navi_map_id == API_PublicViewMap && j == 0) { API_NavigatorItem navi_item; navi_item.mapId = API_PublicViewMap; navi_item.itemType = API_UndefinedNavItem; //navi_item.itemType = API_FolderNavItem; sprintf(navi_item.name, "sample navi item"); // sets the navigator view to default values API_NavigatorView navi_view; BNZeroMemory(&navi_view, sizeof(API_NavigatorView)); GS::Guid parent_child[2]; parent_child[0] = APIGuid2GSGuid((*items).guid); parent_child[1] = APIGuid2GSGuid(set.guid); err = ACAPI_Environment(APIEnv_NewNavigatorViewID, &navi_item, &navi_view, &parent_child); if (err != NoError) { DBPrintf("ERROR@%d: ACAPI_Environment(APIEnv_NewNavigatorViewID) error 0x%08X [%s]", __LINE__ - 4, err, ErrID_To_Name(err)); continue; //return err; } DBPrintf("Successfully added \"%s\".", navi_item.name); }
This is the error that I got.
ERROR@xxx: ACAPI_Environment(APIEnv_NewNavigatorViewID) error 0x81060065 [APIERR_BADID]If I use the
EDIT
I found out that you need to get and save an existing item by using
API_NavigatorItem navi_item; BNZeroMemory(&navi_item, sizeof(API_NavigatorItem)); navi_item.mapId = API_ProjectMap; ACAPI_Environment(APIEnv_GetNavigatorItemID, &some_guid, &navi_item); API_NavigatorView navi_view; BNZeroMemory(&navi_view, sizeof(API_NavigatorView)); //... add navi_view settings here GS::Guid parent_child[2]; //... parent_child guids here ACAPI_Environment(APIEnv_NewNavigatorViewID, &navi_item, &navi_view, &parent_child);Now that I can create it, the problem is I can't add it on a folder. I first tried to create a folder within a folder to see if it is possible to add an item (
EDIT 2
Is this the correct
: |-- parent_item_guid | |-- <APINULLGuid> | |-- child_item_guid | |-- *<-- new item here : : | '-- last_child_item_guid :
~ReignBough~
ARCHICAD 26 INT (from AC18)
Windows 11 Pro, AMD Ryzen 7, 3.20GHz, 32.0GB RAM, 64-bit OS
ARCHICAD 26 INT (from AC18)
Windows 11 Pro, AMD Ryzen 7, 3.20GHz, 32.0GB RAM, 64-bit OS
Labels:
- Labels:
-
Add-On (C++)
2 REPLIES 2

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2014-01-16 06:28 AM
‎2014-01-16
06:28 AM
I think this is some kind of a bug.
When ACAPI_Environment(APIEnv_NewNavigatorViewID) is called with the parentAndChildGuids argument, it is supposed to put the view on that location.
But I found ahack on this. After creating the said view, I just used ACAPI_Environment(APIEnv_SetNavigatorItemPositionID) to change the location of the newly created view to the parentAndChildGuids location. It took me a while to figure this out since APIEnv_SetNavigatorItemPositionID is not in the list of a API_EnvironmentID on ACAPI_Environment documentation.
Hope this helps.
When ACAPI_Environment(APIEnv_NewNavigatorViewID) is called with the parentAndChildGuids argument, it is supposed to put the view on that location.
But I found a
Hope this helps.
~ReignBough~
ARCHICAD 26 INT (from AC18)
Windows 11 Pro, AMD Ryzen 7, 3.20GHz, 32.0GB RAM, 64-bit OS
ARCHICAD 26 INT (from AC18)
Windows 11 Pro, AMD Ryzen 7, 3.20GHz, 32.0GB RAM, 64-bit OS

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎2014-01-16 03:07 PM
‎2014-01-16
03:07 PM
Hi,
Thanks for pointing out this issue!
We are working on this, trying to make easier to add new navigator item.
I'll fix it in the documentation also.
Regards,
Tibor
Thanks for pointing out this issue!
We are working on this, trying to make easier to add new navigator item.
I'll fix it in the documentation also.
Regards,
Tibor