Persistent sub-object identifiers

Hey everyone,

I would like to create the following setup for a box:

In which a unique label or identifier can be tied to every face as such and have it persist through non-destructive transformations (rotation, translation or scaling).:
1 - Bottom; 2 - Top; 3->6 - Sides

A specific face could later be referenced and used through its identifiers in grasshopper or in a script.

In this case, face 3 will always be the “front” of the object, so a grasshopper script can move the box to the World Origin and align the “front” to the X axis, facing towards -Y. The steps of the operation could then be applied to other objects as well, maintaining their relative positions to the box.

Is such a thing possible in Rhino?