Derive templates and instances
- Last UpdatedAug 12, 2025
- 2 minute read
The following information describes effective implementation practices for template and instance derivation:
Best Practice
-
Derive a new template from the Master Template before deriving any instances. The IDE contains a folder called Default Templates that contains a set of master templates. Each of these are prefixed with "$Master_." Derive your templates from these master templates. You can create and move templates to any folder. ; your templates can exist in whichever folder you prefer.
If you modify one of the Master Templates, you can recreate it by deriving a new Master Template from a Base Template. These are located in the System folder. Base Templates are read-only.
When a template is derived from another template, the derived template inherits all of the characteristics of the parent template. If the parent template is modified, only the attributes and extensions that are locked will propagate to child templates. However, if you use object wizards, all changes to the object wizard propagate; there is no need to manually lock attributes.
-
Propagate Security: Changes made to the security control of any attribute or extension will not propagate. If new attributes, scripts, and extension are added, they always will propagate. The derived template can then take on additional functionality.
When an instance is derived from a template, changes made to the security control of an attribute will propagate, but changes made to the security for an extension will not propagate. If you deploy instances of a template and then modify the template, you will then need to re-deploy the instances. Before deploying changes, you may want to perform an upload of run\-time changes. The upload overwrites the initial attribute values with current run-time data.
-
Lock Attributes: Use Locking to propagate functionality when modifying a template. You can then unlock the attributes and extensions when the propagation is complete. There is no need to lock attributes if you are using object wizards.
-
Name the Object: When an instance of an object is first created, it is given a default name based on the parent template name and an incremental number (_XXX).
The name should be changed to meet the naming convention established for the project. If the instance is contained by another object instance, it will also have a hierarchical name. There are certain naming restrictions
Note: The instance name, and not the hierarchical name, is used by the Historian to store historical data.
It is important to properly name the object before it is deployed. The object hierarchy can be up to 10 levels deep for a maximum hierarchical name of 329 characters.