Obaselist Group in MaterialData .res

On 08/08/2017 at 05:50, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R18 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Hello.

I have MaterialData and inside its res file I have used

INCLUDE Mbase;
GROUP Obaselist {
	//Params
}
  
GROUP ParamGroup1 {
	//Params
}
  
GROUP ParamGroup2 {
	//Params
}
  

I have some parameters and I add these parameters in ParamGroup2 via code using description->SetParameter e.t.c.

EDIT:
The problem is that these parameters are added in Obaselist instead of ParamGroup2.
What  is included in INCLUDE Mbase; and in GROUP Obaselist ?

It appears that I have ID conflicts with the included res files.
I have checked obaselist.h and mbase.h files but I didn't find any conflict there.

Thank you for your time.

On 09/08/2017 at 09:40, xxxxxxxx wrote:

Hi,

it's a bit difficult to judge without seeing the code you use to insert the parameter.

Here's how it works for me:

	Bool GetDDescription(GeListNode* node, Description* desc, DESCFLAGS_DESC& flags)
	{
		if (!desc->LoadDescription(node->GetType()))
			return false;
  
		const DescID groupID = DescLevel(ParamGroup2, DTYPE_GROUP, 0);
		const DescID cid = DescID(DescLevel(myparamid, DTYPE_STRING, 0));
		{
			BaseContainer bc = GetCustomDataTypeDefault(DTYPE_STRING);
			bc.SetString(DESC_NAME, "My String Param");
			desc->SetParameter(cid, bc, groupID);  // don't forget to provide correct group ID here
		}
  
		flags |= DESCFLAGS_DESC_LOADED;
		return SUPER::GetDDescription(node, desc, flags);
	}