Contemporary solid modeling based CAD systems provide poor support for defining mechanical assemblies. The assembly definition methods are awkward and cumbersome to use. The resulting model does not capture any associations between the parts mating features. Feature-based part description can not only enhance the assembly design environment, but can also capture assembly mating information. This association between features allows design changes to be made to component parts even after the parts have been put into an assembly. Assemblies can also be validated by means of user-defined procedures and rules based on feature parameters.