Getting Data from xPresso Nodes

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/01/2012 at 12:29, xxxxxxxx wrote:

Hi,

Originally posted by xxxxxxxx

GeData tData = new GeData();
node.GetParameter(new DescID(C4dApi.XXX), tData, C4d.DESCFLAGS_GET.DESCFLAGS_GET_0)
Datatype something = tData.Get"Datatype"();

Here's how to make this works (C++ code) :

#include "..\modules\gv\expressiontag\res\description\gvdynamic.h"
#include "gvbase.h"
  
const String title = node->GetTitle(); // Get node name
  
GeData data;
// Get dynamic type
node->GetParameter(DescID(GV_DYNAMIC_DATATYPE), data, DESCFLAGS_GET_0);
LONG type = data.GetLong();
bool res = type == ID_GV_DATA_TYPE_REAL;
  
// Get comment text
node->GetParameter(DescID(ID_GVBASE_REMARK), data, DESCFLAGS_GET_0);
const String remark = data.GetString();

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/01/2012 at 12:40, xxxxxxxx wrote:

Thanks for your fast reply! 🙂 Very very big thanks!

One additional question, is there a list or table or something to look up this "GV_DYNAMIC_DATATYPE" relations?
I cannot find anything about his in the documentation 😕 ...
Perhaps im just blind ? 😉

cheers!

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/01/2012 at 13:01, xxxxxxxx wrote:

Originally posted by xxxxxxxx

One additional question, is there a list or table or something to look up this "GV_DYNAMIC_DATATYPE" relations?
I cannot find anything about his in the documentation 😕 ...
Perhaps im just blind ? 😉

The GV data types are documented in the ID_GV_DATA_TYPEs enum.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 14/01/2012 at 05:04, xxxxxxxx wrote:

Thansk Yannick, have a nice weekend!

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 20/01/2012 at 07:12, xxxxxxxx wrote:

Hey, 
i got another question 🙂

Is it also possible to go from an xPresso Node back to the object in the c4d scene the xPresso Node is related to? 
For example something like if i have 3 cubes in my scene i can determine with the xpresso node which cube as a BaseObject im working on with the xPresso Node?

Cheers

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 20/01/2012 at 13:36, xxxxxxxx wrote:

Originally posted by xxxxxxxx

Is it also possible to go from an xPresso Node back to the object in the c4d scene the xPresso Node is related to? 
For example something like if i have 3 cubes in my scene i can determine with the xpresso node which cube as a BaseObject im working on with the xPresso Node?

Yes, retrieving the node's parameter with DescID(GV_OBJECT_OBJECT_ID) as explained in this post.
In your case you would just call GetParameter() instead.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 21/01/2012 at 13:28, xxxxxxxx wrote:

Hey thanks, 🙂
i already checked this post out. will let you know if this works! 🙂

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 07/02/2012 at 06:13, xxxxxxxx wrote:

Hey Yannick,

so you meant its done like this:

  
GeData data;  
data.SetBaseList2D(pRefObject); <- (expresso node object?)  
pNode->GetParameter(DescID(GV_OBJECT_OBJECT_ID), data, DESCFLAGS_GET_0);  
pNode.... ? -> Whats here to retrieve the node?   

Sorry for asking again but i think documentation is not very helpful here 😞

  1. There is no method "SetBaseList2D" existing - nowhere. I checked documentation and source code and api code.
  2. How can i retrieve the node object when i only get an id from the GetParameter method?

Cheers,
Oukie

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 07/02/2012 at 08:50, xxxxxxxx wrote:

Originally posted by xxxxxxxx

  1. There is no method "SetBaseList2D" existing - nowhere. I checked documentation and source code and api code.
  2. How can i retrieve the node object when i only get an id from the GetParameter method?

SetBaseList2D() is new in R13, SetBaseLink() was used before. But in your case you don't need this method; you just want to get the parameter data. It's used to set the data before calling SetParameter().

GetParameter() returns a state boolean if it succeed or not. The parameter data is assigned to t_data argument.
Here's how to retrieve the node object:

node->GetParameter(DescID(GV_OBJECT_OBJECT_ID), data, DESCFLAGS_GET_0);
BaseLink* link = data.GetBaseLink();
if (link)
    BaseList2D* obj = link->GetLink(doc); // Get node object

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/02/2012 at 01:33, xxxxxxxx wrote:

Thanks a lot Yannick.
This works like a charm 😄
Ah thats why i like the maxon guys 😉 You are so quick and competent.

Cheers.

PS: I think there should be a mailer list that notes you when functions like this changed in the api. 😃

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/02/2012 at 01:42, xxxxxxxx wrote:

Originally posted by xxxxxxxx

PS: I think there should be a mailer list that notes you when functions like this changed in the api. 😃

This is listed for each new release in a "API changes" page in the documentation. 🙂

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 08/02/2012 at 01:48, xxxxxxxx wrote:

Ah oke than my failure 😉 ... Will check this more often.