# Ignition 8 - list expression functions and categories (for the gateway scope)?

**URL:** <https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [July 10, 2020, 5:26pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588 "2020-07-10T17:26:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [July 10, 2020, 5:26pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/1 "2020-07-10T17:26:24Z")

</div>

I try to list the **expression functions and categories** (for the gateway scope)  
it seems possible:

[http://files.inductiveautomation.com/sdk/javadoc/ignition80/8.0.14/com/inductiveautomation/ignition/common/expressions/FunctionFactory.html](http://files.inductiveautomation.com/sdk/javadoc/ignition80/8.0.14/com/inductiveautomation/ignition/common/expressions/FunctionFactory.html)

```auto
from com.inductiveautomation.ignition.common.expressions import BasicFunctionFactory
print BasicFunctionFactory().getFunctionNames()

```

return in the designer console

```auto
[]

```

perhpas public BasicFunctionFactory​(FunctionFactory parent) ??? but where to find parents…

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 10, 2020, 5:32pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/2 "2020-07-10T17:32:16Z")

</div>

BasicFunctionFactory is just a basic/default implementation. Creating a new one will of course be empty.

`DefaultFunctionFactory` has all the built-in expression functions.

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [July 10, 2020, 5:34pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/3 "2020-07-10T17:34:00Z")

</div>

> [@Kevin.Herron](#):
>
> DefaultFunctionFactory

```auto
from com.inductiveautomation.ignition.common.expressions import DefaultFunctionFactory

print DefaultFunctionFactory().getFunctionNames()
print DefaultFunctionFactory().getCategories()
print DefaultFunctionFactory().getFunctionsInCategory()

```

return:

```Traceback
  File "<input>", line 14, in <module>
TypeError: No visible constructors for class (com.inductiveautomation.ignition.common.expressions.DefaultFunctionFactory)
>>> 

```

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 10, 2020, 5:34pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/4 "2020-07-10T17:34:45Z")

</div>

Hmm, it’s deprecated, but try `DefaultFunctionFactory.getSharedInstance()`.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 10, 2020, 5:36pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/5 "2020-07-10T17:36:17Z")

</div>

You can also get the `FunctionFactory` from a `GatewayContext` (or anything that extends `CommonContext`, really).

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [July 10, 2020, 6:04pm UTC](https://forum.inductiveautomation.com/t/ignition-8-list-expression-functions-and-categories-for-the-gateway-scope/36588/6 "2020-07-10T18:04:07Z")

</div>

> [@mazeyrat](#):
>
> from com.inductiveautomation.ignition.common.expressions import DefaultFunctionFactory print DefaultFunctionFactory().getFunctionNames() print DefaultFunctionFactory().getCategories() print DefaultFunctionFactory().getFunctionsInCategory()

thanks a lot 👍

```auto
from com.inductiveautomation.ignition.common.expressions import DefaultFunctionFactory

categories = DefaultFunctionFactory.getSharedInstance().getCategories()
for categorie in categories:
	print categorie
	functions = DefaultFunctionFactory.getSharedInstance().getFunctionsInCategory(categorie)
	print functions
	for f in functions:
		print DefaultFunctionFactory.getSharedInstance().getFunction(f).getArgDocString()

```

return

```auto
Type Casting
[toStr, toInt, toFont, toLong, toDate, toFloat, toColor, toBorder, toInteger, toDouble, toBoolean, toString, toDataSet]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
value, [failover]
Advanced
[qualifiedValue, columnRearrange, columnRename, forceQuality, tag, runScript, sortDataset]
value, level, [subcode], [diagnostic]
dataset, col...
dataset, newName...
...

```
