KB: Reduce repetitive documentation tasks with parameterized project template

Altium Designer Altium Designer
Repetitive documentation tasks can be minimized by utilizing parameterized project templates. Parameters can be defined and instantiated as text string objects within various document types of a project, a mechanism known as Special Strings. These documents, which can also serve as standalone templates, can be collectively managed as a project template for reuse across multiple projects. User-defined parameters can be specified at multiple levels, with priority rules in place to resolve any conflicts. Once defined, the corresponding Special Strings can be placed as text objects (Place » Text String) using domain-specific prefixes (e.g., '=' in schematics and '.' in PCB). Pre-defined Special Strings also vary across domains. The resolution of some parameters may depend on external factors or the current state of the project.

Solution Details

First and foremost, it is important to note that in Altium, each design is managed as a "project".  As such, it follows to establish and maintain a well-prescribed project template among your team/organization would streamline the workflow and help to deliver consistent, orderly design releases.
At the heart of the project template is how/where parameter indirection is applied within each document template, and in Altium, it goes by the name of "Special String" which you instantiate as a text string object.

Altium Designer supports Parameters at various levels of a project with priority to resolve any contention. For example, document-level parameters can be added to each schematic sheet in the Parameters tab of the Schematic editor Properties panel (available when nothing is selected). Project-level parameters can also be added to a project on the Parameters tab of the Project Options dialog (Project » Options).  Parameters that are named the same are resolved to the one defined at variant-level, schematic document-level, and project-level in that order of priority.
-  variant-level: defined in Variant Management dialog
-  document-level: defined on Parameter tab in Properties panel
-  project-level: defined on Parameters tab in roject Options dialog

The higher priority parameter (e.g. variant-level) can be overruled by lower priority (e.g. project-level) by setting the higher priority parameter value to '*'.

There are also system-defined parameters as well as its Special String syntax in each of functional domain described in each section of our manual below:
Schematics: Schematic Predefined Special Strings
PCB: PCB Placement & Editing Techniques
Draftsman: Working with Graphical Tools
BOM: Mapping Design Data into the BOM
Outjob: Preparing Manufacturing Data with Output Jobs

Once parameters defined, in schematic, PCB, or Draftsman, the corresponding Special Strings can be placed as text objects (Place » Text String).  A caveat worth noting here is that in each domain, supported pre-defined parameters and the Special String syntax vary due to historical reason, as some users are raising in BC#7126.  For example, Special String is denoted by '=' prefix in schematics but '.' prefix in pcb.  
Pre-defined parameters also vary across different domains. 

How some parameters are resolved depends on or limited by external factors and the state of project.
e.g.
CurrentTime and CurrentDate format depends on user's OS setting
ItemRevision resolves only on released document (and not on pre-released working copy) as such reported at BC#3125
VersionControl_RevNumber is not resolved if not in VCS or with some uncommitted local change

In some scenarios, system query functions such as copy() and length() may come in handy to truncate these special strings along with concatenate operator '+'

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.