A Novel Virtual Product Modelling Framework For Design Automation In A Knowledge-Based Engineering Environment