A class-based template provides some of the benefits of both a module class and a template. A class-based template can be based on any module class in the library. You create a class-based template by dragging a module class to a container under the Module Templates section in the DeltaV Explorer. Alternatively, you can create a template from scratch and indicate on the New module dialog that the template is to be based on a particular module class.
A class-based module template is nearly identical in function to a class-based module. They are both instances of a class. Recognizing the similarities makes it easier to understand the resultant Copy/paste and propagation behaviors of class-based templates. Class-based templates allow for the customization of a class to suit a particular application. For example: A configuration contains a class called ON_OFF_VALVE. This class is capable of handling many different kinds of ON_OFF valves (with variations in the number of outputs, number of inputs, NO/NC , permissives, interlocks, etc.). A particular application of the ON_OFF valve class is a 1 output, 2 input, NC valve. A class-based template can be created from class ON_OFF_VALVE and then the parameter values in the template can be set to suit this particular application. This removes the need to customize each instance of the class.
In addition, certain parameter values in the template may be protected so that they cannot be changed on copies of the template. The copies of the module template get their initial parameter values from the template but, as is the case for templates that are not class-based, changes to the parameter values in the class-based template do not propagate to the copies. By definition, the logic in a class-based template cannot be changed.
Module classes propagate changes to their structure and algorithm to any templates that are based on the class and to copies of the class-based template. Changes to a class-based template do not propagate to copies of the template. Only changes to the class can propagate to instances.