Project Inheritance allows one project to inherit resources from another project. If you have project resources that you want other projects to use such as views, windows, scripts, templates, or pipelines, you can create an inheritable project allowing other projects to inherit those resources. The project inheriting the resources can also overwrite the resources and let you re-define them specifically for that project.
Project inheritance is extremely flexible in that it allows inherited projects to also be configured as 'inheritable' and become a parent project itself. This allows for complex hierarchies of re-usable resources to be designed. Within each project, inherited resources may be used by other, “local” resources. For example, an inherited Vision template could be embedded in a window, or an inherited script could be executed by a button.
This page demonstrates how project inheritance allows you to share resources across multiple projects as you deem fit by pointing one project to another project, and overriding resources to re-redefine resources specifically for the project you're working on.
Configuring Project Inheritance
In order to make a project inheritable, you need to enable project inheritance on the project containing the resources that you want to share. In a similar way, these parent projects need to be assigned to the child projects that will be inheriting the resources to populate those resources. The following example demonstrates how to configure project inheritance for existing projects, but if you know a project needs to be inheritable or inherit a parent project's resources before creating, you can configure inheritance settings upon creation. This is available in the Gateway after selecting Create new project on the Config > System > Projects page and choosing the settings called out below, or in the Designer.
In this example, we have two projects: one project called 'global' which contains some project resources, and another project that is not yet inheriting any resources called 'Project_X.' Since we will be sharing the resources from the 'global' project with Project_X, let's first configure the 'global' project to be inheritable.