to modify the graphic of e.g. the rack seving unit you could change the graphic in your class object, either manually or by importing a graphic file through SimTalk.
Then each new instance will inherit this modified custom graphic.
For adapting the rack graphic in the already mentioned HBW library we use SimTalk to create the geometry parts and position them in the rack object. There are basically two ways of doing so:
a) you can use direct SimTalk functions like <object>._3D.createCuboid(...) to create simple geometries of your 3D object. Please read also the online help, chapter "Built-in Methods for creating 3D shapes"
b) you can also use the function <object>._3D.createIndexedFaceSet(...) for creating your geometries, here composed of a list of facets. This is an advanced approach, suitable for complex shapes. Again the online help gives more details.
Once you have the static 3D geometry of your object composed, you most probably need to adapt the MU animation. you can fill the positioning parameter of MU animations into a table and, once finished, use the table to assign the MU animation to your object:
Please have a look to the first three methods of the object GenericRack in the HBW3D library for use cases of the above mentioned concepts.