Odoo 12
I am relatively certain that this is not possible at the moment - unless there is an app that does it - so this is more a suggestion for something that would be nice to have.
When using product variants, where the variants are only created when they are added to a sales order, the variant will be created without having a BoM.
It would be really practical if the Attribute Values could be tied to specific components/product templates, so that when a variant is created, it also creates a BoM for the variant, based on a "Base BoM" for the product, and components that match the Attribute Values that are chosen.
At the moment we have to "manually" specify a new BoM every time a new variant is created.