# How to export an inherited project as a standalone (remove parent dependency)?

**URL:** <https://forum.inductiveautomation.com/t/how-to-export-an-inherited-project-as-a-standalone-remove-parent-dependency/116448>\
**Category:** Ignition\
**Tags:** perspective, ignition83\
**Created:** [July 17, 2026, 7:22pm UTC](https://forum.inductiveautomation.com/t/how-to-export-an-inherited-project-as-a-standalone-remove-parent-dependency/116448 "2026-07-17T19:22:32Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![GUILHERME\_MARTINS](https://avatars.discourse-cdn.com/v4/letter/g/e9bcb4/32.png) [@GUILHERME\_MARTINS](https://forum.inductiveautomation.com/u/GUILHERME_MARTINS)\
**Post date:** [July 17, 2026, 7:22pm UTC](https://forum.inductiveautomation.com/t/how-to-export-an-inherited-project-as-a-standalone-remove-parent-dependency/116448/1 "2026-07-17T19:22:32Z")

</div>

Hi everyone,

I have a question about project inheritance and how to properly separate projects.

In our case, the team originally developed a project called **CRVG**. Later, using the same gateway, they created another project called **CRFLA1981**. The CRFLA project inherits a lot of resources from CRVG, and many of those have been overridden.

Right now, the CRFLA project still contains references to CRVG, and a lot of resources are inherited and overridden rather than fully independent.

What I’m trying to do is:  
Is there a way to export the CRFLA project so that it only includes the resources that are actually being used and/or overridden, and turn it into a completely independent project (with no inheritance or dependency on CRVG)?

Basically, I want a clean standalone version of CRFLA without any links back to the parent project.

Has anyone done something like this before, or is there a recommended approach for achieving this?

I'm on ignition8.3

Thanks in advance!

---

<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:** [July 17, 2026, 7:28pm UTC](https://forum.inductiveautomation.com/t/how-to-export-an-inherited-project-as-a-standalone-remove-parent-dependency/116448/2 "2026-07-17T19:28:27Z")

</div>

This is the kicker:

> [@GUILHERME\_MARTINS](#):
>
> resources that are actually being used

There's nothing that will reliably determine that. But:

Override everything in the leaf project that you **know** you need. Then set the project to not have a parent and try to run it. If it works (thoroughly tested), then you got it all.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 17, 2026, 10:05pm UTC](https://forum.inductiveautomation.com/t/how-to-export-an-inherited-project-as-a-standalone-remove-parent-dependency/116448/3 "2026-07-17T22:05:10Z")

</div>

Only lightly tested. Must be run on the gateway. Use at your own risk. 8.3+.

```python
from com.inductiveautomation.ignition.gateway import IgnitionGateway
from com.inductiveautomation.ignition.common.resourcecollection import ResourceId

def flattenAndCreate(inputProject, outputProject):
	projectManager = IgnitionGateway.get().getProjectManager()
	optional = projectManager.find(inputProject)
	if not optional.isPresent():
		raise ValueError("Resource collection not found: " + inputProject)
	p = optional.get().validateOrThrow()

	remappedResources = {}
	for r in p.resources:
		replacementId = ResourceId(outputProject, r.resourceId.resourcePath)
		replacement = r.toBuilder().setResourceId(replacementId).build()
		remappedResources[replacementId] = replacement

	manifest = p.manifest.toBuilder().setParent(None).build()

	# Persist the new resource collection to disk
	projectManager.create(outputProject, manifest, remappedResources.values())

```
