I would suggest you start with one, the configuration group. There are several posts relating to this in here.
The principle if to extend the functionality of the BOM. You can have an item like PAINT-BLUE, PAINT-RED that is ties to teh configuration dimension. These can both be listed in the BOM with a PAINT configuration group. Then on the parent you have the configuration RED and BLUE, you tie both to the PAINT configuration group so that when the parent is made in RED only PAINT-RED is added to the BOM, and the same with BLUE picking PAINT-BLUE.
Configuration rules extend this by defining invalid combinations and determining the sequence combinations are made and therefore how the BOM is configured.