This guide walks you through using and creating Symbols - customizable graphical components that combine visual representation with dynamic behavior and real-time data binding. Symbols provide reusable components that update automatically across all displays when modified.
Prerequisites:
Product Symbol Library:
Library.dbsln
file\Users\Public\Public Documents\<productName>\Templates
Solution Local Library:
The first five symbols in the library have wizards for quick customization:
These wizards guide you through appearance options (horizontal/vertical, color schemes, etc.) before placing the symbol.
Double-click any symbol to open configuration:
Property | Description |
---|---|
Is Linked With Library | Updates when library symbol changes |
Linked Size (Proportional) | Maintains size ratio with library |
Internal Dynamics | Lists animations within symbol |
Symbol Links | Parameter mappings for this instance |
Copy and Paste | Transfer configurations between symbols |
Apply | Save changes (auto-applies on close) |
Symbol parameters use simple binding:
Common wizard symbol parameters:
#STATE:Client.SimulationDigital
#VALUE:Tag.PlaceHolder.DoubleTag
#MIN:0
#MAX:100
:
becomes parameter name:
is default valueCreate a simple tank with level indicator:
#TagValue:Client.Second
#Min:0
#Max:100
#TagValue:Client.Second
Automatically use symbols when dropping tags:
Create symbols that bind to DataTemplate members:
For DataTemplate "PID" with Setpoint, PV, CV:
Expression: #TagValue:(Tag.Loop1).Setpoint
Expression: #TagValue:(Tag.Loop1).PV
Expression: #TagValue:(Tag.Loop1).CV
Using parentheses replaces only the tag name, keeping member references.
Best practice for portable symbols:
#TagName:Tag.PlaceHolder.IntegerTag
#TagName:(Tag.PlaceHolder.DoubleTag).Quality
Benefits:
Note: After customization, wizard no longer applies to that symbol.
To modify without library link:
Navigate to Displays → Symbols to:
Save as Image:
Export to Library:
Library.dbsln
Delete Symbols:
Reuse symbols from "In Solution" instead of Library
Link to library for consistent updates
Use parameters instead of fixed values
Test symbols with PlaceHolder tags first
Create folders to organize symbols
Use descriptive names for symbols and parameters
Document complex symbol behavior
Version control important symbols
Keep symbols simple - combine for complex displays
Expose key parameters only
Use consistent parameter naming (#State, #Value)
Provide defaults for all parameters
Rectangle with:
- FillColor: #State:0 (0=Gray, 1=Green, 2=Red)
- Visibility: #Enable:1
- Action: OpenPopup(#DetailDisplay:"Details")
TextBox group with:
- Value: #Tag:Tag.PlaceHolder.DoubleTag
- Format: #Format:"N2"
- Units: #Units:"°C"
Button with:
- Action: SetValue
- Target: #ControlTag:Tag.Command
- Value: #CommandValue:1
- Security: #Permission:"Operator"
Symbol not updating in displays
Parameters not working
#Name:Default
Symbol appears broken
Can't edit wizard symbol
This guide covered creating, configuring, and managing Symbols in your solution, from using pre-built library symbols to creating custom reusable components with dynamic behavior and parameter-based configuration.