Merge Corona Render Elements via maxscript

Is it possible to access the “Merge…” Button under the Render Elements Tab via maxscript to link it to one of my buttons to quickly import renderelement lists.

pretty sure this is independent from corona but maybe somebody knows!

Thanks!

I’m using .ini files to do this. Now my scripts are heavily weighted to work only in my setup, but the general flow is to collect all of the values of each render element, then set them to my config file. For example this one collects the ‘essential’ element:


setINISetting masterFilePath txt_rlLayerName.text "element essential" ((cbx_reRenderElementEssentialDirect.checked as string) + " " + (cbx_reRenderElementEssentialIndirect.checked as string) + " " + (cbx_reRenderElementEssentialReflect.checked as string) + " " + (cbx_reRenderElementEssentialRefract.checked as string) + " " + (cbx_reRenderElementEssentialTranslucency.checked as string) + " " + (cbx_reRenderElementEssentialEmission.checked as string) + " " + (cbx_reRenderElementEssentialVolumetrics.checked as string) + " " + (cbx_reRenderElementEssentialDenoise.checked as string))

I can read the render setting in an example like this:


if filteredElement[1] == "essential" then
(
	elementData = GetINISetting masterFilePath ddl_rmCurrentRenderLayers.selected ("element essential")
	elementComponents = filterstring elementData " "

	cbx_reRenderElementEssentialDirect.checked = elementComponents[1] as booleanClass
	cbx_reRenderElementEssentialIndirect.checked = elementComponents[2] as booleanClass
	cbx_reRenderElementEssentialReflect.checked = elementComponents[3] as booleanClass
	cbx_reRenderElementEssentialRefract.checked = elementComponents[4] as booleanClass
	cbx_reRenderElementEssentialTranslucency.checked = elementComponents[5] as booleanClass
	cbx_reRenderElementEssentialEmission.checked = elementComponents[6] as booleanClass
	cbx_reRenderElementEssentialVolumetrics.checked = elementComponents[7] as booleanClass
	cbx_reRenderElementEssentialDenoise.checked = elementComponents[8] as booleanClass
)

then I use a function to create the actual element:


fn addRenderElementsPerLayer elementList sel =
(
	for i = 1 to elementList.count do
	(
		elementFiltered = filterString elementList[i] "_"
		if elementFiltered[1] == "essential" then
		(
			elementLayerData = GetINISetting masterFilePath sel ("element essential")
			elementComponents = filterstring elementLayerData " "

			if elementComponents[8] == "true" then
			(
				denoise = true
			)
			else
			(
				denoise = false
			)

			if elementComponents[1] == "true" do re.addrenderelement (CESSENTIAL_Direct elementName:"essentialDirect" useDenoise:denoise)
			if elementComponents[2] == "true" do re.addrenderelement (CESSENTIAL_Indirect elementName:"essentialIndirect" useDenoise:denoise)
			if elementComponents[3] == "true" do re.addrenderelement (CESSENTIAL_Reflect elementName:"essentialReflect" useDenoise:denoise)
			if elementComponents[4] == "true" do re.addrenderelement (CESSENTIAL_Refract elementName:"essentialRefract" useDenoise:denoise)
			if elementComponents[5] == "true" do re.addrenderelement (CESSENTIAL_Translucency elementName:"essentialTranslucency" useDenoise:denoise)
			if elementComponents[6] == "true" do re.addrenderelement (CESSENTIAL_Emission elementName:"essentialEmission" useDenoise:denoise)
			if elementComponents[7] == "true" do re.addrenderelement (CESSENTIAL_Volumetrics elementName:"essentialVolumetrics" useDenoise:denoise)
		)
	)
)

I know it’s not the one button approach you are after, but maybe it’s something that can point you in the right direction.