It's kind of weird that AbstractModel implements a Table interface but the Array interface (size, length, getindex, setindex, etc) behaves a like a vector of Params.
It would be really useful for AbstractModel to live up to its aspirations to be a real Table and allow itself to be indexed as such.
This has the potential to address #21 and #34 since it would allow for things like:
m = Model(obj)
m[.!m[:isconstant], :val] .= values
i.e. permitting both row and column indexing.
I will take a crack at it and submit a PR since this would solve a problem I am facing at the moment.