Hey Niko,
Just as you are not familiar with coding in python, I am unfamiliar with the builder. However, what you are saying sounds to be on track. I don't think you'd be too out in left field if you tried that, even if it failed. By that time someone who knows better than I might reply.
Just to throw it out there, there are a couple ways you could think about doing this in code. I think you'll see that they are conceptually similar to what you proposed doing in the builder, but allow you to extend those (probably basic) capacities.
In the simplest form, you might have a list of stimuli for each inner loop, that you could read from the hard drive. You then have a list in the program, and each element of that list is the path to one of those files. You could shuffle the list, iterate over it, and read in the stimulus lists one at a time. This will work if all of the stimuli are presented in roughly the same paradigm.
Slightly more sophisticated, you could use dictionaries. Dictionaries store data in key:value pairs, and the values can be anything (even another dictionary). So, you could set of a dictionary keyed by condition names, and stimulus lists as values. Or you could nest dictionaries---the outer dictionary would be keyed by condition name, and the inner dictionaries could be keyed by condition attributes. Maybe something like
OuterLoop = {
'ConditionA':
{'stimlist':[ ... ], 'instructions':" ... ", 'positions': [(x,y) ... ]},
'ConditionB':
{'stimlist':[ ... ], 'instructions':" ... ", 'positions': [(x,y) ... ]}
}
for stim in OuterLoop['ConditionA']['stimlist']:
...
Would loop over the stimlist for ConditionA for example.
The next option is a considerable jump in complexity, but I'll just mention it for the sake of planting the seed of what is possible. You could implement your experiment as a class, which you can initialize and then call conditions as sub-methods. This gives you the ultimately flexibility. Each condition might be a completely different paradigm---you don't have to loop each condition's stimuli list through the same code for presenting stimuli. You can call the conditions in any arbitrary order, because each condition's code is encapsulated. I did this for a project once---an implementation of a battery of tasks to be completed with young children where restarting, pausing, backing up, and potentially jumping around were all desirable features.
HTH,
Chris