# propertyChange script with Internal property not running

**URL:** <https://forum.inductiveautomation.com/t/propertychange-script-with-internal-property-not-running/46038>\
**Category:** Ignition\
**Created:** [April 26, 2021, 5:09pm UTC](https://forum.inductiveautomation.com/t/propertychange-script-with-internal-property-not-running/46038 "2021-04-26T17:09:24Z")\
**Posts on this page:** 1\
**Showing post:** 5

<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:** [April 26, 2021, 9:05pm UTC](https://forum.inductiveautomation.com/t/propertychange-script-with-internal-property-not-running/46038/5 "2021-04-26T21:05:53Z")

</div>

> [@Active alarm in area?](http://forum.inductiveautomation.com/t/active-alarm-in-area/41892/5):
>
> I use a UDT for this in Ignition that gets a summary of alarms based on where the UDT is located. UDT json is attached [Area Alarms.json](https://forum.inductiveautomation.com/uploads/short-url/qkjv7KDjjTvoyFCq6zCNnWNoXpi.json) (2.7 KB). You’ll need this script as well to summarise the alarms, put under a script library called shared.alarms: def getAlarmSummary(filterPath='\*'): if filterPath.find(']') != -1: filterPath = filterPath.split(']')[1] alarms = system.alarm.queryStatus(priority=[1,2,3,4], state=['ActiveAcked','ClearUnacked','ActiveUnacked'], path=['\*:…

This is much better than running it in the gui, but note my post at the bottom: if you're creating many instances of this udt, then you're better off doing as I mention in that post

---

_[View the full topic](https://forum.inductiveautomation.com/t/propertychange-script-with-internal-property-not-running/46038)._
