# Multi state expression

**URL:** <https://forum.inductiveautomation.com/t/multi-state-expression/4816>\
**Category:** Ignition\
**Created:** [July 13, 2012, 6:45pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816 "2012-07-13T18:45:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![AJBerera](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@AJBerera](https://forum.inductiveautomation.com/u/AJBerera)\
**Post date:** [July 13, 2012, 6:45pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816/1 "2012-07-13T18:45:49Z")

</div>

I’m trying to bind my multi state display state to an indirect tag with a property reference.  
This is what I think I am trying to accomplish:

if ({Root Container.MotorID}/FAULT = 1, 2,  
if ({Root Container.MotorID}/RUNNING} = 1, 1, 0))

The button needs 3 states, OFF, RUNNING, and FAULT  
It doesn’t seem to like the nested paths, but I’m not sure how else to do this besides multiple SQL tag writes and reads.  
Any ideas?

---

<div class="post-metadata">

**Author:** ![nathan](https://avatars.discourse-cdn.com/v4/letter/n/c5a1d2/32.png) [@nathan](https://forum.inductiveautomation.com/u/nathan)\
**Post date:** [July 13, 2012, 8:50pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816/2 "2012-07-13T20:50:54Z")

</div>

I think the [BinEnc](http://inductiveautomation.com/support/usermanuals/ignition/gen_logic_binenc.htm) or [BinEnum](http://inductiveautomation.com/support/usermanuals/ignition/gen_logic_binenum.htm) expression functions might make your life easier than using nested IF statements. It might be simpler to evaluate the indirect expressions separately on custom properties then run them through your function(s).

---

<div class="post-metadata">

**Author:** ![AJBerera](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@AJBerera](https://forum.inductiveautomation.com/u/AJBerera)\
**Post date:** [July 16, 2012, 1:09pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816/3 "2012-07-16T13:09:45Z")

</div>

Thanks Nathan, while this does seem like a great way to do what I want to do, Using expression binding is giving me nested path errors when I use the following:

binEnum({{Root Container.MotorID}/RUNNING},{{Root Container.MotorID}/FAULT})

What should I do?

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [July 16, 2012, 1:14pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816/4 "2012-07-16T13:14:27Z")

</div>

Do they work independently? If so, maybe a separate property for each “bit” may be in order.

---

<div class="post-metadata">

**Author:** ![AJBerera](https://avatars.discourse-cdn.com/v4/letter/a/9fc29f/32.png) [@AJBerera](https://forum.inductiveautomation.com/u/AJBerera)\
**Post date:** [July 16, 2012, 5:42pm UTC](https://forum.inductiveautomation.com/t/multi-state-expression/4816/5 "2012-07-16T17:42:11Z")

</div>

OK I got around this by making template custom properties and indirectly binding those … Now I can use this
