Hi JJ,
It is possible to build SmartShapes to do this, but then the intelligence would be built into your shapes, and not "fitted afterwards" by DataGraphics. So the risk of hard-coding has to be worth it.
If you are only changing text color, then you can do it within a single shape, but if you need different colored rectangles, then you need to group several rectangles together.
Here's a rough structure of your shape, inside the ShapeSheet.
The group might have some data value:
Prop.Type = "A", "B" or "C"
Then you could build several user-defined cells to analyze that value:
User.SubBoxColor_1 = IF(STRSAME(Prop.Type,"A"), RGB(255,0,0), RGB(255,255,255)) '//...red or white
User.SubBoxColor_2 = IF(STRSAME(Prop.Type,"B"), RGB(0,255,0), RGB(255,255,255)) '//...green or white
User.SubBoxColor_3 = IF(STRSAME(Prop.Type,"C"), RGB(0,0,255), RGB(255,255,255)) '//...blue or white
Now, each subshape/box inside the group needs to reference the group values. So you need to know the group's ID, which you can find using the Developer toolbar and the Shape Name dialog.
See:
http://www.visguy.com/2009/07/15/whats-my-shapes-id/
and:
http://www.visguy.com/2015/06/19/how-to-show-the-developer-ribbon-tab-and-why/
Let's say the group's id is 316 for this example. Inside the ShapeSheets for each box, you would do this:
Box A
FillForegnd = GUARD(Sheet.316!User.SubBoxColor_1)
Box B
FillForegnd = GUARD(Sheet.316!User.SubBoxColor_2)
Box C
FillForegnd = GUARD(Sheet.316!User.SubBoxColor_3)
The GUARD protects the sub-box colors from being blasted if a user applies a color to the whole group.