I am not sure I fully understand the application but the first thing that comes to mind is using relations with an IF statement. This might get extensive but it does give you the options you are asking for.
I am working on a similar problem. To keep the model, and therefore the number of relations, simple, I determined that I need to do the analysis in the assembly with flexible models. That way, the same model can be used for multiple solutions, simplifying the overhead. At this point, I am having trouble with the syntax of where and how to assign parameters and relations. This will significantly effect where I do the queries for each object.