# Perspective - best way to transform two or more properties (avoiding script transform)

**URL:** <https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [December 12, 2025, 9:57pm UTC](https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796 "2025-12-12T21:57:33Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![davee\_s](https://avatars.discourse-cdn.com/v4/letter/d/e47774/32.png) [@davee\_s](https://forum.inductiveautomation.com/u/davee_s)\
**Post date:** [December 12, 2025, 9:57pm UTC](https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796/1 "2025-12-12T21:57:33Z")

</div>

I am using Ignition 8.1.50 with Perspective module.

I know that in transforms is better to use map/expressions rather than scripts, but I want to understand if is possible to create a logic like this without a script transform

 ![Screenshot 2025-12-12 224215](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/5/15191d82925119c70dd53d07749d41dfd975232d.png)

So basically whenever one of the two properties change, the transform logic will be evaluated to produce the result.

Thanks

---

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [December 12, 2025, 10:02pm UTC](https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796/2 "2025-12-12T22:02:59Z")

</div>

A nested `if` expression should work. Expressions re-evalutate if any of the referenced items change value.

```python
if(
	{view.params.FamilyName} = "", "none", 
if(
	{view.params.Available}, "solid", 
	"dashed"
))

```

If everything you are monitoring is a boolean, you can use `binEnc` and a `case` statement to make it a bit cleaner.

---

<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 13, 2025, 7:46am UTC](https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796/3 "2025-12-13T07:46:49Z")

</div>

You can also use an outlandish form of case. it works and is less characters than nexted ifs:

```python
case(True
	,{view.params.FamilyName} = "", "none"
	,{view.params.Available}, "solid"
	,"dashed"
)

```

---

<div class="post-metadata">

**Author:** ![davee\_s](https://avatars.discourse-cdn.com/v4/letter/d/e47774/32.png) [@davee\_s](https://forum.inductiveautomation.com/u/davee_s)\
**Post date:** [December 15, 2025, 8:36am UTC](https://forum.inductiveautomation.com/t/perspective-best-way-to-transform-two-or-more-properties-avoiding-script-transform/112796/4 "2025-12-15T08:36:13Z")

</div>

@nminchin thanks this is very good
