# Create UDT ManagedTagProvider

**URL:** <https://forum.inductiveautomation.com/t/create-udt-managedtagprovider/79854>\
**Category:** Module Development\
**Tags:** scripting\
**Created:** [September 29, 2023, 4:38pm UTC](https://forum.inductiveautomation.com/t/create-udt-managedtagprovider/79854 "2023-09-29T16:38:18Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaushik.shah](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@kaushik.shah](https://forum.inductiveautomation.com/u/kaushik.shah)\
**Post date:** [September 29, 2023, 4:38pm UTC](https://forum.inductiveautomation.com/t/create-udt-managedtagprovider/79854/1 "2023-09-29T16:38:18Z")

</div>

Hello There,

I am looking to create a UDT within ManagedTagProvider. I have created managed tag provider through the module on ignition\_sdk\_examples. Could not find much documentation on creating UDT. This is what I put together just to test out - I know this is no way near but have gotten here so far. Any comments would be really appreciated.

```auto
def create():
	from com.inductiveautomation.ignition.gateway import IgnitionGateway
	
#	provider = IgnitionGateway.get().getTagManager().getTagProvider('Example')
	
	import com.inductiveautomation.ignition.common.sqltags.model.types.DataType as DataType;
	import com.inductiveautomation.ignition.gateway.model.GatewayContext as GatewayContext;
    import com.inductiveautomation.ignition.gateway.tags.managed.ProviderConfiguration as ProviderConfiguration;
	import com.inductiveautomation.ignition.gateway.tags.managed.ManagedTagProvider; 
	import com.inductiveautomation.ignition.common.tags.config.types.TagObjectType as TagObjectType; #, UdtInstance;
	import com.inductiveautomation.ignition.common.config.BasicBoundPropertySet as BoundPropertySet;
	import com.inductiveautomation.ignition.common.tags.config.properties.WellKnownTagProps as WellKnownTagProps;
	import com.inductiveautomation.ignition.common.config.PropertyValue as PropertyValue; 
	import org.apache.log4j.Logger as logger;

	log = logger.getLogger('test')	

	udtPath = 'Test'
	newInstance = BoundPropertySet()
	log.info(str(newInstance.getProperties()))
	newInstance.set(PropertyValue(WellKnownTagProps.TagType, TagObjectType.UdtType))
	log.info(str(newInstance.getProperties()))	
	
	configuration = ProviderConfiguration("Example")

	provider = IgnitionGateway.get().getTagManager().getOrCreateManagedProvider(configuration)
	
	provider.configureTag(udtPath, newInstance)

```

This is the error I am seeing in the logs:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/d/ad85f89f38e390bc6f83b1b619ca245e6b5ec23f.png)

---

<div class="post-metadata">

**Author:** ![Sarah\_Sonnier](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sarah_sonnier/32/80232_2.png) [@Sarah\_Sonnier](https://forum.inductiveautomation.com/u/Sarah_Sonnier)\
**Post date:** [September 9, 2024, 7:48pm UTC](https://forum.inductiveautomation.com/t/create-udt-managedtagprovider/79854/2 "2024-09-09T19:48:07Z")

</div>

I am trying to do the same thing, did you find a solution?

---

<div class="post-metadata">

**Author:** ![rhys.nickerson](https://avatars.discourse-cdn.com/v4/letter/r/ea666f/32.png) [@rhys.nickerson](https://forum.inductiveautomation.com/u/rhys.nickerson)\
**Post date:** [April 30, 2025, 2:26pm UTC](https://forum.inductiveautomation.com/t/create-udt-managedtagprovider/79854/3 "2025-04-30T14:26:21Z")

</div>

You need to enable `FLAG_PROVIDES_COMPLEX_TYPES` in your ManagedTagProvider configuration.

```python
configuration = ProviderConfiguration("Example")
configuration.setAttribute(TagProviderMeta.FLAG_PROVIDES_COMPLEX_TYPES, True)

provider = IgnitionGateway.get().getTagManager().getOrCreateManagedProvider(configuration)

```
