Yes, my question on agent portrayal can apply to arbitrary objects
portrayal also. 
I think I have gotten my answer. The main point is the method
"setupPortrayals()" in GUIState does not need to know exactly what are
the objects or the number of the objects. It needs only to know the
classifications such as the classes of the objects then it uses
"setPortrayalForClass(..)" or " setPortrayalForAll(...) to tell the way
to portrayal them.
Thanks
Ming