I think the classic approach fits, too. The starting point is the answer of @Brenton King in this answer. In the source code editor get rid of the picklist description tags by pressing the icon, bottom left showing all together a hand, text picture and a red mark. Then you find in the if-condition the variable "cnt". That is the n-th item you want set a different setup time for. You can replace the variable with the number. The return value is the setup time for this item.
you can copy the two code lines of the if-statement and the return for each different n-th item you want to set a different setup time. In following code I have commented those lines and write "simple :" before the return. Uncomment them if you like the simple approach. Delete the next line starting with the variable setuptime then, too.
The unchanged code itself combines the different setup time values, if more than one condition becomes true. The last condition tests if the initial setup time variable value is changed. Then this value is returned as the setup time. Otherwise the setup time return value is zero. The command minutes(num value) returns the value in simulation time units - typically in seconds.
double setuptime = 0;
//int cnt = 300;
if (fmod(getinput(current),150) == 0)
// simple: return minutes(3);
setuptime += minutes(3);
if (fmod(getinput(current),450) == 0)
// simple: return minutes(5);
setuptime += minutes(5);
if (fmod(getinput(current),1000) == 0)
// simple: return minutes(12);
setuptime += minutes(12);
if (fmod(getinput(current),1750) == 0)
// simple: return minutes(4);
setuptime += minutes(4);
if(setuptime)
return setuptime;
else return 0;