Eric,
You can do what you want with WSMSetValues.
I created a model "junk" that has an array of masses and an array of forces. I have a parameter "n" that sets how many masses and forces are there.
To change the number of array elements and their values you do
WSMSetValues["junk", {DotName["n"] -> 5,
DotName["mass", "m"] -> {11, 12, 13, 23, 43},
DotName["forceStep", "stepForce"] -> {1, 2, 3, 4, 5}}]
You use DotName to construct the WSM parameter names. You can view all the DotNames by doing this:
WSMModelData["junk", "ParameterNames"]
I do not believe that you can change one array value (for example mass[3].mass). I think its all or nothing -- you must send an array. You can query the values in Mathematica and send them back in with minor modifications but (as far as I know) you can't set one value. To query the values use
WSMModelData["junk", "ParameterValues"]
or you can grab just the mass values like this:
WSMModelData["junk", {"ParameterValues", "mass*.m"}]
to get
{mass[1].m->11,mass[2].m->12,mass[3].m->13,mass[4].m->23,mass[5].m->43}
Which you can parse and change and send back.
This should also solve your previous post about setting parameter arrays -- you need to enter arrays in the fields -- not values.
I hope this helps.
Regards
Neil