1. A method performed by a computing device having a processor, the method comprising: with the processor, receiving from a user a template selection identifying a template to apply; selecting a property defined in the template, wherein the template sets one or more properties of an instance of an object type with which the template is associated; applying the selected template property to an object instance including: determining whether the template includes multiple levels of objects; in response to determining that the template includes multiple levels of objects, identifying at least one sub-object of the object instance that matches a hierarchical pattern described in the template; and applying properties of the sub-object specified in the template to the identified sub-object.