# Dynamic Symbol Based On Alarm Priority

**URL:** <https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936>\
**Category:** Ignition\
**Tags:** ignition81, vision\
**Created:** [August 21, 2024, 12:58pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936 "2024-08-21T12:58:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Juan\_Sanchez](https://avatars.discourse-cdn.com/v4/letter/j/74df32/32.png) [@Juan\_Sanchez](https://forum.inductiveautomation.com/u/Juan_Sanchez)\
**Post date:** [August 21, 2024, 12:58pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/1 "2024-08-21T12:58:07Z")

</div>

Trying to toggle visibility on 4 symbols using "Highest active priority" of a tag. Currently I made 4 symbols and 4 template parameters. One for critical, high, low, medium all booleans. I also adjusted my alarm journal to where low=1 and critical=4. When I go to drop my template on a page and make an expression for my properties my visibility is constantly going between true and false. Attached is the expression I am currently using.  
`if({[default]Test Tag/Alarms.HighestActivePriority}=4, {Root Container.Level 1 Mixer.MixerCriticalAlarmVisibility}=true, {Root Container.Level 1 Mixer.MixerCriticalAlarmVisibility}=false)`  
 ![Screenshot 2024-08-21 075652](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/d/3d5b19dea6d498c81fb3f1d79f13a0e705b367b3.png)  
 ![Screenshot 2024-08-21 075707](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/c/fc0ec431a4bb51116a34b2aec517c1eecdd388f5.png)

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [August 21, 2024, 1:01pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/2 "2024-08-21T13:01:00Z")

</div>

Post code, man, not pictures of code! That way we can copy it into our answers and edit it. See [Wiki - how to post code on this forum](https://forum.inductiveautomation.com/t/wiki-how-to-post-code-on-this-forum/77831).

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [August 21, 2024, 1:05pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/3 "2024-08-21T13:05:13Z")

</div>

To answer your question, you are trying to write a script in an expression. You can't.  
Think of the Expression Language as being like Excel functions. The `if()` expression returns one thing if true and another if false. You can't create a variable assignment in there.

Tip: the Expression Language doesn't care about line breaks. You can wrap your function in the editor which will make it much easier to read and maintain. e.g.,

```python
if(
    test_condition,
    what_to_return_if_true,
    what_to_return_if_false
)

```

---

<div class="post-metadata">

**Author:** ![Juan\_Sanchez](https://avatars.discourse-cdn.com/v4/letter/j/74df32/32.png) [@Juan\_Sanchez](https://forum.inductiveautomation.com/u/Juan_Sanchez)\
**Post date:** [August 21, 2024, 1:13pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/4 "2024-08-21T13:13:30Z")

</div>

Sorry, I followed the link you sent and changed it to code rather than a picture. The if statement I am using is from logic under the expression option of binding.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [August 21, 2024, 1:21pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/5 "2024-08-21T13:21:25Z")

</div>

Tidied up code:

```python
if(
    {[default]Test Tag/Alarms.HighestActivePriority} = 4, 
    {Root Container.Level 1 Mixer.MixerCriticalAlarmVisibility} = true, 
    {Root Container.Level 1 Mixer.MixerCriticalAlarmVisibility} = false
)

```

As explained, you can't do variable assignment in expressions. The `= true` and `= false` are not allowed.

Instead, create a binding on `Root Container.Level 1 Mixer.MixerCriticalAlarmVisibility` which will just contain the expression,  
`{[default]Test Tag/Alarms.HighestActivePriority} = 4`  
That will evaluate to either `true` or `false`.

---

<div class="post-metadata">

**Author:** ![Juan\_Sanchez](https://avatars.discourse-cdn.com/v4/letter/j/74df32/32.png) [@Juan\_Sanchez](https://forum.inductiveautomation.com/u/Juan_Sanchez)\
**Post date:** [August 21, 2024, 1:44pm UTC](https://forum.inductiveautomation.com/t/dynamic-symbol-based-on-alarm-priority/94936/6 "2024-08-21T13:44:05Z")

</div>

Got it working! Thank you!
