template instance the process begins at block 802 by identifying i e receiving selection of a set of one or more design objects to be constrained block 804 identifies or receives a template type to be used to constrain the objects block 806 identifies or receives a parameter set for the template instance and block 808 invokes a template instance generation process such as the process of fig4 to create a constraint set based on the design objects the template type and the parameter set block 810 creates the template instance as for example an object in a computer programming language the template instance includes the constraints created in block 808 a reference to the design objects and the parameters prepared in block 806 block 812 ads the template instance to a list of template instances fig9 is an illustrative drawing of a template instance generation sub process in accordance with some embodiments of the invention the template instance generation sub process is typically a user defined process and is ordinarily invoked by the template instance generation process of fig4 the instance generation sub process shown in fig9 is an example of a user defined sub process and is specific to particular types of user defined constraints including a matched parameters constraint and a relative orientation constraint which are related to semiconductor technology the instance generation sub process receives a strength parameter.