# Why ever use an expression transform instead of an expression binding?

**URL:** <https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [December 19, 2025, 2:21am UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906 "2025-12-19T02:21:05Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leor\_Fishman](https://avatars.discourse-cdn.com/v4/letter/l/e19adc/32.png) [@Leor\_Fishman](https://forum.inductiveautomation.com/u/Leor_Fishman)\
**Post date:** [December 19, 2025, 2:21am UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/1 "2025-12-19T02:21:05Z")

</div>

i get map and script transforms, those add new capacity

but why ever expression transform?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 19, 2025, 3:04am UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/2 "2025-12-19T03:04:57Z")

</div>

To combine an indirect tag binding with an expression. When you don't need the tag value itself for any other purpose.

(I pretty much never do this, as another use for the tag value is almost inevitable.)

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 19, 2025, 7:12am UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/3 "2025-12-19T07:12:49Z")

</div>

Well one project I saw that they chained multiple expression transforms to do increasingly more operations on each’s output… 🤨

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 19, 2025, 12:56pm UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/4 "2025-12-19T12:56:34Z")

</div>

> [@nminchin](#):
>
> chained multiple expression transforms

I would use my Integration Toolkit's alternate `tranform()` for this--less overhead.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 19, 2025, 9:10pm UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/5 "2025-12-19T21:10:06Z")

</div>

Definitely! From memory they were _really_ simple though, things you could just do easily in a single expression. Don't know why they split it out

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 19, 2025, 9:48pm UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/6 "2025-12-19T21:48:31Z")

</div>

Expressions, by themselves, do not optimize common subexpressions or multiple references to the same tag/property. Perspective transforms and my `transform()` provide the opportunity for user-directed optimization. (Particulary helpful when using my iteration functions to move such outside the loop.)

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [December 19, 2025, 11:08pm UTC](https://forum.inductiveautomation.com/t/why-ever-use-an-expression-transform-instead-of-an-expression-binding/112906/7 "2025-12-19T23:08:01Z")

</div>

They were using them like this:  
Property Binding →  
Expression Binding: `if({value}, “StyleClass1”, “StyleClass2”)` →

Expression Binding: `{value} + “ StyleClass3”` →

Expression Binding: `{value} + “ StyleClass4”`

I use your `transform` function all the time though 🙂, very useful!
