I'm sorry to keep harping on about this but there's something odd here. In case the 'RSFILE' custom GUI was causing problems I tried to set sub-channels in the dome light colour. If you look at this code, having created a Redshift dome light I set the object's base color (in the Basic tab) using a two-level DescID method to set a sub-channel. This works correctly. Then I tried the same thing to set the dome light colour - but it doesn't work. Using a single-level DescID does work, however, to set the light intensity:
// two-level DescID works on BaseObject parameter
const DescID domeLightBaseColorId = DescID(DescLevel(ID_BASEOBJECT_COLOR), DescLevel(VECTOR_X));
param.SetFloat(0.25);
domeLight->SetParameter(domeLightBaseColorId, param, DESCFLAGS_SET::NONE);
// single-level DescID works correctly on Redshift dome light parameter
const DescID domeLightMultiplerId = DescID(DescLevel(REDSHIFT_LIGHT_DOME_MULTIPLIER));
param.SetFloat(5.0);
domeLight->SetParameter(domeLightMultiplerId, param, DESCFLAGS_SET::NONE);
// two level DescID does not work on Redshift dome light parameter
const DescID domeLightColorId = DescID(DescLevel(REDSHIFT_LIGHT_DOME_COLOR), DescLevel(VECTOR_Y));
param.SetFloat(0.5);
domeLight->SetParameter(domeLightColorId, param, DESCFLAGS_SET::NONE);
I also tried setting the dome light colour using a single-level DescID and this works without problems, but I couldn't set the individual sub-channels using the above method.
Either I'm being really dumb or there's something not working with this method when accessing a Redshift object.