Thanks a lot @i_mazlov that's exactly what i needed.
however on one of the options for the dropdown i have a single Text input that spans across the whole attribute manager, now after i added the "STATICTEXT { SCALE_V; }" it eats up half the space in the image below
[image: 1703269667505-screenshot-2023-12-22-211432.png]
i tried to give it a Description id and treat it as any other parameter and hiding it using "c4d.DESC_HIDE", below is the layout of the whole tab
GROUP ADVANCED_TAB
{
SCALE_V;
STRING CUSTOM_TXT_PARAMETER{ ANIM OFF; CUSTOMGUI MULTISTRING; SCALE_V; WORDWRAP; };
GROUP{
COLUMNS 2;
LONG ANIMATION_CLONER_FROM { MIN 0; ANIM OFF; };
LONG ANIMATION_CLONER_TO { MIN 0; ANIM OFF; };
LONG ANIMATION_CLONER_SPAN { MIN 1; ANIM OFF; };
GROUP{
COLUMNS 1;
SEPARATOR ANIMATION_CLONER_SEPARATOR{ LINE; };
REAL ANIMATION_CLONER_MULTIPLIER { MIN 0.1 ; STEP 0.1 ; ANIM OFF; };
}
}
GROUP{
COLUMNS 2;
REAL SWEEP_PRO_RADIUS { UNIT METER ; STEP 0.1 ; MIN 0.1; ANIM OFF; };
REAL SWEEP_PRO_MULTIPLIER { MIN 0.1; ANIM OFF; };
}
STATICTEXT UI_FILLER{SCALE_V;}
GROUP{
COLUMNS 2;
LONG PRESET
{
ANIM OFF;
CYCLE
{
ANIMATION_CLONER;
SWEEP_PRO;
CUSTOM_INPUT;
}
}
}
}
but when i try to hide it from the "GetDDescription()" the description "description.GetParameterI(paramId)" is empty ! ,in the "GetDDescription()" in my source code i have the hiding for the other parameters implemented as well but didn't copy them to keep the snippet at minimum lines
def GetDDescription(self, node: c4d.GeListNode, description: c4d.Description,
flags: int) -> typing.Union[bool, tuple[bool, int]]:
if not description.LoadDescription(node.GetType()):
return False, flags
paramId: c4d.DescID = c4d.DescID(c4d.DescLevel(c4d.UI_FILLER, c4d.DTYPE_STRING, 0))
evalId: c4d.DescID = description.GetSingleDescID()
if (evalId and not paramId.IsPartOf(evalId)):
return True, flags
paramData: c4d.BaseContainer = description.GetParameterI(paramId) #paramData for the "c4d.UI_FILLER" is empty
if paramData is None:
return True, flags
# parameter ID_HIDE_CONDITION.
paramData[c4d.DESC_HIDE] = True if node[c4d.PRESET] == c4d.CUSTOM_INPUT else False
return True, flags | c4d.DESCFLAGS_DESC_LOADED