BIM Coordinator Program (INT) April 22, 2024
Find the next step in your career as a Graphisoft Certified BIM Coordinator!
Archicad C++ API
About Archicad add-on development using the C++ API.

getting camera's position + direction from Navigator View.

Anonymous
Not applicable
Hello,

I would like to retrieve the camera's position and direction from each of the entries under "Navigator - View Map". Currently I'm able to retrieve the API_NavigatorItem item, however it seems that
the camId isn't filled in.
-		items[0]	0x00000000125496e0 {name=0x00000000125496e0 "Demo with all layers" autoTextedName=0x0000000012549760 "Demo with all layers" uiId=0x00000000125497e0 "" ...}	API_NavigatorItem *
+		name	0x00000000125496e0 "Demo with all layers"	char [128]
+		autoTextedName	0x0000000012549760 "Demo with all layers"	char [128]
+		uiId	0x00000000125497e0 ""	char [128]
+		guid	{time_low=973274031 time_mid=59370 time_hi_and_version=18688 ...}	API_Guid
+		db	{typeID=APIWind_3DModelID index=0 databaseUnId={...} ...}	API_WindowInfo
		floorNum	0	short
		vType	0	short
		filler_1	0	int
+		camId	{time_low=0 time_mid=0 time_hi_and_version=0 ...}	API_Guid
		mapId	API_UndefinedMap	API_NavigatorMapID
		itemType	API_PerspectiveNavItem	API_NavigatorItemTypeID
+		guid2	{time_low=0 time_mid=0 time_hi_and_version=0 ...}	API_Guid
		owner	0	int
		customName	1 ''	unsigned char
		customUiId	0	unsigned char
		filler_2	0	short
+		filler_3	0x0000000012549f00	int [6]
I assume that once I get a proper camId. Then I would need to do something like the below code:
				API_Element element;
				BNZeroMemory( &element, sizeof(API_Element));
				element.header.guid = camId;					// Passing the camId
				GSErrCode err = ACAPI_Element_Get(&element);
				if ( err == NoError )
				{
					// check the element.camera or cameraset for the parameters.
				}	
Is this the right way of going about it? If so how can I get a valid camId? If not what is an alternative way of accomplishing the above?

Thanks,
Ian
0 REPLIES 0
Learn and get certified!