<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.phenomportal.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nathalie</id>
	<title>PHENOM Portal Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kb.phenomportal.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nathalie"/>
	<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Special:Contributions/Nathalie"/>
	<updated>2026-04-29T11:27:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1582</id>
		<title>Entity and Association</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1582"/>
		<updated>2026-02-03T21:14:27Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Adding/Editing Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Entities and Associations are the basic building blocks of a Domain Specific Data Model (DSDM); they represent the different real-world entities and relationships present in the domain as well as those entities&#039; and relationship&#039;s properties.&lt;br /&gt;
&lt;br /&gt;
== Creating an Entity ==&lt;br /&gt;
Click on the Create menu at the top left of PHENOM and select Conceptual &amp;gt; Entity from the drop-down. The only entry &#039;&#039;required&#039;&#039; to save a new Entity is a valid name. Once all fields are filled in, clicking the SAVE button at the top of the page will create the new Entity.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
By default, the new Entity will be created in the PhenomEntities package. Once created, a few new attributes can be edited: entity attributes, associated entities, tags...&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity edit.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Attributes ==&lt;br /&gt;
Click the Create button at the bottom of the Attributes section to add a new Attribute row. Attributes require a valid name and type. If not set, the Target Bounds will default to 0..* per the FACE® Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
Any Attributes added or edited on the Entity/Association page will not be saved until the Save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Participants ==&lt;br /&gt;
Click the Create button at the bottom of the Participants section to add a new Participant row. Participants require a valid name and type. If not set, the Source Bounds will default to 0..* and the Target Bounds to 1..* perthe FACE Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Participant Example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Participants section for the first time, you will need to add two Participants.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Participants to an Entity will convert the Entity to an Association (since you&#039;re associating entities to each other)}}&lt;br /&gt;
&lt;br /&gt;
Any Participants added or edited on the Association page will not be saved until the save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Moving an Attribute ==&lt;br /&gt;
For refactoring or other purposes, the user is able to move an Attribute from its parent Entity/Association to another. To initiate, the process, the user can either click on the dedicated button at the end of the attribute row or right-click on the Attribute in the NavTree.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
In the dialog that appears, the user needs to select the Entity to which to move the selected Attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr dest.png|400px|border]]&lt;br /&gt;
[[File:Phenom-data model-details entity move attr confirm.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
A common reason for moving an attribute is refactoring previous work. For example, let&#039;s say AirVehivleType.engineTemperature used to represent the engine temperature of an air vehicle. To better document the domain, an Engine entity can be created and composed in AirVehicleType, AirVehicleType.engine, then AirVehicleType.engineTemperature can be moved to its sibling AirVehivleType.engine. The attribute can later be renamed so that the final entity composition becomes AirVehicleType.engine.temperature. As this is a pretty common use case, the Attribute Move dialog has an option to compose the target Entity/Association in the current Entity/Association if it was not already done.&lt;br /&gt;
&lt;br /&gt;
== Deleting/Deprecating an Entity or an Attribute ==&lt;br /&gt;
To delete, an individual Attribute or an Associated Entity, drag it from its table to the trashcan in the mid-right part of the page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete attr.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The delete button in the upper right will delete the entire Entity/Association and all of its children:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid breaking the current project or someone else&#039;s, an element can only be deleted under a certain set of circumstances: &lt;br /&gt;
* Entities and associations cannot be deleted if they are referenced as a type in an attribute or associated entity.&lt;br /&gt;
* Entities, associations, and their children cannot be deleted if:&lt;br /&gt;
** They were pushed to a parent&lt;br /&gt;
** They also exist in a parent branch.&lt;br /&gt;
* Attributes and associated entities cannot be deleted if they are used in a view characteristic path.&lt;br /&gt;
* When deleting an associated entity, if there&#039;s only two associated entities in the association, both will be deleted.&lt;br /&gt;
&lt;br /&gt;
When making a deletion, a confirmation popup will appear. If the element is safe the delete, the user may confirm the action. If the element being deleted breaks one or more of these rules, these will be displayed to the user including the origin of the issue and the user will be able to either cancel or deprecate the element. Doing so, the element will be flagged in the project as deprecated and every time the user will try to use that element, she/he will see the warning flag and should refrain from using it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; Even if an element is safe to delete, the user can choose to deprecate it instead of deleting it.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete confirmation.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= Deletion of an Entity/Association happens immediately after confirming deletion.&amp;lt;br&amp;gt;&lt;br /&gt;
Deletion of Attributes/Associated Entities happens after clicking &amp;quot;save&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
== Additional Fields ==&lt;br /&gt;
The details page of an Entity/Association displays some non-editable fields.&lt;br /&gt;
&lt;br /&gt;
=== Last Modified By===&lt;br /&gt;
The last editor and edit date time can be viewed here is displayed in the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity last modified by.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Attributes → Views ===&lt;br /&gt;
If an attribute is used by a View Characteristic, an expandable list appears in the Projectors column.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity projections.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Composed In ===&lt;br /&gt;
Entities/Associations that have attributes of type the currently viewed entity/association will appear in the &amp;quot;Composed in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity composed in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Associated In ===&lt;br /&gt;
Associations that have associated entities of type the currently viewed entity/association will appear in the &amp;quot;Associated in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity associated in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[Index.php?title=Category:UserGuide|009_Entity_and_Association]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1581</id>
		<title>Entity and Association</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1581"/>
		<updated>2026-02-03T21:14:12Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Adding/Editing Attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Entities and Associations are the basic building blocks of a Domain Specific Data Model (DSDM); they represent the different real-world entities and relationships present in the domain as well as those entities&#039; and relationship&#039;s properties.&lt;br /&gt;
&lt;br /&gt;
== Creating an Entity ==&lt;br /&gt;
Click on the Create menu at the top left of PHENOM and select Conceptual &amp;gt; Entity from the drop-down. The only entry &#039;&#039;required&#039;&#039; to save a new Entity is a valid name. Once all fields are filled in, clicking the SAVE button at the top of the page will create the new Entity.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
By default, the new Entity will be created in the PhenomEntities package. Once created, a few new attributes can be edited: entity attributes, associated entities, tags...&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity edit.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Attributes ==&lt;br /&gt;
Click the Create button at the bottom of the Attributes section to add a new Attribute row. Attributes require a valid name and type. If not set, the Target Bounds will default to 0..* per the FACE® Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
Any Attributes added or edited on the Entity/Association page will not be saved until the Save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Participants ==&lt;br /&gt;
Click the Create button at the bottom of the Participants section to add a new Participant row. Participants require a valid name and type. If not set, the Source Bounds will default to 0..* and the Target Bounds to 1..* perthe FACE Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Participant Example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Participants section for the first time, you will need to add two Participants.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Participants to an Entity will convert the Entity to an Association (since you&#039;re associating entities to each other)}}&lt;br /&gt;
&lt;br /&gt;
Any Participants added or edited on the Entity/Association page will not be saved until the save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Moving an Attribute ==&lt;br /&gt;
For refactoring or other purposes, the user is able to move an Attribute from its parent Entity/Association to another. To initiate, the process, the user can either click on the dedicated button at the end of the attribute row or right-click on the Attribute in the NavTree.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
In the dialog that appears, the user needs to select the Entity to which to move the selected Attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr dest.png|400px|border]]&lt;br /&gt;
[[File:Phenom-data model-details entity move attr confirm.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
A common reason for moving an attribute is refactoring previous work. For example, let&#039;s say AirVehivleType.engineTemperature used to represent the engine temperature of an air vehicle. To better document the domain, an Engine entity can be created and composed in AirVehicleType, AirVehicleType.engine, then AirVehicleType.engineTemperature can be moved to its sibling AirVehivleType.engine. The attribute can later be renamed so that the final entity composition becomes AirVehicleType.engine.temperature. As this is a pretty common use case, the Attribute Move dialog has an option to compose the target Entity/Association in the current Entity/Association if it was not already done.&lt;br /&gt;
&lt;br /&gt;
== Deleting/Deprecating an Entity or an Attribute ==&lt;br /&gt;
To delete, an individual Attribute or an Associated Entity, drag it from its table to the trashcan in the mid-right part of the page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete attr.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The delete button in the upper right will delete the entire Entity/Association and all of its children:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid breaking the current project or someone else&#039;s, an element can only be deleted under a certain set of circumstances: &lt;br /&gt;
* Entities and associations cannot be deleted if they are referenced as a type in an attribute or associated entity.&lt;br /&gt;
* Entities, associations, and their children cannot be deleted if:&lt;br /&gt;
** They were pushed to a parent&lt;br /&gt;
** They also exist in a parent branch.&lt;br /&gt;
* Attributes and associated entities cannot be deleted if they are used in a view characteristic path.&lt;br /&gt;
* When deleting an associated entity, if there&#039;s only two associated entities in the association, both will be deleted.&lt;br /&gt;
&lt;br /&gt;
When making a deletion, a confirmation popup will appear. If the element is safe the delete, the user may confirm the action. If the element being deleted breaks one or more of these rules, these will be displayed to the user including the origin of the issue and the user will be able to either cancel or deprecate the element. Doing so, the element will be flagged in the project as deprecated and every time the user will try to use that element, she/he will see the warning flag and should refrain from using it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; Even if an element is safe to delete, the user can choose to deprecate it instead of deleting it.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete confirmation.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= Deletion of an Entity/Association happens immediately after confirming deletion.&amp;lt;br&amp;gt;&lt;br /&gt;
Deletion of Attributes/Associated Entities happens after clicking &amp;quot;save&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
== Additional Fields ==&lt;br /&gt;
The details page of an Entity/Association displays some non-editable fields.&lt;br /&gt;
&lt;br /&gt;
=== Last Modified By===&lt;br /&gt;
The last editor and edit date time can be viewed here is displayed in the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity last modified by.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Attributes → Views ===&lt;br /&gt;
If an attribute is used by a View Characteristic, an expandable list appears in the Projectors column.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity projections.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Composed In ===&lt;br /&gt;
Entities/Associations that have attributes of type the currently viewed entity/association will appear in the &amp;quot;Composed in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity composed in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Associated In ===&lt;br /&gt;
Associations that have associated entities of type the currently viewed entity/association will appear in the &amp;quot;Associated in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity associated in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[Index.php?title=Category:UserGuide|009_Entity_and_Association]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1580</id>
		<title>Entity and Association</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1580"/>
		<updated>2026-02-03T21:13:52Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Entities and Associations are the basic building blocks of a Domain Specific Data Model (DSDM); they represent the different real-world entities and relationships present in the domain as well as those entities&#039; and relationship&#039;s properties.&lt;br /&gt;
&lt;br /&gt;
== Creating an Entity ==&lt;br /&gt;
Click on the Create menu at the top left of PHENOM and select Conceptual &amp;gt; Entity from the drop-down. The only entry &#039;&#039;required&#039;&#039; to save a new Entity is a valid name. Once all fields are filled in, clicking the SAVE button at the top of the page will create the new Entity.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
By default, the new Entity will be created in the PhenomEntities package. Once created, a few new attributes can be edited: entity attributes, associated entities, tags...&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity edit.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Attributes ==&lt;br /&gt;
Click the Create button at the bottom of the Attributes section to add a new Attribute row. Attributes require a valid name and type. If not set, the Target Bounds will default to 0..* per the FACE® Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
Any attributes added or edited on the Entity/Association page will not be saved until the save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Adding/Editing Participants ==&lt;br /&gt;
Click the Create button at the bottom of the Participants section to add a new Participant row. Participants require a valid name and type. If not set, the Source Bounds will default to 0..* and the Target Bounds to 1..* perthe FACE Technical Standard.&lt;br /&gt;
&lt;br /&gt;
[[File:Participant Example.png|frameless|1500x1500px]]&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Participants section for the first time, you will need to add two Participants.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Participants to an Entity will convert the Entity to an Association (since you&#039;re associating entities to each other)}}&lt;br /&gt;
&lt;br /&gt;
Any Participants added or edited on the Entity/Association page will not be saved until the save button in the upper right corner is clicked.&lt;br /&gt;
&lt;br /&gt;
== Moving an Attribute ==&lt;br /&gt;
For refactoring or other purposes, the user is able to move an Attribute from its parent Entity/Association to another. To initiate, the process, the user can either click on the dedicated button at the end of the attribute row or right-click on the Attribute in the NavTree.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
In the dialog that appears, the user needs to select the Entity to which to move the selected Attribute.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity move attr dest.png|400px|border]]&lt;br /&gt;
[[File:Phenom-data model-details entity move attr confirm.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
A common reason for moving an attribute is refactoring previous work. For example, let&#039;s say AirVehivleType.engineTemperature used to represent the engine temperature of an air vehicle. To better document the domain, an Engine entity can be created and composed in AirVehicleType, AirVehicleType.engine, then AirVehicleType.engineTemperature can be moved to its sibling AirVehivleType.engine. The attribute can later be renamed so that the final entity composition becomes AirVehicleType.engine.temperature. As this is a pretty common use case, the Attribute Move dialog has an option to compose the target Entity/Association in the current Entity/Association if it was not already done.&lt;br /&gt;
&lt;br /&gt;
== Deleting/Deprecating an Entity or an Attribute ==&lt;br /&gt;
To delete, an individual Attribute or an Associated Entity, drag it from its table to the trashcan in the mid-right part of the page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete attr.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The delete button in the upper right will delete the entire Entity/Association and all of its children:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To avoid breaking the current project or someone else&#039;s, an element can only be deleted under a certain set of circumstances: &lt;br /&gt;
* Entities and associations cannot be deleted if they are referenced as a type in an attribute or associated entity.&lt;br /&gt;
* Entities, associations, and their children cannot be deleted if:&lt;br /&gt;
** They were pushed to a parent&lt;br /&gt;
** They also exist in a parent branch.&lt;br /&gt;
* Attributes and associated entities cannot be deleted if they are used in a view characteristic path.&lt;br /&gt;
* When deleting an associated entity, if there&#039;s only two associated entities in the association, both will be deleted.&lt;br /&gt;
&lt;br /&gt;
When making a deletion, a confirmation popup will appear. If the element is safe the delete, the user may confirm the action. If the element being deleted breaks one or more of these rules, these will be displayed to the user including the origin of the issue and the user will be able to either cancel or deprecate the element. Doing so, the element will be flagged in the project as deprecated and every time the user will try to use that element, she/he will see the warning flag and should refrain from using it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note:&amp;lt;/u&amp;gt; Even if an element is safe to delete, the user can choose to deprecate it instead of deleting it.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity delete confirmation.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= Deletion of an Entity/Association happens immediately after confirming deletion.&amp;lt;br&amp;gt;&lt;br /&gt;
Deletion of Attributes/Associated Entities happens after clicking &amp;quot;save&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
== Additional Fields ==&lt;br /&gt;
The details page of an Entity/Association displays some non-editable fields.&lt;br /&gt;
&lt;br /&gt;
=== Last Modified By===&lt;br /&gt;
The last editor and edit date time can be viewed here is displayed in the top right corner.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity last modified by.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Attributes → Views ===&lt;br /&gt;
If an attribute is used by a View Characteristic, an expandable list appears in the Projectors column.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity projections.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Composed In ===&lt;br /&gt;
Entities/Associations that have attributes of type the currently viewed entity/association will appear in the &amp;quot;Composed in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity composed in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Associated In ===&lt;br /&gt;
Associations that have associated entities of type the currently viewed entity/association will appear in the &amp;quot;Associated in&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity associated in.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[Index.php?title=Category:UserGuide|009_Entity_and_Association]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Dashboard&amp;diff=1520</id>
		<title>Dashboard</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Dashboard&amp;diff=1520"/>
		<updated>2025-12-08T19:41:51Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHENOM&#039;s Dashboard is the first screen users will see when they log in. The Dashboard communicates the latest general analytics regarding the core model, recent changes to the model, and the most recent as well as archived Release Notes, containing a summary of the latest features added to PHENOM.  The dashboard also provides a series of Quick Links - these are common actions intended to help the novice user find what they need easily.&lt;br /&gt;
&lt;br /&gt;
== Using the Dashboard ==&lt;br /&gt;
When you first log into PHENOM, you will see your personal dashboard.  This section will show you the key elements of the dashboard.&lt;br /&gt;
&lt;br /&gt;
Across the very top of your dashboard, you find your login name as well as the name of your current branch.  Read more about [[Branches]].  Since PHENOM allows you to change branches and work in other models, this is a helpful tool so you can be sure that you are editing the branch of the model you expect.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 1.jpg|1000px|border|center]]&lt;br /&gt;
&lt;br /&gt;
On the left-hand side, you will see the navigation links.  This is where you can choose between the major functions of PHENOM. &lt;br /&gt;
&lt;br /&gt;
NOTE: This interface is expected to change.  While it may look different and the currently listed commands may be allocated to another place on the website, the function remains the same.  Use this area to switch between the main modes of operation of the site.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 2.jpg|1000px|border|center]]&lt;br /&gt;
&lt;br /&gt;
Across the top of the dashboard, you see the project overview.  This is a live count of the number of entities, attributes, and views currently managed in your branch. The shapes, sizes and proportions of the regions in the overview can provide a high-level idea of model quality and how the model is currently used.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 3.jpg|1000px|border|center]]&lt;br /&gt;
&lt;br /&gt;
The next section is a series of Quick Links.  These are common actions that are commonly performed in PHENOM and is intended to help a novice user quickly navigate to the correct function.  &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 5.jpg|1000px|border|center]]&lt;br /&gt;
&lt;br /&gt;
Finally, you see the notification area typically used to announce the features added in the latest release.  When you log in, you can go here to find out what has changed since the last update of the software.  &lt;br /&gt;
&lt;br /&gt;
[[File:Phenom dashboard 4.jpg|1000px|border|center]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|005_Dashboard]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Login&amp;diff=1519</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Login&amp;diff=1519"/>
		<updated>2025-12-08T19:38:55Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHENOM users will be prompted for a username and password upon login.  Each user should have a unique username.  If a user has set up Two-Factor Authentication previously, this authentication will be requested after the username and password is verified.&lt;br /&gt;
&lt;br /&gt;
== Requesting an Account ==&lt;br /&gt;
To request a new user account to PHENOM:&lt;br /&gt;
&lt;br /&gt;
# Contact your organization&#039;s PHENOM administrator and request access&lt;br /&gt;
or&lt;br /&gt;
# email INQUIRIES@SKAYL.COM &lt;br /&gt;
# Include your organization&#039;s name, your full name, your email address, phone number in the email&lt;br /&gt;
&lt;br /&gt;
== Logging Into PHENOM ==&lt;br /&gt;
Login Using Username and Password&lt;br /&gt;
&lt;br /&gt;
#Go to your PHENOM portal URL&lt;br /&gt;
#Enter your username&lt;br /&gt;
#Enter your password (of this is your first time logging in, enter the password provided to you. Once you are logged in, you can change your password in [[Settings]])&lt;br /&gt;
&lt;br /&gt;
[[File:PHENOM_Login_Screenshot.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
== Logging in with Two-Factor Authentication ==&lt;br /&gt;
Once you have set up Two-Factor Authentication, you will need access to your mobile device to login to your PHENOM account.&lt;br /&gt;
&lt;br /&gt;
#At the Login prompt, enter your PHENOM username and password&lt;br /&gt;
#Upon successful password verification, PHENOM will request your Authenticator passcode&lt;br /&gt;
#Open the Authenticator app on your phone&lt;br /&gt;
#Under PHENOM, you will find the Authenticator passcode, enter this code into PHENOM&lt;br /&gt;
#You are now logged into PHENOM&lt;br /&gt;
&lt;br /&gt;
== Requesting a New Password ==&lt;br /&gt;
To request a new password to PHENOM:&lt;br /&gt;
&lt;br /&gt;
On the login page, click “request a new password”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 1.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Enter your username and click “Request Reset”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 2.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
After a few minutes you should receive a password reset email. Copy paste the link into your web browser (if it redirects to the login page, copy paste the link and refresh the page again):&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 3.png|800px|border]]&lt;br /&gt;
&lt;br /&gt;
Enter a new password, click “Reset Password”.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 4.png|800px|border]]&lt;br /&gt;
&lt;br /&gt;
Login with your username and new password.&lt;br /&gt;
&lt;br /&gt;
[[File:PHENOM_Login_Screenshot.png|400px|border]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|003_Login]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Login&amp;diff=1518</id>
		<title>Login</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Login&amp;diff=1518"/>
		<updated>2025-12-08T19:37:24Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHENOM users will be prompted for a username and password upon login.  Each user should have a unique username.  If a user has set up Two-Factor Authentication previously, this authentication will be requested after the username and password is verified.&lt;br /&gt;
&lt;br /&gt;
== Requesting an Account ==&lt;br /&gt;
To request a new user account to PHENOM:&lt;br /&gt;
&lt;br /&gt;
# Contact your organization&#039;s PHENOM administrator and request access&lt;br /&gt;
or&lt;br /&gt;
# email INQUIRIES@SKAYL.COM &lt;br /&gt;
# Include your organization&#039;s name, your full name, your email address, phone number in the email&lt;br /&gt;
&lt;br /&gt;
== Logging Into PHENOM ==&lt;br /&gt;
Login Using Username and Password&lt;br /&gt;
&lt;br /&gt;
#Go to your PHENOM portal URL&lt;br /&gt;
#Enter your username&lt;br /&gt;
#Enter your password (of this is your first time logging in, enter the password provided to you. Once you are logged in, you can change your password in [[Settings]])&lt;br /&gt;
&lt;br /&gt;
[[File:PHENOM_Login_Screenshot.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
== Logging in with Two-Factor Authentication ==&lt;br /&gt;
Once you have set up Two-Factor Authentication, you will need access to your mobile device to login to your PHENOM account.&lt;br /&gt;
&lt;br /&gt;
#At the Login prompt, enter your PHENOM username and password&lt;br /&gt;
#Upon successful password verification, PHENOM will request your Authenticator passcode&lt;br /&gt;
#Open the Authenticator app on your phone&lt;br /&gt;
#Under PHENOM, you will find the Authenticator passcode, enter this code into PHENOM&lt;br /&gt;
#You are now logged into PHENOM&lt;br /&gt;
&lt;br /&gt;
== Requesting a New Password ==&lt;br /&gt;
To request a new password to PHENOM:&lt;br /&gt;
&lt;br /&gt;
On the login page, click “request a new password”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 1.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
Enter your username and click “Request Reset”:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 2.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
After a few minutes you should receive a password reset email. Copy paste the link into your web browser (if it redirects to the login page, copy paste the link and refresh the page again):&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 3.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
Enter a new password, click “Reset Password”.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom Password Request Step 4.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
Login with your username and new password.&lt;br /&gt;
&lt;br /&gt;
[[File:PHENOM_Login_Screenshot.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
[[Category:UserGuide|003_Login]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1516</id>
		<title>Formatting a CSV for View Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1516"/>
		<updated>2025-11-14T15:58:17Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To bulk import view characteristics, the CSV file should be formatted as described in this article.&lt;br /&gt;
&lt;br /&gt;
== General Column/Data Requirements ==&lt;br /&gt;
The following column headers must exist and contain data in each row:&lt;br /&gt;
* View_Name&lt;br /&gt;
* Characteristic_Name&lt;br /&gt;
* Primitive&lt;br /&gt;
* Source&lt;br /&gt;
* Path&lt;br /&gt;
* Measurement&lt;br /&gt;
&lt;br /&gt;
The following columns are optional (for example, the Package columns are only there to specify destination if desired): &lt;br /&gt;
* Package_Name&lt;br /&gt;
* Package_Description&lt;br /&gt;
* Package_Tags&lt;br /&gt;
* View_Description&lt;br /&gt;
* View_Tags&lt;br /&gt;
* Characteristic_Description&lt;br /&gt;
* Characteristic_Tags&lt;br /&gt;
* Lower_Bound&lt;br /&gt;
* Upper_Bound&lt;br /&gt;
* Nested_View&lt;br /&gt;
&lt;br /&gt;
The order of the columns is not enforced, it does not have to be in the same order as the suggested format above.&lt;br /&gt;
&lt;br /&gt;
Any additional user-made columns will be ignored and will not interfere with import.&lt;br /&gt;
&lt;br /&gt;
Bulk import can currently import Package, View, and Characteristic elements.&lt;br /&gt;
&lt;br /&gt;
== Column-specific Requirements ==&lt;br /&gt;
=== Package Name ===&lt;br /&gt;
* Leaving this column blank will default Package to the &amp;quot;Phenom&amp;quot; package.&lt;br /&gt;
* Setting this column to an existing Package will default to the first matching Platform Package within the model.&lt;br /&gt;
* If there is no matching Package, a new Package will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== Package Description ===&lt;br /&gt;
Package Description will be imported for new Packages only. Only the first Description for new Packages will be imported.&lt;br /&gt;
&lt;br /&gt;
=== View Name ===&lt;br /&gt;
The data in this column for an existing View will be matched to the first View of that name within the model (there should only be one match). If there isn&#039;t a matching View, a new View will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== View Description ===&lt;br /&gt;
View Description will be imported for new Views only. Only the first Description for new Views will be imported.&lt;br /&gt;
&lt;br /&gt;
=== Characteristic Name, Characteristic Description ===&lt;br /&gt;
* Characteristic Names must be unique to the View they are imported under.&lt;br /&gt;
* The Characteristic must not already exist in the desired View&lt;br /&gt;
* Characteristics belonging to different Views may have the same name.&lt;br /&gt;
&lt;br /&gt;
=== Primitive ===&lt;br /&gt;
This column isn&#039;t case sensitive. Acceptable values: &amp;quot;Char&amp;quot;, &amp;quot;Double&amp;quot;, &amp;quot;Float&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;Short&amp;quot;, &amp;quot;String&amp;quot;, &amp;quot;ULong&amp;quot;, &amp;quot;UShort&amp;quot;, &amp;quot;Octet&amp;quot;, &amp;quot;Enumeration&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Source, Path, Measurement ===&lt;br /&gt;
* Source must exist in the model and must be the Entity/Association projected from the last element in the Path column.&lt;br /&gt;
* Path must have valid elements leading up to/ending with the Observable realized by the Measurement.&lt;br /&gt;
* Measurement must in the model and realize the Observable at the end of the Path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For example: &#039;&#039;&#039;AirSystemType&#039;&#039;&#039; is projected (through payload) from &#039;&#039;&#039;elementID&#039;&#039;&#039; which is realized by &#039;&#039;UniqueID_Unbounded_Integer&#039;&lt;br /&gt;
&lt;br /&gt;
=== Lower Bound and Upper Bound ===&lt;br /&gt;
&lt;br /&gt;
* This row must have both a Source and a Path for these values to be valid&lt;br /&gt;
&lt;br /&gt;
=== Nested View ===&lt;br /&gt;
&lt;br /&gt;
* The Nested View must exist in the model and must be the name of a View. &lt;br /&gt;
&#039;&#039;See Nested Views for changes to other columns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tagging New Elements (Optional) ==&lt;br /&gt;
Package_Tags, View_Tags, and Characteristic_Tags optional columns can be used to tag new Packages, Views, or Characteristics. Each field can have multiple comma-delimited tags.&lt;br /&gt;
&lt;br /&gt;
The raw CSV must have quotes around fields with commas (Excel normally handles this).&lt;br /&gt;
&lt;br /&gt;
Package_Tags will tag whichever package is chosen - this includes the Phenom package when a package isn&#039;t specified in the Package_Name column.&lt;br /&gt;
&lt;br /&gt;
== Nested Views Requirements ==&lt;br /&gt;
By referencing the name of another view, whether already existing in the model or being added by the same CSV file, in the &#039;&#039;&#039;Nested_View&#039;&#039;&#039; column, the import can create view sub-structuring or nesting. &lt;br /&gt;
&lt;br /&gt;
In view field rows representing nested views, the &#039;&#039;&#039;Source&#039;&#039;&#039; and &#039;&#039;&#039;Path&#039;&#039;&#039; columns represent the perspective path under which the view sub-structure is nested. At the same time, the &#039;&#039;&#039;Primitive&#039;&#039;&#039;, &#039;&#039;&#039;Platform_Type&#039;&#039;&#039;, and &#039;&#039;&#039;Measurement&#039;&#039;&#039; are not applicable. &lt;br /&gt;
&lt;br /&gt;
By default, all sub-structure nesting view field rows will be inferred to be representing a &amp;quot;private&amp;quot; nesting. This can be made explicit, or toggled off to accomplish a sub-structure import, by using the &#039;&#039;&#039;Characteristic_Foreign&#039;&#039;&#039; column: if set to &amp;quot;false&amp;quot;, the view sub-structure will be private to its nesting view, and an independent import if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Union Views Requirements ==&lt;br /&gt;
Union views are not supported by the CSV import yet.&lt;br /&gt;
&lt;br /&gt;
== Additional Requirements ==&lt;br /&gt;
* Data within Package_Name, View_Name, and Characteristic_Name must all begin with a letter, and only contain numbers, letters, or underscores. The data must also not match any of the following reserved words:&lt;br /&gt;
** &#039;&#039;&#039;IDL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt;&amp;quot;and&amp;quot;, &amp;quot;begin&amp;quot;, &amp;quot;break&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;common&amp;quot;, &amp;quot;compile_opt&amp;quot;, &amp;quot;continue&amp;quot;, &amp;quot;do&amp;quot;, &amp;quot;else&amp;quot;, &amp;quot;end&amp;quot;, &amp;quot;endcase&amp;quot;, &amp;quot;endelse&amp;quot;, &amp;quot;endfor&amp;quot;, &amp;quot;endforeach&amp;quot;, &amp;quot;endif&amp;quot;, &amp;quot;endrep&amp;quot;, &amp;quot;endswitch&amp;quot;, &amp;quot;endwhile&amp;quot;, &amp;quot;eq&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;foreach&amp;quot;, &amp;quot;forward_function&amp;quot;, &amp;quot;function&amp;quot;, &amp;quot;ge&amp;quot;, &amp;quot;goto&amp;quot;, &amp;quot;gt&amp;quot;, &amp;quot;if&amp;quot;, &amp;quot;inherits&amp;quot;, &amp;quot;le&amp;quot;, &amp;quot;lt&amp;quot;, &amp;quot;mod&amp;quot;, &amp;quot;ne&amp;quot;, &amp;quot;not&amp;quot;, &amp;quot;of&amp;quot;, &amp;quot;on_ioerror&amp;quot;, &amp;quot;or&amp;quot;, &amp;quot;pro&amp;quot;, &amp;quot;repeat&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;then&amp;quot;, &amp;quot;until&amp;quot;, &amp;quot;while&amp;quot;, &amp;quot;xor&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;OCL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt; &amp;quot;abstract&amp;quot;, &amp;quot;any&amp;quot;, &amp;quot;attribute&amp;quot;, &amp;quot;boolean&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;char&amp;quot;, &amp;quot;component&amp;quot;, &amp;quot;const&amp;quot;, &amp;quot;consumes&amp;quot;, &amp;quot;context&amp;quot;, &amp;quot;custom&amp;quot;, &amp;quot;default&amp;quot;, &amp;quot;double&amp;quot;, &amp;quot;emits&amp;quot;, &amp;quot;enum&amp;quot;, &amp;quot;eventtype&amp;quot;, &amp;quot;exception&amp;quot;, &amp;quot;factory&amp;quot;, &amp;quot;false&amp;quot;, &amp;quot;finder&amp;quot;, &amp;quot;fixed&amp;quot;, &amp;quot;float&amp;quot;, &amp;quot;getraises&amp;quot;, &amp;quot;home&amp;quot;, &amp;quot;import&amp;quot;, &amp;quot;in&amp;quot;, &amp;quot;inout&amp;quot;, &amp;quot;interface&amp;quot;, &amp;quot;local&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;manages&amp;quot;, &amp;quot;module&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;native&amp;quot;, &amp;quot;object&amp;quot;, &amp;quot;octet&amp;quot;, &amp;quot;oneway&amp;quot;, &amp;quot;out&amp;quot;, &amp;quot;primarykey&amp;quot;, &amp;quot;private&amp;quot;, &amp;quot;provides&amp;quot;, &amp;quot;public&amp;quot;, &amp;quot;publishes&amp;quot;, &amp;quot;raises&amp;quot;, &amp;quot;readonly&amp;quot;, &amp;quot;sequence&amp;quot;, &amp;quot;setraises&amp;quot;, &amp;quot;short&amp;quot;, &amp;quot;string&amp;quot;, &amp;quot;struct&amp;quot;, &amp;quot;supports&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;true&amp;quot;, &amp;quot;truncatable&amp;quot;, &amp;quot;typedef&amp;quot;, &amp;quot;typeid&amp;quot;, &amp;quot;typeprefix&amp;quot;, &amp;quot;union&amp;quot;, &amp;quot;unsigned&amp;quot;, &amp;quot;uses&amp;quot;, &amp;quot;valuebase&amp;quot;, &amp;quot;valuetype&amp;quot;, &amp;quot;void&amp;quot;, &amp;quot;wchar&amp;quot;, &amp;quot;wstring&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
* New Views not already within the model must be unique among elements of type IDLStruct and Enumeration.&lt;br /&gt;
* Multidimensional Measurements are supported, however each axis will default to the primitive found within the primitive column (these can be corrected within Phenom later if desired).&lt;br /&gt;
* If there are any errors during validation of the CSV file, the model import will not be initiated and a list of errors will be returned. They will be labeled by the row they occur on for convenience.&lt;br /&gt;
* There is a 2MB limit in place - if a larger file needs to be imported, it needs to be split up into smaller files.&lt;br /&gt;
* In the raw CSV (i.e., as observed from notepad), any field with commas must have surrounding quotes (Excel normally handles this).&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1515</id>
		<title>Formatting a CSV for View Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1515"/>
		<updated>2025-11-14T15:57:39Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Nested Views */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To bulk import view characteristics, the CSV file should be formatted as described in this article.&lt;br /&gt;
&lt;br /&gt;
== General Column/Data Requirements ==&lt;br /&gt;
The following column headers must exist and contain data in each row:&lt;br /&gt;
* View_Name&lt;br /&gt;
* Characteristic_Name&lt;br /&gt;
* Primitive&lt;br /&gt;
* Source&lt;br /&gt;
* Path&lt;br /&gt;
* Measurement&lt;br /&gt;
&lt;br /&gt;
The following columns are optional (for example, the Package columns are only there to specify destination if desired): &lt;br /&gt;
* Package_Name&lt;br /&gt;
* Package_Description&lt;br /&gt;
* Package_Tags&lt;br /&gt;
* View_Description&lt;br /&gt;
* View_Tags&lt;br /&gt;
* Characteristic_Description&lt;br /&gt;
* Characteristic_Tags&lt;br /&gt;
* Lower_Bound&lt;br /&gt;
* Upper_Bound&lt;br /&gt;
* Nested_View&lt;br /&gt;
&lt;br /&gt;
The order of the columns is not enforced, it does not have to be in the same order as the suggested format above.&lt;br /&gt;
&lt;br /&gt;
Any additional user-made columns will be ignored and will not interfere with import.&lt;br /&gt;
&lt;br /&gt;
Bulk import can currently import Package, View, and Characteristic elements.&lt;br /&gt;
&lt;br /&gt;
== Column-specific Requirements ==&lt;br /&gt;
=== Package Name ===&lt;br /&gt;
* Leaving this column blank will default Package to the &amp;quot;Phenom&amp;quot; package.&lt;br /&gt;
* Setting this column to an existing Package will default to the first matching Platform Package within the model.&lt;br /&gt;
* If there is no matching Package, a new Package will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== Package Description ===&lt;br /&gt;
Package Description will be imported for new Packages only. Only the first Description for new Packages will be imported.&lt;br /&gt;
&lt;br /&gt;
=== View Name ===&lt;br /&gt;
The data in this column for an existing View will be matched to the first View of that name within the model (there should only be one match). If there isn&#039;t a matching View, a new View will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== View Description ===&lt;br /&gt;
View Description will be imported for new Views only. Only the first Description for new Views will be imported.&lt;br /&gt;
&lt;br /&gt;
=== Characteristic Name, Characteristic Description ===&lt;br /&gt;
* Characteristic Names must be unique to the View they are imported under.&lt;br /&gt;
* The Characteristic must not already exist in the desired View&lt;br /&gt;
* Characteristics belonging to different Views may have the same name.&lt;br /&gt;
&lt;br /&gt;
=== Primitive ===&lt;br /&gt;
This column isn&#039;t case sensitive. Acceptable values: &amp;quot;Char&amp;quot;, &amp;quot;Double&amp;quot;, &amp;quot;Float&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;Short&amp;quot;, &amp;quot;String&amp;quot;, &amp;quot;ULong&amp;quot;, &amp;quot;UShort&amp;quot;, &amp;quot;Octet&amp;quot;, &amp;quot;Enumeration&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Source, Path, Measurement ===&lt;br /&gt;
* Source must exist in the model and must be the Entity/Association projected from the last element in the Path column.&lt;br /&gt;
* Path must have valid elements leading up to/ending with the Observable realized by the Measurement.&lt;br /&gt;
* Measurement must in the model and realize the Observable at the end of the Path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For example: &#039;&#039;&#039;AirSystemType&#039;&#039;&#039; is projected (through payload) from &#039;&#039;&#039;elementID&#039;&#039;&#039; which is realized by &#039;&#039;UniqueID_Unbounded_Integer&#039;&lt;br /&gt;
&lt;br /&gt;
=== Lower Bound and Upper Bound ===&lt;br /&gt;
&lt;br /&gt;
* This row must have both a Source and a Path for these values to be valid&lt;br /&gt;
&lt;br /&gt;
=== Nested View ===&lt;br /&gt;
&lt;br /&gt;
* The Nested View must exist in the model and must be the name of a View. &lt;br /&gt;
&#039;&#039;See Nested Views for changes to other columns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tagging New Elements (Optional) ==&lt;br /&gt;
Package_Tags, View_Tags, and Characteristic_Tags optional columns can be used to tag new Packages, Views, or Characteristics. Each field can have multiple comma-delimited tags.&lt;br /&gt;
&lt;br /&gt;
The raw CSV must have quotes around fields with commas (Excel normally handles this).&lt;br /&gt;
&lt;br /&gt;
Package_Tags will tag whichever package is chosen - this includes the Phenom package when a package isn&#039;t specified in the Package_Name column.&lt;br /&gt;
&lt;br /&gt;
== Nested Views Requirements ==&lt;br /&gt;
By referencing the name of another view, whether already existing in the model or being added by the same CSV file, in the &#039;&#039;&#039;Nested_View&#039;&#039;&#039; column, the import can create view sub-structuring or nesting. &lt;br /&gt;
&lt;br /&gt;
In view field rows representing nested views, the &#039;&#039;&#039;Source&#039;&#039;&#039; and &#039;&#039;&#039;Path&#039;&#039;&#039; columns represent the perspective path under which the view sub-structure is nested. At the same time, the &#039;&#039;&#039;Primitive&#039;&#039;&#039;, &#039;&#039;&#039;Platform_Type&#039;&#039;&#039;, and &#039;&#039;&#039;Measurement&#039;&#039;&#039; are not applicable. &lt;br /&gt;
&lt;br /&gt;
By default, all sub-structure nesting view field rows will be inferred to be representing a &amp;quot;private&amp;quot; nesting. This can be made explicit, or toggled off to accomplish a sub-structure import, by using the &#039;&#039;&#039;Characteristic_Foreign&#039;&#039;&#039; column: if set to &amp;quot;false&amp;quot;, the view sub-structure will be private to its nesting view, and an independent import if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Additional Requirements ==&lt;br /&gt;
* Data within Package_Name, View_Name, and Characteristic_Name must all begin with a letter, and only contain numbers, letters, or underscores. The data must also not match any of the following reserved words:&lt;br /&gt;
** &#039;&#039;&#039;IDL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt;&amp;quot;and&amp;quot;, &amp;quot;begin&amp;quot;, &amp;quot;break&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;common&amp;quot;, &amp;quot;compile_opt&amp;quot;, &amp;quot;continue&amp;quot;, &amp;quot;do&amp;quot;, &amp;quot;else&amp;quot;, &amp;quot;end&amp;quot;, &amp;quot;endcase&amp;quot;, &amp;quot;endelse&amp;quot;, &amp;quot;endfor&amp;quot;, &amp;quot;endforeach&amp;quot;, &amp;quot;endif&amp;quot;, &amp;quot;endrep&amp;quot;, &amp;quot;endswitch&amp;quot;, &amp;quot;endwhile&amp;quot;, &amp;quot;eq&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;foreach&amp;quot;, &amp;quot;forward_function&amp;quot;, &amp;quot;function&amp;quot;, &amp;quot;ge&amp;quot;, &amp;quot;goto&amp;quot;, &amp;quot;gt&amp;quot;, &amp;quot;if&amp;quot;, &amp;quot;inherits&amp;quot;, &amp;quot;le&amp;quot;, &amp;quot;lt&amp;quot;, &amp;quot;mod&amp;quot;, &amp;quot;ne&amp;quot;, &amp;quot;not&amp;quot;, &amp;quot;of&amp;quot;, &amp;quot;on_ioerror&amp;quot;, &amp;quot;or&amp;quot;, &amp;quot;pro&amp;quot;, &amp;quot;repeat&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;then&amp;quot;, &amp;quot;until&amp;quot;, &amp;quot;while&amp;quot;, &amp;quot;xor&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;OCL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt; &amp;quot;abstract&amp;quot;, &amp;quot;any&amp;quot;, &amp;quot;attribute&amp;quot;, &amp;quot;boolean&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;char&amp;quot;, &amp;quot;component&amp;quot;, &amp;quot;const&amp;quot;, &amp;quot;consumes&amp;quot;, &amp;quot;context&amp;quot;, &amp;quot;custom&amp;quot;, &amp;quot;default&amp;quot;, &amp;quot;double&amp;quot;, &amp;quot;emits&amp;quot;, &amp;quot;enum&amp;quot;, &amp;quot;eventtype&amp;quot;, &amp;quot;exception&amp;quot;, &amp;quot;factory&amp;quot;, &amp;quot;false&amp;quot;, &amp;quot;finder&amp;quot;, &amp;quot;fixed&amp;quot;, &amp;quot;float&amp;quot;, &amp;quot;getraises&amp;quot;, &amp;quot;home&amp;quot;, &amp;quot;import&amp;quot;, &amp;quot;in&amp;quot;, &amp;quot;inout&amp;quot;, &amp;quot;interface&amp;quot;, &amp;quot;local&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;manages&amp;quot;, &amp;quot;module&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;native&amp;quot;, &amp;quot;object&amp;quot;, &amp;quot;octet&amp;quot;, &amp;quot;oneway&amp;quot;, &amp;quot;out&amp;quot;, &amp;quot;primarykey&amp;quot;, &amp;quot;private&amp;quot;, &amp;quot;provides&amp;quot;, &amp;quot;public&amp;quot;, &amp;quot;publishes&amp;quot;, &amp;quot;raises&amp;quot;, &amp;quot;readonly&amp;quot;, &amp;quot;sequence&amp;quot;, &amp;quot;setraises&amp;quot;, &amp;quot;short&amp;quot;, &amp;quot;string&amp;quot;, &amp;quot;struct&amp;quot;, &amp;quot;supports&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;true&amp;quot;, &amp;quot;truncatable&amp;quot;, &amp;quot;typedef&amp;quot;, &amp;quot;typeid&amp;quot;, &amp;quot;typeprefix&amp;quot;, &amp;quot;union&amp;quot;, &amp;quot;unsigned&amp;quot;, &amp;quot;uses&amp;quot;, &amp;quot;valuebase&amp;quot;, &amp;quot;valuetype&amp;quot;, &amp;quot;void&amp;quot;, &amp;quot;wchar&amp;quot;, &amp;quot;wstring&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
* New Views not already within the model must be unique among elements of type IDLStruct and Enumeration.&lt;br /&gt;
* Multidimensional Measurements are supported, however each axis will default to the primitive found within the primitive column (these can be corrected within Phenom later if desired).&lt;br /&gt;
* If there are any errors during validation of the CSV file, the model import will not be initiated and a list of errors will be returned. They will be labeled by the row they occur on for convenience.&lt;br /&gt;
* There is a 2MB limit in place - if a larger file needs to be imported, it needs to be split up into smaller files.&lt;br /&gt;
* In the raw CSV (i.e., as observed from notepad), any field with commas must have surrounding quotes (Excel normally handles this).&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1514</id>
		<title>Formatting a CSV for View Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_View_Import&amp;diff=1514"/>
		<updated>2025-11-14T15:57:05Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Nested View */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To bulk import view characteristics, the CSV file should be formatted as described in this article.&lt;br /&gt;
&lt;br /&gt;
== General Column/Data Requirements ==&lt;br /&gt;
The following column headers must exist and contain data in each row:&lt;br /&gt;
* View_Name&lt;br /&gt;
* Characteristic_Name&lt;br /&gt;
* Primitive&lt;br /&gt;
* Source&lt;br /&gt;
* Path&lt;br /&gt;
* Measurement&lt;br /&gt;
&lt;br /&gt;
The following columns are optional (for example, the Package columns are only there to specify destination if desired): &lt;br /&gt;
* Package_Name&lt;br /&gt;
* Package_Description&lt;br /&gt;
* Package_Tags&lt;br /&gt;
* View_Description&lt;br /&gt;
* View_Tags&lt;br /&gt;
* Characteristic_Description&lt;br /&gt;
* Characteristic_Tags&lt;br /&gt;
* Lower_Bound&lt;br /&gt;
* Upper_Bound&lt;br /&gt;
* Nested_View&lt;br /&gt;
&lt;br /&gt;
The order of the columns is not enforced, it does not have to be in the same order as the suggested format above.&lt;br /&gt;
&lt;br /&gt;
Any additional user-made columns will be ignored and will not interfere with import.&lt;br /&gt;
&lt;br /&gt;
Bulk import can currently import Package, View, and Characteristic elements.&lt;br /&gt;
&lt;br /&gt;
== Column-specific Requirements ==&lt;br /&gt;
=== Package Name ===&lt;br /&gt;
* Leaving this column blank will default Package to the &amp;quot;Phenom&amp;quot; package.&lt;br /&gt;
* Setting this column to an existing Package will default to the first matching Platform Package within the model.&lt;br /&gt;
* If there is no matching Package, a new Package will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== Package Description ===&lt;br /&gt;
Package Description will be imported for new Packages only. Only the first Description for new Packages will be imported.&lt;br /&gt;
&lt;br /&gt;
=== View Name ===&lt;br /&gt;
The data in this column for an existing View will be matched to the first View of that name within the model (there should only be one match). If there isn&#039;t a matching View, a new View will be created within the &amp;quot;Phenom&amp;quot; Package.&lt;br /&gt;
&lt;br /&gt;
=== View Description ===&lt;br /&gt;
View Description will be imported for new Views only. Only the first Description for new Views will be imported.&lt;br /&gt;
&lt;br /&gt;
=== Characteristic Name, Characteristic Description ===&lt;br /&gt;
* Characteristic Names must be unique to the View they are imported under.&lt;br /&gt;
* The Characteristic must not already exist in the desired View&lt;br /&gt;
* Characteristics belonging to different Views may have the same name.&lt;br /&gt;
&lt;br /&gt;
=== Primitive ===&lt;br /&gt;
This column isn&#039;t case sensitive. Acceptable values: &amp;quot;Char&amp;quot;, &amp;quot;Double&amp;quot;, &amp;quot;Float&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;Short&amp;quot;, &amp;quot;String&amp;quot;, &amp;quot;ULong&amp;quot;, &amp;quot;UShort&amp;quot;, &amp;quot;Octet&amp;quot;, &amp;quot;Enumeration&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Source, Path, Measurement ===&lt;br /&gt;
* Source must exist in the model and must be the Entity/Association projected from the last element in the Path column.&lt;br /&gt;
* Path must have valid elements leading up to/ending with the Observable realized by the Measurement.&lt;br /&gt;
* Measurement must in the model and realize the Observable at the end of the Path.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;For example: &#039;&#039;&#039;AirSystemType&#039;&#039;&#039; is projected (through payload) from &#039;&#039;&#039;elementID&#039;&#039;&#039; which is realized by &#039;&#039;UniqueID_Unbounded_Integer&#039;&lt;br /&gt;
&lt;br /&gt;
=== Lower Bound and Upper Bound ===&lt;br /&gt;
&lt;br /&gt;
* This row must have both a Source and a Path for these values to be valid&lt;br /&gt;
&lt;br /&gt;
=== Nested View ===&lt;br /&gt;
&lt;br /&gt;
* The Nested View must exist in the model and must be the name of a View. &lt;br /&gt;
&#039;&#039;See Nested Views for changes to other columns&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Tagging New Elements (Optional) ==&lt;br /&gt;
Package_Tags, View_Tags, and Characteristic_Tags optional columns can be used to tag new Packages, Views, or Characteristics. Each field can have multiple comma-delimited tags.&lt;br /&gt;
&lt;br /&gt;
The raw CSV must have quotes around fields with commas (Excel normally handles this).&lt;br /&gt;
&lt;br /&gt;
Package_Tags will tag whichever package is chosen - this includes the Phenom package when a package isn&#039;t specified in the Package_Name column.&lt;br /&gt;
&lt;br /&gt;
== Nested Views ==&lt;br /&gt;
By referencing the name of another view, whether already existing in the model or being added by the same CSV file, in the &#039;&#039;&#039;Nested_View&#039;&#039;&#039; column, the import can create view sub-structuring or nesting. &lt;br /&gt;
&lt;br /&gt;
In view field rows representing nested views, the &#039;&#039;&#039;Source&#039;&#039;&#039; and &#039;&#039;&#039;Path&#039;&#039;&#039; columns represent the perspective path under which the view sub-structure is nested. At the same time, the &#039;&#039;&#039;Primitive&#039;&#039;&#039;, &#039;&#039;&#039;Platform_Type&#039;&#039;&#039;, and &#039;&#039;&#039;Measurement&#039;&#039;&#039; are not applicable. &lt;br /&gt;
&lt;br /&gt;
By default, all sub-structure nesting view field rows will be inferred to be representing a &amp;quot;private&amp;quot; nesting. This can be made explicit, or toggled off to accomplish a sub-structure import, by using the &#039;&#039;&#039;Characteristic_Foreign&#039;&#039;&#039; column: if set to &amp;quot;false&amp;quot;, the view sub-structure will be private to its nesting view, and an independent import if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Additional Requirements ==&lt;br /&gt;
* Data within Package_Name, View_Name, and Characteristic_Name must all begin with a letter, and only contain numbers, letters, or underscores. The data must also not match any of the following reserved words:&lt;br /&gt;
** &#039;&#039;&#039;IDL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt;&amp;quot;and&amp;quot;, &amp;quot;begin&amp;quot;, &amp;quot;break&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;common&amp;quot;, &amp;quot;compile_opt&amp;quot;, &amp;quot;continue&amp;quot;, &amp;quot;do&amp;quot;, &amp;quot;else&amp;quot;, &amp;quot;end&amp;quot;, &amp;quot;endcase&amp;quot;, &amp;quot;endelse&amp;quot;, &amp;quot;endfor&amp;quot;, &amp;quot;endforeach&amp;quot;, &amp;quot;endif&amp;quot;, &amp;quot;endrep&amp;quot;, &amp;quot;endswitch&amp;quot;, &amp;quot;endwhile&amp;quot;, &amp;quot;eq&amp;quot;, &amp;quot;for&amp;quot;, &amp;quot;foreach&amp;quot;, &amp;quot;forward_function&amp;quot;, &amp;quot;function&amp;quot;, &amp;quot;ge&amp;quot;, &amp;quot;goto&amp;quot;, &amp;quot;gt&amp;quot;, &amp;quot;if&amp;quot;, &amp;quot;inherits&amp;quot;, &amp;quot;le&amp;quot;, &amp;quot;lt&amp;quot;, &amp;quot;mod&amp;quot;, &amp;quot;ne&amp;quot;, &amp;quot;not&amp;quot;, &amp;quot;of&amp;quot;, &amp;quot;on_ioerror&amp;quot;, &amp;quot;or&amp;quot;, &amp;quot;pro&amp;quot;, &amp;quot;repeat&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;then&amp;quot;, &amp;quot;until&amp;quot;, &amp;quot;while&amp;quot;, &amp;quot;xor&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;OCL Reserved words:&#039;&#039;&#039;&amp;lt;p&amp;gt; &amp;quot;abstract&amp;quot;, &amp;quot;any&amp;quot;, &amp;quot;attribute&amp;quot;, &amp;quot;boolean&amp;quot;, &amp;quot;case&amp;quot;, &amp;quot;char&amp;quot;, &amp;quot;component&amp;quot;, &amp;quot;const&amp;quot;, &amp;quot;consumes&amp;quot;, &amp;quot;context&amp;quot;, &amp;quot;custom&amp;quot;, &amp;quot;default&amp;quot;, &amp;quot;double&amp;quot;, &amp;quot;emits&amp;quot;, &amp;quot;enum&amp;quot;, &amp;quot;eventtype&amp;quot;, &amp;quot;exception&amp;quot;, &amp;quot;factory&amp;quot;, &amp;quot;false&amp;quot;, &amp;quot;finder&amp;quot;, &amp;quot;fixed&amp;quot;, &amp;quot;float&amp;quot;, &amp;quot;getraises&amp;quot;, &amp;quot;home&amp;quot;, &amp;quot;import&amp;quot;, &amp;quot;in&amp;quot;, &amp;quot;inout&amp;quot;, &amp;quot;interface&amp;quot;, &amp;quot;local&amp;quot;, &amp;quot;long&amp;quot;, &amp;quot;manages&amp;quot;, &amp;quot;module&amp;quot;, &amp;quot;multiple&amp;quot;, &amp;quot;native&amp;quot;, &amp;quot;object&amp;quot;, &amp;quot;octet&amp;quot;, &amp;quot;oneway&amp;quot;, &amp;quot;out&amp;quot;, &amp;quot;primarykey&amp;quot;, &amp;quot;private&amp;quot;, &amp;quot;provides&amp;quot;, &amp;quot;public&amp;quot;, &amp;quot;publishes&amp;quot;, &amp;quot;raises&amp;quot;, &amp;quot;readonly&amp;quot;, &amp;quot;sequence&amp;quot;, &amp;quot;setraises&amp;quot;, &amp;quot;short&amp;quot;, &amp;quot;string&amp;quot;, &amp;quot;struct&amp;quot;, &amp;quot;supports&amp;quot;, &amp;quot;switch&amp;quot;, &amp;quot;true&amp;quot;, &amp;quot;truncatable&amp;quot;, &amp;quot;typedef&amp;quot;, &amp;quot;typeid&amp;quot;, &amp;quot;typeprefix&amp;quot;, &amp;quot;union&amp;quot;, &amp;quot;unsigned&amp;quot;, &amp;quot;uses&amp;quot;, &amp;quot;valuebase&amp;quot;, &amp;quot;valuetype&amp;quot;, &amp;quot;void&amp;quot;, &amp;quot;wchar&amp;quot;, &amp;quot;wstring&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
* New Views not already within the model must be unique among elements of type IDLStruct and Enumeration.&lt;br /&gt;
* Multidimensional Measurements are supported, however each axis will default to the primitive found within the primitive column (these can be corrected within Phenom later if desired).&lt;br /&gt;
* If there are any errors during validation of the CSV file, the model import will not be initiated and a list of errors will be returned. They will be labeled by the row they occur on for convenience.&lt;br /&gt;
* There is a 2MB limit in place - if a larger file needs to be imported, it needs to be split up into smaller files.&lt;br /&gt;
* In the raw CSV (i.e., as observed from notepad), any field with commas must have surrounding quotes (Excel normally handles this).&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1452</id>
		<title>CSV</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1452"/>
		<updated>2025-08-22T21:23:22Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CSV import tool allows users to bulk import data into their model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
To import a CSV file,&lt;br /&gt;
* Select the type of data from the Import Type dropdown. Selecting the &amp;quot;... UPDATE&amp;quot; option for any type of data will overwrite existing information.&lt;br /&gt;
* Under Import File, select a properly formatted CSV file (formatting rules are provided below)&lt;br /&gt;
* Click the Import button on the lower right side&lt;br /&gt;
&lt;br /&gt;
The import might take some time depending on the size of the file. After the import finishes, a success message or an Import Errors message with each error and its respective row will be displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv update.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
The types of data the user can import are:&lt;br /&gt;
* View characteristic (see [[Formatting a CSV for View Import]])&lt;br /&gt;
* Enumeration literal (see [[Formatting a CSV for Enum Import]])&lt;br /&gt;
* Entity and Association (see [[Formatting a CSV for Entities and Associations Import]])&lt;br /&gt;
* Constraint&lt;br /&gt;
* Platform Type&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_Model_Content_Import&amp;diff=1451</id>
		<title>Formatting a CSV for Model Content Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_Model_Content_Import&amp;diff=1451"/>
		<updated>2025-08-22T21:23:06Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page Formatting a CSV for Model Content Import to Formatting a CSV for Entities and Associations Import&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Formatting a CSV for Entities and Associations Import]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_Entities_and_Associations_Import&amp;diff=1450</id>
		<title>Formatting a CSV for Entities and Associations Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Formatting_a_CSV_for_Entities_and_Associations_Import&amp;diff=1450"/>
		<updated>2025-08-22T21:23:06Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page Formatting a CSV for Model Content Import to Formatting a CSV for Entities and Associations Import&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To bulk import model content, the CSV file should be formatted as described in this article.&lt;br /&gt;
&lt;br /&gt;
{{Info| 1=Each row of the CSV creates one attribute on an element. Creation of new elements is incidental and done only if a match isn&#039;t found.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General Column/Data Requirements ==&lt;br /&gt;
The following column headers must exist and contain data in each row:&lt;br /&gt;
* Element_Name&lt;br /&gt;
* Operation_Type&lt;br /&gt;
* Attribute_Name&lt;br /&gt;
* Attribute_Type&lt;br /&gt;
&lt;br /&gt;
The following columns are optional:&lt;br /&gt;
* Element_Description&lt;br /&gt;
* Element_Tags&lt;br /&gt;
* Attribute_Description&lt;br /&gt;
* Attribute_Tags&lt;br /&gt;
* Association_Path&lt;br /&gt;
* Package_Name&lt;br /&gt;
* Package_Description&lt;br /&gt;
* Package_Tags&lt;br /&gt;
&lt;br /&gt;
== Column-specific Requirements ==&lt;br /&gt;
=== Element Name &amp;amp; Description ===&lt;br /&gt;
* If an Entity (or Association) with a matching name is found in the model, the attribute will be added to it.&lt;br /&gt;
* New created elements default to a type of Entity.&lt;br /&gt;
* If an Entity (or Association) is created, the description is applied to that new element. If the element already exists, its description (if not an empty string) will be updated with the description provided here.&lt;br /&gt;
&lt;br /&gt;
=== Operation Type &amp;amp; Association Path ===&lt;br /&gt;
* Must be set to &#039;Composition&#039; or &#039;Association&#039;. If Operation_Type is Association, then the Element will automatically be turned into an Association.&lt;br /&gt;
* If the Attribute already exists, it will be updated to be an Associated Entity (i.e., turns the Entity into an Association)&lt;br /&gt;
* There &#039;&#039;&#039;MUST BE AT LEAST TWO&#039;&#039;&#039; associated entities or the creation/update operation will fail. It is possible to only add a single associated entity if the element already exists and already contains an associated entity.&lt;br /&gt;
* By default, the Association Path is empty. This is an advanced concept used to relate to specific attributes of an element rather than the entire element itself.&lt;br /&gt;
&lt;br /&gt;
=== Attribute Name, Type &amp;amp; Description ===&lt;br /&gt;
* Attribute_Name is the desired name for the attribute.&lt;br /&gt;
* Attribute_Type must be a valid Observable, Entity, or Association that either &lt;br /&gt;
** exists in the model, or &lt;br /&gt;
** was created on a previous row.&lt;br /&gt;
* Attribute_Description is the description that will be applied to that attribute. If the attribute already exists, its description (if not an empty string) will be updated with the description provided here.&lt;br /&gt;
&lt;br /&gt;
=== Package Name &amp;amp; Description ===&lt;br /&gt;
* These columns allow you to place new entity in the package specified by Package_Name. If a package with the provided name does not exist, the new package will be created under the PhenomEntities package.&lt;br /&gt;
* Package_Name specified the name of the existing/new package.&lt;br /&gt;
* Package_Description specifies the description that will be applied to that package.&lt;br /&gt;
&lt;br /&gt;
== Tagging (Optional) ==&lt;br /&gt;
* Optional columns can be added in to CSV to tag new Packages, Elements, or Attributes.&lt;br /&gt;
* Each field can have multiple comma delimited tags.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1449</id>
		<title>CSV</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1449"/>
		<updated>2025-08-22T21:22:44Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CSV import tool allows users to bulk import data into their model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
To import a CSV file,&lt;br /&gt;
* Select the type of data from the Import Type dropdown. Selecting the &amp;quot;... UPDATE&amp;quot; option for any type of data will overwrite existing information.&lt;br /&gt;
* Under Import File, select a properly formatted CSV file (formatting rules are provided below)&lt;br /&gt;
* Click the Import button on the lower right side&lt;br /&gt;
&lt;br /&gt;
The import might take some time depending on the size of the file. After the import finishes, a success message or an Import Errors message with each error and its respective row will be displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv update.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
The types of data the user can import are:&lt;br /&gt;
* View characteristic (see [[Formatting a CSV for View Import]])&lt;br /&gt;
* Enumeration literal (see [[Formatting a CSV for Enum Import]])&lt;br /&gt;
* Entity and Association (see [[Formatting a CSV for Model Content Import]])&lt;br /&gt;
* Constraint&lt;br /&gt;
* Platform Type&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1448</id>
		<title>CSV</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1448"/>
		<updated>2025-08-22T21:21:58Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CSV import tool allows users to bulk import data into their model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
To import a CSV file,&lt;br /&gt;
* Select the type of data from the Import Type dropdown. Selecting the &amp;quot;... UPDATE&amp;quot; option for any type of data will overwrite existing information.&lt;br /&gt;
* Under Import File, select a properly formatted CSV file (formatting rules are provided below)&lt;br /&gt;
* Click the Import button on the lower right side&lt;br /&gt;
&lt;br /&gt;
The import might take some time depending on the size of the file. After the import finishes, a success message or an Import Errors message with each error and its respective row will be displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv update.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
The types of data the user can import are:&lt;br /&gt;
* View characteristic (see [[Formatting a CSV for View Import]])&lt;br /&gt;
* Enumeration literal (see [[Formatting a CSV for Enum Import]])&lt;br /&gt;
* Model content (see [[Formatting a CSV for Model Content Import]])&lt;br /&gt;
* Constraints&lt;br /&gt;
* Platform Types&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1447</id>
		<title>CSV</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=CSV&amp;diff=1447"/>
		<updated>2025-08-22T21:21:11Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CSV import tool allows users to bulk import data into their model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
To import a CSV file,&lt;br /&gt;
* Select the type of data from the Import Type dropdown. Selecting the &amp;quot;... UPDATE&amp;quot; option for any type of data will overwrite existing information.&lt;br /&gt;
* Under Import File, select a properly formatted CSV file (formatting rules are provided below)&lt;br /&gt;
* Click the Import button on the lower right side&lt;br /&gt;
&lt;br /&gt;
The import might take some time depending on the size of the file. After the import finishes, a success message or an Import Errors message with each error and its respective row will be displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-import csv update.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
The types of data the user can import are:&lt;br /&gt;
* View-Characteristic (see [[Formatting a CSV for View Import]])&lt;br /&gt;
* Enum-Literal (see [[Formatting a CSV for Enum Import]])&lt;br /&gt;
* Model-Content (see [[Formatting a CSV for Model Content Import]])&lt;br /&gt;
* Constraints&lt;br /&gt;
* Platform Types&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Import&amp;diff=1446</id>
		<title>Import</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Import&amp;diff=1446"/>
		<updated>2025-08-22T21:20:57Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* CSV */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Within Data Model, the Import tab is where users can bulk import data into PHENOM. Model import using a .face file is available from the [[Projects and Models Management#Projects Management|Projects and Models Management]] page.&lt;br /&gt;
&lt;br /&gt;
== [[CSV]] ==&lt;br /&gt;
Users can bulk import data into PHENOM using a properly formatted CSV file. The types of data the user can import are:&lt;br /&gt;
* View-Characteristic&lt;br /&gt;
* Enum-Literal&lt;br /&gt;
* Model-Content&lt;br /&gt;
* Constraints&lt;br /&gt;
* Platform Types&lt;br /&gt;
&lt;br /&gt;
== [[Placeholders]] ==&lt;br /&gt;
Phenom can add a set of placeholder model elements to help you in your modeling efforts. These model elements will be most useful when you are not completely sure what observable or entity best represents the semantic you are trying to document or what measurement best represents the one used by a particular interface. In these instances, you will be able to use or project to a placeholder, coming back later to revise your project.  &lt;br /&gt;
&lt;br /&gt;
The placeholders will include an Observable, a Measurement System, commonly used Measurements, and a placeholder entity.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039; &lt;br /&gt;
[[File:Placeholder1.jpg|thumb|none]]      &lt;br /&gt;
&lt;br /&gt;
In this example we are using the AcccelerationPlaceholderMeasurement.  &lt;br /&gt;
&lt;br /&gt;
[[File:Placeholder2.jpg|none|thumb]]&lt;br /&gt;
When we&#039;re ready to revise the project, the placeholder usage will appear in the health check. &lt;br /&gt;
&lt;br /&gt;
== [[Merge External Model]] ==&lt;br /&gt;
Merge external model will inject nodes from a provided model file into the current project.  If Overwrite is enabled, nodes that are present in both the source and the destination project but are different in the destination project will be edited to resemble the ones in the source model. &lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1442</id>
		<title>PHENOM Installation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1442"/>
		<updated>2025-08-07T13:57:57Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details the requirements for an on-site installation of the PHENOM application. PHENOM is a web-application reached by users via a web browser. As such, it requires the setup of a web-server along with supporting packages and application code in an environment from which it can reach its intended users.&lt;br /&gt;
&lt;br /&gt;
While Skayl is always happy to assist our customers’ use of PHENOM, we are not able to provide comprehensive IT support for every enterprise environment in which the application may be deployed. As such, the customer is responsible for the setup, configuration, and maintenance of the internal IT infrastructure from which they decide to serve PHENOM to users. The sections below will enumerate the basic requirements of such setup but should not be considered an exhaustive listing of the potential IT support needs of a system hosting PHENOM.&lt;br /&gt;
&lt;br /&gt;
Information about [[PHENOM Maintenance]] can be found here.&lt;br /&gt;
&lt;br /&gt;
=Hardware Requirements=&lt;br /&gt;
It is recommended that the machine running PHENOM be configured with at least the following hardware: &lt;br /&gt;
* 4 CPU cores &lt;br /&gt;
* 32 GB of RAM &lt;br /&gt;
* 200 GB of drive space&lt;br /&gt;
&lt;br /&gt;
=VM Deployment (Default)=&lt;br /&gt;
PHENOM can be provided fully installed and ready-to-run in a pre-packaged virtual machine to be hosted within the customer’s infrastructure. The machine can be delivered in one of the following formats, as exported by VirtualBox: &lt;br /&gt;
&lt;br /&gt;
* OVF 0.9 &lt;br /&gt;
* OVF 1.0 &lt;br /&gt;
* OVF 2.0 &lt;br /&gt;
&lt;br /&gt;
The operating system on the provided virtual machine can be any of the following: &lt;br /&gt;
&lt;br /&gt;
* Debian 11 &lt;br /&gt;
* RHEL 8 &lt;br /&gt;
* RHEL 9 &lt;br /&gt;
&lt;br /&gt;
It is the customer’s responsibility to ensure that they can import a VM of the selected format into their virtualization system and configure it to connect to any necessary networks. After installation, it is also the customer’s responsibility to keep the operating system of the installed virtual machine maintained and updated in accordance with their enterprise’s security and IT policies. &lt;br /&gt;
&lt;br /&gt;
=Installer Deployment=&lt;br /&gt;
Alternatively, Skayl can provide an installer bundle and Bash scripts that allow the customer to install PHENOM. The creation and provisioning of this installer may take several days, as it is configured and tested to deploy the latest version of PHENOM. Skayl can provide support for the initial installation process. &lt;br /&gt;
&lt;br /&gt;
==Setup Steps==&lt;br /&gt;
* Initialize a new environment with one of the following operating systems: &lt;br /&gt;
** Debian 11 &lt;br /&gt;
** RHEL 8&lt;br /&gt;
** RHEL 9 &lt;br /&gt;
* Create a `phenomadmin` user with “sudo” privileges. &lt;br /&gt;
* Extract the installer bundle in the `home/phenomadmin/` directory and navigate into the extracted directory. &lt;br /&gt;
* Execute the command `sudo bash vm_setup.sh` &lt;br /&gt;
** When prompted, enter the password for the database that will maintain PHENOM user data on this machine. &lt;br /&gt;
** Respond to any additional installer prompts. If you are unclear about one of them, contact the Skayl support team for guidance. &lt;br /&gt;
* If you experience errors, terminate the installation process, and send any error output to Skayl support. &lt;br /&gt;
&lt;br /&gt;
==Installation Environment==&lt;br /&gt;
It is highly recommended that the environment be “bare” with only basic OS utilities installed and dedicated to serving only the PHENOM application. If this is not the case, Skayl may not be able to assist with configuration or debugging of packages required by PHENOM (e.g. Apache, MariaDB (mysql), etc.) which may be already present and configured or potentially used by other applications on the system. &lt;br /&gt;
&lt;br /&gt;
Skayl cannot provide any support for the maintenance or configuration of the environment, whether internal virtualization environment or enterprise cloud provider (e.g. Microsoft Azure, AWS, etc.), that hosts the operating system running the PHENOM application or for the effects that environment has or requirements it imposes on the system running the PHENOM application.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Enterprise_PHENOM&amp;diff=1441</id>
		<title>Enterprise PHENOM</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Enterprise_PHENOM&amp;diff=1441"/>
		<updated>2025-08-07T13:56:30Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[PHENOM Installation]]&lt;br /&gt;
* [[PHENOM Updates]]&lt;br /&gt;
* [[PHENOM Network Diagrams | PHENOM Topology / Network Diagrams]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=PHENOM_Installation_Guide&amp;diff=1440</id>
		<title>PHENOM Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=PHENOM_Installation_Guide&amp;diff=1440"/>
		<updated>2025-08-07T13:56:17Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page PHENOM Installation Guide to PHENOM Installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PHENOM Installation]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1439</id>
		<title>PHENOM Installation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1439"/>
		<updated>2025-08-07T13:56:17Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page PHENOM Installation Guide to PHENOM Installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details the requirements for an on-site installation of the PHENOM application. PHENOM is a web-application reached by users via a web browser. As such, it requires the setup of a web-server along with supporting packages and application code in an environment from which it can reach its intended users.&lt;br /&gt;
&lt;br /&gt;
While Skayl is always happy to assist our customers’ use of PHENOM, we are not able to provide comprehensive IT support for every enterprise environment in which the application may be deployed. As such, the customer is responsible for the setup, configuration, and maintenance of the internal IT infrastructure from which they decide to serve PHENOM to users. The sections below will enumerate the basic requirements of such setup but should not be considered an exhaustive listing of the potential IT support needs of a system hosting PHENOM.&lt;br /&gt;
&lt;br /&gt;
Information about [[PHENOM Maintenance]] can be found here.&lt;br /&gt;
&lt;br /&gt;
=Hardware Requirements=&lt;br /&gt;
It is recommended that the machine running PHENOM be configured with at least the following hardware: &lt;br /&gt;
* 4 CPU cores &lt;br /&gt;
* 32 GB of RAM &lt;br /&gt;
* 200 GB of drive space&lt;br /&gt;
&lt;br /&gt;
=VM Deployment (Default)=&lt;br /&gt;
PHENOM can be provided fully installed and ready-to-run in a pre-packaged virtual machine to be hosted within the customer’s infrastructure. The machine can be delivered in one of the following formats, as exported by VirtualBox: &lt;br /&gt;
&lt;br /&gt;
* OVF 0.9 &lt;br /&gt;
* OVF 1.0 &lt;br /&gt;
* OVF 2.0 &lt;br /&gt;
&lt;br /&gt;
The operating system on the provided virtual machine can be any of the following: &lt;br /&gt;
&lt;br /&gt;
* Debian 11 &lt;br /&gt;
* RHEL 8 &lt;br /&gt;
* RHEL 9 &lt;br /&gt;
&lt;br /&gt;
It is the customer’s responsibility to ensure that they can import a VM of the selected format into their virtualization system and configure it to connect to any necessary networks. After installation, it is also the customer’s responsibility to keep the operating system of the installed virtual machine maintained and updated in accordance with their enterprise’s security and IT policies. &lt;br /&gt;
&lt;br /&gt;
=Installer Deployment=&lt;br /&gt;
Skayl can provide an installer bundle and Bash scripts that allow the customer to install PHENOM. The creation and provisioning of this installer may take several days, as it is configured and tested to deploy the latest version of PHENOM. Skayl can provide support for the initial installation process. &lt;br /&gt;
&lt;br /&gt;
==Setup Steps==&lt;br /&gt;
* Initialize a new environment with one of the following operating systems: &lt;br /&gt;
** Debian 11 &lt;br /&gt;
** RHEL 8&lt;br /&gt;
** RHEL 9 &lt;br /&gt;
* Create a `phenomadmin` user with “sudo” privileges. &lt;br /&gt;
* Extract the installer bundle in the `home/phenomadmin/` directory and navigate into the extracted directory. &lt;br /&gt;
* Execute the command `sudo bash vm_setup.sh` &lt;br /&gt;
** When prompted, enter the password for the database that will maintain PHENOM user data on this machine. &lt;br /&gt;
** Respond to any additional installer prompts. If you are unclear about one of them, contact the Skayl support team for guidance. &lt;br /&gt;
* If you experience errors, terminate the installation process, and send any error output to Skayl support. &lt;br /&gt;
&lt;br /&gt;
==Installation Environment==&lt;br /&gt;
It is highly recommended that the environment be “bare” with only basic OS utilities installed and dedicated to serving only the PHENOM application. If this is not the case, Skayl may not be able to assist with configuration or debugging of packages required by PHENOM (e.g. Apache, MariaDB (mysql), etc.) which may be already present and configured or potentially used by other applications on the system. &lt;br /&gt;
&lt;br /&gt;
Skayl cannot provide any support for the maintenance or configuration of the environment, whether internal virtualization environment or enterprise cloud provider (e.g. Microsoft Azure, AWS, etc.), that hosts the operating system running the PHENOM application or for the effects that environment has or requirements it imposes on the system running the PHENOM application.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Enterprise_PHENOM&amp;diff=1438</id>
		<title>Enterprise PHENOM</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Enterprise_PHENOM&amp;diff=1438"/>
		<updated>2025-08-07T13:56:05Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[PHENOM Installation Guide]]&lt;br /&gt;
* [[PHENOM Updates]]&lt;br /&gt;
* [[PHENOM Network Diagrams | PHENOM Topology / Network Diagrams]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Virtual_Machine_Setup&amp;diff=1437</id>
		<title>Virtual Machine Setup</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Virtual_Machine_Setup&amp;diff=1437"/>
		<updated>2025-08-07T13:55:39Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page Virtual Machine Setup to PHENOM Installation Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[PHENOM Installation Guide]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1436</id>
		<title>PHENOM Installation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1436"/>
		<updated>2025-08-07T13:55:39Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: Nathalie moved page Virtual Machine Setup to PHENOM Installation Guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details the requirements for an on-site installation of the PHENOM application. PHENOM is a web-application reached by users via a web browser. As such, it requires the setup of a web-server along with supporting packages and application code in an environment from which it can reach its intended users.&lt;br /&gt;
&lt;br /&gt;
While Skayl is always happy to assist our customers’ use of PHENOM, we are not able to provide comprehensive IT support for every enterprise environment in which the application may be deployed. As such, the customer is responsible for the setup, configuration, and maintenance of the internal IT infrastructure from which they decide to serve PHENOM to users. The sections below will enumerate the basic requirements of such setup but should not be considered an exhaustive listing of the potential IT support needs of a system hosting PHENOM.&lt;br /&gt;
&lt;br /&gt;
Information about [[PHENOM Maintenance]] can be found here.&lt;br /&gt;
&lt;br /&gt;
=Hardware Requirements=&lt;br /&gt;
It is recommended that the machine running PHENOM be configured with at least the following hardware: &lt;br /&gt;
* 4 CPU cores &lt;br /&gt;
* 32 GB of RAM &lt;br /&gt;
* 200 GB of drive space&lt;br /&gt;
&lt;br /&gt;
=VM Deployment (Default)=&lt;br /&gt;
PHENOM can be provided fully installed and ready-to-run in a pre-packaged virtual machine to be hosted within the customer’s infrastructure. The machine can be delivered in one of the following formats, as exported by VirtualBox: &lt;br /&gt;
&lt;br /&gt;
* OVF 0.9 &lt;br /&gt;
* OVF 1.0 &lt;br /&gt;
* OVF 2.0 &lt;br /&gt;
&lt;br /&gt;
The operating system on the provided virtual machine can be any of the following: &lt;br /&gt;
&lt;br /&gt;
* Debian 11 &lt;br /&gt;
* RHEL 8 &lt;br /&gt;
* RHEL 9 &lt;br /&gt;
&lt;br /&gt;
It is the customer’s responsibility to ensure that they can import a VM of the selected format into their virtualization system and configure it to connect to any necessary networks. After installation, it is also the customer’s responsibility to keep the operating system of the installed virtual machine maintained and updated in accordance with their enterprise’s security and IT policies. &lt;br /&gt;
&lt;br /&gt;
=Installer Deployment=&lt;br /&gt;
Skayl can provide an installer bundle and Bash scripts that allow the customer to install PHENOM. The creation and provisioning of this installer may take several days, as it is configured and tested to deploy the latest version of PHENOM. Skayl can provide support for the initial installation process. &lt;br /&gt;
&lt;br /&gt;
==Setup Steps==&lt;br /&gt;
* Initialize a new environment with one of the following operating systems: &lt;br /&gt;
** Debian 11 &lt;br /&gt;
** RHEL 8&lt;br /&gt;
** RHEL 9 &lt;br /&gt;
* Create a `phenomadmin` user with “sudo” privileges. &lt;br /&gt;
* Extract the installer bundle in the `home/phenomadmin/` directory and navigate into the extracted directory. &lt;br /&gt;
* Execute the command `sudo bash vm_setup.sh` &lt;br /&gt;
** When prompted, enter the password for the database that will maintain PHENOM user data on this machine. &lt;br /&gt;
** Respond to any additional installer prompts. If you are unclear about one of them, contact the Skayl support team for guidance. &lt;br /&gt;
* If you experience errors, terminate the installation process, and send any error output to Skayl support. &lt;br /&gt;
&lt;br /&gt;
==Installation Environment==&lt;br /&gt;
It is highly recommended that the environment be “bare” with only basic OS utilities installed and dedicated to serving only the PHENOM application. If this is not the case, Skayl may not be able to assist with configuration or debugging of packages required by PHENOM (e.g. Apache, MariaDB (mysql), etc.) which may be already present and configured or potentially used by other applications on the system. &lt;br /&gt;
&lt;br /&gt;
Skayl cannot provide any support for the maintenance or configuration of the environment, whether internal virtualization environment or enterprise cloud provider (e.g. Microsoft Azure, AWS, etc.), that hosts the operating system running the PHENOM application or for the effects that environment has or requirements it imposes on the system running the PHENOM application.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1435</id>
		<title>PHENOM Installation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=PHENOM_Installation&amp;diff=1435"/>
		<updated>2025-08-07T13:55:00Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page details the requirements for an on-site installation of the PHENOM application. PHENOM is a web-application reached by users via a web browser. As such, it requires the setup of a web-server along with supporting packages and application code in an environment from which it can reach its intended users.&lt;br /&gt;
&lt;br /&gt;
While Skayl is always happy to assist our customers’ use of PHENOM, we are not able to provide comprehensive IT support for every enterprise environment in which the application may be deployed. As such, the customer is responsible for the setup, configuration, and maintenance of the internal IT infrastructure from which they decide to serve PHENOM to users. The sections below will enumerate the basic requirements of such setup but should not be considered an exhaustive listing of the potential IT support needs of a system hosting PHENOM.&lt;br /&gt;
&lt;br /&gt;
Information about [[PHENOM Maintenance]] can be found here.&lt;br /&gt;
&lt;br /&gt;
=Hardware Requirements=&lt;br /&gt;
It is recommended that the machine running PHENOM be configured with at least the following hardware: &lt;br /&gt;
* 4 CPU cores &lt;br /&gt;
* 32 GB of RAM &lt;br /&gt;
* 200 GB of drive space&lt;br /&gt;
&lt;br /&gt;
=VM Deployment (Default)=&lt;br /&gt;
PHENOM can be provided fully installed and ready-to-run in a pre-packaged virtual machine to be hosted within the customer’s infrastructure. The machine can be delivered in one of the following formats, as exported by VirtualBox: &lt;br /&gt;
&lt;br /&gt;
* OVF 0.9 &lt;br /&gt;
* OVF 1.0 &lt;br /&gt;
* OVF 2.0 &lt;br /&gt;
&lt;br /&gt;
The operating system on the provided virtual machine can be any of the following: &lt;br /&gt;
&lt;br /&gt;
* Debian 11 &lt;br /&gt;
* RHEL 8 &lt;br /&gt;
* RHEL 9 &lt;br /&gt;
&lt;br /&gt;
It is the customer’s responsibility to ensure that they can import a VM of the selected format into their virtualization system and configure it to connect to any necessary networks. After installation, it is also the customer’s responsibility to keep the operating system of the installed virtual machine maintained and updated in accordance with their enterprise’s security and IT policies. &lt;br /&gt;
&lt;br /&gt;
=Installer Deployment=&lt;br /&gt;
Skayl can provide an installer bundle and Bash scripts that allow the customer to install PHENOM. The creation and provisioning of this installer may take several days, as it is configured and tested to deploy the latest version of PHENOM. Skayl can provide support for the initial installation process. &lt;br /&gt;
&lt;br /&gt;
==Setup Steps==&lt;br /&gt;
* Initialize a new environment with one of the following operating systems: &lt;br /&gt;
** Debian 11 &lt;br /&gt;
** RHEL 8&lt;br /&gt;
** RHEL 9 &lt;br /&gt;
* Create a `phenomadmin` user with “sudo” privileges. &lt;br /&gt;
* Extract the installer bundle in the `home/phenomadmin/` directory and navigate into the extracted directory. &lt;br /&gt;
* Execute the command `sudo bash vm_setup.sh` &lt;br /&gt;
** When prompted, enter the password for the database that will maintain PHENOM user data on this machine. &lt;br /&gt;
** Respond to any additional installer prompts. If you are unclear about one of them, contact the Skayl support team for guidance. &lt;br /&gt;
* If you experience errors, terminate the installation process, and send any error output to Skayl support. &lt;br /&gt;
&lt;br /&gt;
==Installation Environment==&lt;br /&gt;
It is highly recommended that the environment be “bare” with only basic OS utilities installed and dedicated to serving only the PHENOM application. If this is not the case, Skayl may not be able to assist with configuration or debugging of packages required by PHENOM (e.g. Apache, MariaDB (mysql), etc.) which may be already present and configured or potentially used by other applications on the system. &lt;br /&gt;
&lt;br /&gt;
Skayl cannot provide any support for the maintenance or configuration of the environment, whether internal virtualization environment or enterprise cloud provider (e.g. Microsoft Azure, AWS, etc.), that hosts the operating system running the PHENOM application or for the effects that environment has or requirements it imposes on the system running the PHENOM application.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1418</id>
		<title>Projects and Models Management</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1418"/>
		<updated>2025-06-27T16:45:35Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* SDM Import Automatic Detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projects &amp;amp; Models 101 ==&lt;br /&gt;
A &#039;&#039;&#039;project&#039;&#039;&#039; in PHENOM is composed of one or more models which are loaded together into a workspace.&lt;br /&gt;
A &#039;&#039;&#039;model&#039;&#039;&#039; is a collection of nodes. A node can be an entity, an association, an observable, a view…&lt;br /&gt;
One objective of a project is to be:&lt;br /&gt;
* Independent &lt;br /&gt;
* Complete: reflect the reality to the best of its ability&lt;br /&gt;
* Compliant  &lt;br /&gt;
* Valid  (or at least &amp;quot;validatable &amp;quot;)&lt;br /&gt;
A model in and of itself might not constitute a complete, compliant, or even valid project as it might depend on entities inside other models, making it impossible to load independently. However, by combining several models in a project, they can form a complete, compliant, and valid model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure1.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
The following diagram depicts how a model can be part of multiple projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure2.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Once a project is loaded into PHENOM, the node contents of its constituent models can be added to as well as edited.&lt;br /&gt;
&lt;br /&gt;
== Projects Management ==&lt;br /&gt;
When in PHENOM &amp;gt; Manage Models &amp;gt; Projects, the user can see the projects and models they have access to.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-projects models list.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
The project you are currently working on is displayed at the top of all the pages. Additionally, in the Manage Projects page, the active project is the expanded by default and has a different icon.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-active project.png|600px|border]]&lt;br /&gt;
 &lt;br /&gt;
To create a project, the user can click on the + button in the Projects list and then select existing models, import new FACE models, or add new blank models.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-new project.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
There are three ways a user can have access to a project or a model:&lt;br /&gt;
* The user creates it&lt;br /&gt;
* The user uploads it&lt;br /&gt;
* The user is assigned permissions from an external user&lt;br /&gt;
The user will see, for each model, its inheritors and versions.&lt;br /&gt;
&lt;br /&gt;
The user can easily switch between projects in the Projects Management page.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-switch-project-2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Model Versions ==&lt;br /&gt;
In PHENOM, models maintain the content as well as the record of changes made to that content.&lt;br /&gt;
&lt;br /&gt;
By default, each model has a &amp;quot;live&amp;quot; version. This is the version of the model which, when loaded in a project can be edited and amended.&lt;br /&gt;
&lt;br /&gt;
When the user is satisfied with the current state of a model, they can publish it, thus creating a “static” version of that model. A published version of a model is a snapshot of its content at one point in time. It cannot be added to or edited but can still be included in a project, referenced by and depended upon by the contents of a different model.&lt;br /&gt;
&lt;br /&gt;
In the example below, the model version FACE_SDM_306 and FACE_SDM_316 are a &amp;quot;published&amp;quot; version of the FACE_SDM model. While it can be shared with other users, included in a project, and referred to and depended upon by other models, it can never be edited. In the Model tree, all published models have their publication dates displayed for ease of use.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-published model.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
== Model Inheritance &amp;amp; Content Merging ==&lt;br /&gt;
The same model can be loaded as a part of several different projects. However, the users of those projects will not be able to edit the content of the model simultaneously.&lt;br /&gt;
When a user chooses to include in a project a model which is already a part of a different project, a &amp;quot;child&amp;quot; model will be created. This inheriting or &amp;quot;child&amp;quot; model is not a different version of a model, but rather its own model which inherits some portion of its content.&lt;br /&gt;
At first, the inheriting and the parent models are identical but as their respective user make changes, they grow apart. Therefore, it’s possible for this &amp;quot;child&amp;quot; model to merge its changes to and from the parent model.&lt;br /&gt;
A user can see the relationships between models in Manage Models &amp;gt; Projects &amp;gt; Model.&lt;br /&gt;
In this example, the model Coffee is the parent of the model Coffee_in_Coffee_2. This results from the Coffee_live version of the Coffee model being loaded into a new project. When edits are made in either the parent or child model, the changes can be merged between them.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model branching.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Clicking on a live or published model will display its characteristics on the right panel. The user will be able to edit some of the model&#039;s characteristics and the permissions of the model, provided the user has Admin or Owner privileges for that model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model details2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Copy Project ==&lt;br /&gt;
Copying a project allows for easy cloning of project content with just a click of a button. The resulting project will contain a child of all the live models of the source project and the same published models.&lt;br /&gt;
&lt;br /&gt;
To copy a project, the user just needs to select a project from their project tree and click the copy project icon on the top-right.&lt;br /&gt;
[[File:Manage - Copybtn.png|none|800px]]&lt;br /&gt;
The copy project screen closely resembles the project creation screen, requiring the user to input a new name and description for the new project. Additionally, the user must choose whether to copy the existing permissions from the source project to the copied project before saving.&lt;br /&gt;
[[File:Manage - CopyCreate.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== PHENOM-Managed SDMs ==&lt;br /&gt;
PHENOM comes loaded with official FACE Shared Data Models (SDMs) for FACE Technical Standard Editions 2.1, 3.0, 3.1, and 3.2.&lt;br /&gt;
&lt;br /&gt;
=== Creating a Project with an SDM ===&lt;br /&gt;
The user can create a project by importing a model file and/or selecting existing model.&lt;br /&gt;
&lt;br /&gt;
If the user choses to import a model file containing an SDM, PHENOM will try to replace it with its managed version. This will allow the user to benefit from the ability to update SDM version in the future.&lt;br /&gt;
During import, PHENOM will scan the model and if it detects a &amp;lt;dm/&amp;gt; node with the exact same name as one of the managed SDM model, it will try to replace it. However, if the imported SDM model contains more content than what is present in the &amp;quot;official&amp;quot; SDM, the swap will not occur (e.g. a custom measurement was added to package inside the SDM).&lt;br /&gt;
&lt;br /&gt;
If for some reason, an expected SDM doesn&#039;t swap to a PHENOM-managed SDM, the user can proceed as follows to manually do it:&lt;br /&gt;
# Click on Create New Model and import the model file; this may lead to several models being created from the original file&lt;br /&gt;
# Click on Create New Project, and instead of uploading a file, select all the models that were created in step 1 except for the SDM one. Instead of selecting that SDM model, select one of the PHENOM-managed SDM models&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1&lt;br /&gt;
&lt;br /&gt;
Alternatively, the user can chose to create the project by using one of the SDMs in the list of existing models.&lt;br /&gt;
&lt;br /&gt;
=== Update a Project&#039;s SDM model ===&lt;br /&gt;
&lt;br /&gt;
If the project contains a PHENOM-managed SDM, the user has the ability to switch between versions of the SDM on the Project details page.&lt;br /&gt;
&lt;br /&gt;
If the project contains a custom version of an SDM, it is possible to replace it with a PHENOM-managed. To do so, the user needs to follow these steps:&lt;br /&gt;
# Delete the original project containing the custom SDM. In the confirmation window, DO &#039;&#039;&#039;NOT&#039;&#039;&#039; select any constituent models for deletion&lt;br /&gt;
# Create a new project, and instead of uploading a file, select all the models that were included in the original deleted project except for the SDM one, and of the PHENOM-managed SDM models&lt;br /&gt;
# (Optional) Delete the custom SDM model&lt;br /&gt;
&lt;br /&gt;
== Sample Workflow ==&lt;br /&gt;
This section goes over a sample workflow which employs the PHENOM project and model structure concepts described in the sections above.&lt;br /&gt;
In the scenario laid out below, a group of users, Chris, Dave, Nick, and Riley are working on different parts of completing a data model and documenting a set of interfaces against it. Each of them plays a slightly different role in the process, and they will use some of PHENOM&#039;s Model management features to keep their work organized.&lt;br /&gt;
&lt;br /&gt;
=== Part 1 – Chris ===&lt;br /&gt;
Chris is working on updating the Shared Data Model (SDM) the group is using to conform to the latest changes released in an accepted standard. The user loads an SDM content file to create a model.&lt;br /&gt;
[[File:Workflow-newModel.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatedSubmodel.png|border|300px]]&lt;br /&gt;
 &lt;br /&gt;
The user loads the model into an SDM_Editor project and begins to make the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatingProject.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - SwitchProject.png|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Once the user has made the changes necessary to match a decided-upon standard, the user publishes a version v1 of his SDM model.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - PublishProject.png|border|300px]]   [[File:Worklow - PublishedModel.png|border|300px]]&lt;br /&gt;
  	 &lt;br /&gt;
Chris is going to make further changes in the SDM_Editor project, but that will be for the next standard update. In the meantime, the user wants to make the static version of the SDM they just published available to the rest of his team, so the user gives them Read permissions to it. However, making further changes to the SDM is his job and the user wants to stay in control of the process, so the user does not give any of his colleagues permissions to either the live version of the SDM model or the SDM_Editor project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-chris-7.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
=== Part 2 – Dave ===&lt;br /&gt;
Dave is working on creating a Domain Specific Data Model (DSDM) for the team to use - he will be referencing the SDM Chris released in his efforts. He creates a new project into which he adds the SDM version he has access to and a blank model which will contain the DSDM content he creates.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Davecreate project.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
After Dave has added some content to his DSDM model which references nodes in the SDM, he will see that his DSDM model is now listed as dependent on the SDM model he has been using – which means, it can no longer be loaded without it.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Dependencies.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Nick and Riley will be documenting some interfaces against the domain model that Dave is working on. However, Dave does not want them to have to wait for him to have finished with all of his work before they can start. Also, as they work on their interface documentation, they may come up with good changes to the DSDM and suggest that they be included in Dave&#039;s work. So, Dave decided to share his project with Nick and Riley, giving them Read/Write permissions, which automatically gives them permissions to the active DSDM model version he&#039;s working on.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-dave-4.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Part 3 – Nick &amp;amp; Riley ===&lt;br /&gt;
Nick and Riley will be documenting interfaces using the DSDM that was shared with them, but they will be working with different sets of interfaces, each in his own project.&lt;br /&gt;
If they try to create a new project with just the DSDM, they will be rejected because they must also load in the SDM that was used to create it and on which it depends.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - DepFailure.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
Once they have the appropriate permissions to all of the content, they can create their individual project with the models to house their documentation work separate from the contents of both the SDM and the DSDM.&lt;br /&gt;
In the example below, Riley creates a RILEY_s_INTFC_DOC project including the DSDM_live model and a new blank model for his changes. By doing so, a new model, DSDM_IN_RILEY_S_INTFC_DOC, was created, inheriting from Dave’s DSDM_live.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage workflow - Final2.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Dave and Riley will now be able to independently edit DSDM content and merge changes between their two models as they see appropriate.&lt;br /&gt;
Whenever Dave makes new updates to the DSDM, Nick and Riley have the opportunity to pull in those changes into their copies of the model. When either one of them makes a change to the DSDM portion of his project that he thinks should be included in the official version, they can make a push request to Dave&#039;s project that he can then either approve or ignore.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1305</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1305"/>
		<updated>2024-09-26T14:53:46Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Add a TPM (OPTIONAL*) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This step is optional as PHENOM will generate a UDP TPM by default.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the TPM a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# Click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CinC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1304</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1304"/>
		<updated>2024-08-26T15:18:46Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Generate CINC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM (OPTIONAL*) ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;* PHENOM will generate a UDP TPM by default so this step may be skipped.&#039;&#039;&#039;&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the TPM a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# Click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CinC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1303</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1303"/>
		<updated>2024-08-26T15:17:58Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Add a TPM (OPTIONAL*) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM (OPTIONAL*) ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;* PHENOM will generate a UDP TPM by default so this step may be skipped.&#039;&#039;&#039;&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the TPM a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# Click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CINC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1302</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1302"/>
		<updated>2024-08-26T15:16:09Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Create a main */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a Main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM (OPTIONAL*) ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;* Phenom will generate a UDP tpm by default so this step may be skipped.&#039;&#039;&#039;&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the tpm a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CINC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1301</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1301"/>
		<updated>2024-08-26T15:11:32Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Create a UoP Instance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM (OPTIONAL*) ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;* Phenom will generate a UDP tpm by default so this step may be skipped.&#039;&#039;&#039;&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the tpm a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CINC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1300</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1300"/>
		<updated>2024-08-26T15:11:18Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Create a UoP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP ==&lt;br /&gt;
First, create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|border|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
== Create a UoP Instance ==&lt;br /&gt;
Similarly, A new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Create a Context ==&lt;br /&gt;
The context is a visual diagram of the interactions between a UoP and the configurable elements of CinC.&lt;br /&gt;
[[File:Generate - CreateContext.png|none|thumb|800px]]&lt;br /&gt;
# Add UoP Instance to the context.&lt;br /&gt;
##	Find the UoP Instance in the navigation tree and select it&lt;br /&gt;
## Drag it onto the context.&lt;br /&gt;
# Add a Transporter to the context.&lt;br /&gt;
## In the horizontal toolbar on the left side of the diagram find and select the transporter block&lt;br /&gt;
## Drag the transporter block onto the diagram.&lt;br /&gt;
# Create a Transport Channel&lt;br /&gt;
## With the transporter block selected, on the right side find the Transport Channel control and click on the &#039;+&#039; to add a new channel&lt;br /&gt;
## Give the channel a name and click the save icon. &lt;br /&gt;
## Once the save completes, click on the transport channel drop down and select the name of the channel you just created.&lt;br /&gt;
# Connect the blocks&lt;br /&gt;
##Select the Uop Instance block in the diagram&lt;br /&gt;
## click on the up arrow at the upper right corner of the block and drag it over to the transporter block. &lt;br /&gt;
## A popup dialog will allow you to select the UoP port to connect to the transporter, select the port from the drop down list and click on save.&lt;br /&gt;
#Commit the changes.&lt;br /&gt;
##Click the Commit button under the heading Model on the diagram tool bar.  This saves the changes to the Integration Model (IM) elements but does NOT save the diagram.&lt;br /&gt;
# Save the diagram&lt;br /&gt;
##click the middle disk icon under diagram in order to save the layout of the elements in the diagram.  This saves the layout of the items in the diagram but does NOT save changes to the Integration or Deployment models that may have been made while editing the diagram elements.&lt;br /&gt;
&lt;br /&gt;
== Create a main ==&lt;br /&gt;
The Main Program represents the executable program containing one (or more) UoPs and CinC.&lt;br /&gt;
#A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Add a TPM (OPTIONAL*) ==&lt;br /&gt;
The transport protocol module is responsible for the serialization and deserialization of messages and their transport from one TPM to another or another system. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;* Phenom will generate a UDP tpm by default so this step may be skipped.&#039;&#039;&#039;&lt;br /&gt;
[[File:Generate - MainCreateTPM2.png|thumb|none|800px]]&lt;br /&gt;
# Within the Main detail page, after saving the main, click on the Create TPM button.  &lt;br /&gt;
# Give the tpm a name (&#039;tpm&#039; is fine).&lt;br /&gt;
# click the save button.  &lt;br /&gt;
# Commit the changes to the main by clicking the disk icon in the upper right.&lt;br /&gt;
&lt;br /&gt;
== Generate CINC ==&lt;br /&gt;
#	Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
# The user should select &#039;CinC&#039; as the artifact. &lt;br /&gt;
# Select the version of CinC you would like to generate&lt;br /&gt;
# Select include CinC Source and choose Yes.&lt;br /&gt;
# Select the Main and UoP Instances for the context we created above and make sure they are both checked&lt;br /&gt;
# Select the appropriate license.&lt;br /&gt;
# Click on the Generate button and a zip file will be created.  The .zip file will contain the cinc source, the data modeled FACE types used by the UoP and the CinC configuration files. Save the file and extract the generated code.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1289</id>
		<title>Integration Model to CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_to_CinC_Generation&amp;diff=1289"/>
		<updated>2024-07-30T19:32:16Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;THIS PAGE SHOULD TAKE THE USER THROUGH THE CREATION OF UOP INSTANCES, INTEGRATION MODEL, MAIN, AND CINC GENERATION.&lt;br /&gt;
&lt;br /&gt;
== Sample Workflow ==&lt;br /&gt;
This sample workflow will lead the user to generate FACE 3 CinC after creating necessary Mains, UoP Instances, and UoPs.&lt;br /&gt;
&lt;br /&gt;
Firstly, the user needs to create a UoP to be used by a UoP Instance within the model. A new UoP can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the necessary data.&lt;br /&gt;
[[File:Generate_-_CreateUoP.png|none|thumb|800x800px]]&lt;br /&gt;
Once the user has created their UoP it is now time to create the UoP Instance that will be used in CinC generation. This UoP Instance is going to be very important for later steps.&lt;br /&gt;
&lt;br /&gt;
Similarly, A new UoP Instance can be created by selecting the corresponding option in the &#039;Create&amp;gt;Integration&#039; dropdown and then saving after inputting the required data .&lt;br /&gt;
[[File:Generate_-_CreateUoPInstance2.png|none|thumb|800x800px]]&lt;br /&gt;
Next, the user needs to create a Main Program to be used during CinC. This is the Main Program that will house our UoP Instance and should be selected during creation.&lt;br /&gt;
&lt;br /&gt;
A new Main Program can be created by selecting the corresponding option in the &#039;Create&amp;gt;Deployment&#039; dropdown and then saving after inputting the needed data including the UoP Instance.&lt;br /&gt;
[[File:Generate_-_CreateMainProgram2.png|none|thumb|800x800px]]&lt;br /&gt;
Next the user needs to open the &#039;Generate&#039; section and click on the CinC submenu.&lt;br /&gt;
&lt;br /&gt;
The user should select &#039;CinC&#039; as the artifact. For the generation config, the user should decide which changes to make depending on their setup. Only include CinC source if you have the required files.  After setting up the CinC config, the user needs to now select their Mains and UoPs by using their checkboxes. Next, for each Main Program, the user will select an available CinC license. The user doesn&#039;t need to make any node selections to generate FACE 3 CinC but will here for demonstration.&lt;br /&gt;
&lt;br /&gt;
Finally, click the &#039;Generate&#039; button after setting up the config and selection to generate FACE 3.0 CinC and a .zip file will be created for download.&lt;br /&gt;
[[File:Generate_-_CinC.png|none|thumb|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
CinC generation targets a different type of element called a &#039;&#039;&#039;Main Program&#039;&#039;&#039;. These are created from the main &#039;CREATE&#039; dropdown.&lt;br /&gt;
[[File:Imeditor_-_Codegen1.png|none|thumb|830x830px]]&lt;br /&gt;
Once your Main Program exists, you can associate UoP Instances to it so they become part of the generated code.&lt;br /&gt;
[[File:Imeditor_-_Codegen2.png|none|thumb|834x834px]]&lt;br /&gt;
Similarly, Main Programs can be placed in &#039;&#039;&#039;Processing Elements&#039;&#039;&#039; - but these are not incorporated into generation yet.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=CinC_Generation&amp;diff=1285</id>
		<title>CinC Generation</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=CinC_Generation&amp;diff=1285"/>
		<updated>2024-07-23T20:09:20Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* FACE 3 CinC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:CinC Generation}}&lt;br /&gt;
&lt;br /&gt;
CinC is Skayl&#039;s Configurable Infrastructure Capability. This is a fully configured FACE Transport Service that can be easily configured in PHENOM. This tab contains all the controls needed to export FACE-aligned software. Two types of products can be created.&lt;br /&gt;
&lt;br /&gt;
== FACE 3 CinC ==&lt;br /&gt;
&#039;&#039;&#039;This options generates a FACE 3.0 aligned CinC using the parameters provided by the user:&#039;&#039;&#039;&lt;br /&gt;
* CinC Version: version of CinC to use for the generation&lt;br /&gt;
* FACE Version: version of FACE used both for the FACE model export and the TS generation&lt;br /&gt;
* Language: language of the generated source code&lt;br /&gt;
* Override Namespace? / Namespace: by default, the generated code will use the top-level model name as namespace. If the checkbox is selected, the specified namespace will globally override the default values.&lt;br /&gt;
* System Directory: name of the folder where the dynamic CinC source will be generated&lt;br /&gt;
* Include CinC Source: whether or not the static CinC source files should be generated. If &amp;quot;None&amp;quot; is selected, only the files in the System directory will be generated&lt;br /&gt;
* Select your Mains and UoPs: selection of the Mains and the UoPs within the Mains to be generated&lt;br /&gt;
* CinC Licenses: a CinC license needs to be selected for each Main to generate&lt;br /&gt;
&lt;br /&gt;
[[File:Cinc - Face3cinc.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== FACE 3 Mock UoPs ==&lt;br /&gt;
This options generates a FACE 3.0 aligned CinC with mock UoPs using the parameters provided by the user:&lt;br /&gt;
* Model Namespace: namespace that will be used throughout the generated code&lt;br /&gt;
* System Directory: name of the folder where the dynamic CinC source will be generated&lt;br /&gt;
* Include CinC Source: whether or not the static CinC source files should be generated. If &amp;quot;None&amp;quot; is selected, only the files in the System directory will be generated&lt;br /&gt;
* Select your Mocked UoPs and Mains: selection of the UoPs to generate. For each UoP, the &amp;quot;Include main&amp;quot; option, if selected, will generate a mock Main for the mock UoP.&lt;br /&gt;
&lt;br /&gt;
[[File:Cinc - Mockuop.png|border|600x600px]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1272</id>
		<title>Projects and Models Management</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1272"/>
		<updated>2024-07-23T18:39:09Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Sample Workflow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projects &amp;amp; Models 101 ==&lt;br /&gt;
A &#039;&#039;&#039;project&#039;&#039;&#039; in PHENOM is composed of one or more models which are loaded together into a workspace.&lt;br /&gt;
A &#039;&#039;&#039;model&#039;&#039;&#039; is a collection of nodes. A node can be an entity, an association, an observable, a view…&lt;br /&gt;
One objective of a project is to be:&lt;br /&gt;
* Independent &lt;br /&gt;
* Complete: reflect the reality to the best of its ability&lt;br /&gt;
* Compliant  &lt;br /&gt;
* Valid  (or at least &amp;quot;validatable &amp;quot;)&lt;br /&gt;
A model in and of itself might not constitute a complete, compliant, or even valid project as it might depend on entities inside other models, making it impossible to load independently. However, by combining several models in a project, they can form a complete, compliant, and valid model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure1.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
The following diagram depicts how a model can be part of multiple projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure2.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Once a project is loaded into PHENOM, the node contents of its constituent models can be added to as well as edited.&lt;br /&gt;
&lt;br /&gt;
== Projects Management ==&lt;br /&gt;
When in PHENOM &amp;gt; Manage Models &amp;gt; Projects, the user can see the projects and models they have access to.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-projects models list.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
The project you are currently working on is displayed at the top of all the pages. Additionally, in the Manage Projects page, the active project is the expanded by default and has a different icon.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-active project.png|600px|border]]&lt;br /&gt;
 &lt;br /&gt;
To create a project, the user can click on the + button in the Projects list and then select existing models, import new FACE models, or add new blank models.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-new project.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
There are three ways a user can have access to a project or a model:&lt;br /&gt;
* The user creates it&lt;br /&gt;
* The user uploads it&lt;br /&gt;
* The user is assigned permissions from an external user&lt;br /&gt;
The user will see, for each model, its inheritors and versions.&lt;br /&gt;
&lt;br /&gt;
The user can easily switch between projects in the Projects Management page.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-switch-project-2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Model Versions ==&lt;br /&gt;
In PHENOM, models maintain the content as well as the record of changes made to that content.&lt;br /&gt;
&lt;br /&gt;
By default, each model has a &amp;quot;live&amp;quot; version. This is the version of the model which, when loaded in a project can be edited and amended.&lt;br /&gt;
&lt;br /&gt;
When the user is satisfied with the current state of a model, they can publish it, thus creating a “static” version of that model. A published version of a model is a snapshot of its content at one point in time. It cannot be added to or edited but can still be included in a project, referenced by and depended upon by the contents of a different model.&lt;br /&gt;
&lt;br /&gt;
In the example below, the model version FACE_SDM_306 and FACE_SDM_316 are a &amp;quot;published&amp;quot; version of the FACE_SDM model. While it can be shared with other users, included in a project, and referred to and depended upon by other models, it can never be edited. In the Model tree, all published models have their publication dates displayed for ease of use.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-published model.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
== Model Inheritance &amp;amp; Content Merging ==&lt;br /&gt;
The same model can be loaded as a part of several different projects. However, the users of those projects will not be able to edit the content of the model simultaneously.&lt;br /&gt;
When a user chooses to include in a project a model which is already a part of a different project, a &amp;quot;child&amp;quot; model will be created. This inheriting or &amp;quot;child&amp;quot; model is not a different version of a model, but rather its own model which inherits some portion of its content.&lt;br /&gt;
At first, the inheriting and the parent models are identical but as their respective user make changes, they grow apart. Therefore, it’s possible for this &amp;quot;child&amp;quot; model to merge its changes to and from the parent model.&lt;br /&gt;
A user can see the relationships between models in Manage Models &amp;gt; Projects &amp;gt; Model.&lt;br /&gt;
In this example, the model Coffee is the parent of the model Coffee_in_Coffee_2. This results from the Coffee_live version of the Coffee model being loaded into a new project. When edits are made in either the parent or child model, the changes can be merged between them.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model branching.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Clicking on a live or published model will display its characteristics on the right panel. The user will be able to edit some of the model&#039;s characteristics and the permissions of the model, provided the user has Admin or Owner privileges for that model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model details2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Copy Project ==&lt;br /&gt;
Copying a project allows for easy cloning of project content with just a click of a button. The resulting project will contain a child of all the live models of the source project and the same published models.&lt;br /&gt;
&lt;br /&gt;
To copy a project, the user just needs to select a project from their project tree and click the copy project icon on the top-right.&lt;br /&gt;
[[File:Manage - Copybtn.png|none|800px]]&lt;br /&gt;
The copy project screen closely resembles the project creation screen, requiring the user to input a new name and description for the new project. Additionally, the user must choose whether to copy the existing permissions from the source project to the copied project before saving.&lt;br /&gt;
[[File:Manage - CopyCreate.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== Sample Workflow ==&lt;br /&gt;
This section goes over a sample workflow which employs the PHENOM project and model structure concepts described in the sections above.&lt;br /&gt;
In the scenario laid out below, a group of users, Chris, Dave, Nick, and Riley are working on different parts of completing a data model and documenting a set of interfaces against it. Each of them plays a slightly different role in the process, and they will use some of PHENOM&#039;s Model management features to keep their work organized.&lt;br /&gt;
&lt;br /&gt;
=== Part 1 – Chris ===&lt;br /&gt;
Chris is working on updating the Shared Data Model (SDM) the group is using to conform to the latest changes released in an accepted standard. The user loads an SDM content file to create a model.&lt;br /&gt;
[[File:Workflow-newModel.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatedSubmodel.png|border|300px]]&lt;br /&gt;
 &lt;br /&gt;
The user loads the model into an SDM_Editor project and begins to make the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatingProject.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - SwitchProject.png|border|300px]]&lt;br /&gt;
&lt;br /&gt;
Once the user has made the changes necessary to match a decided-upon standard, the user publishes a version v1 of his SDM model.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - PublishProject.png|border|300px]]   [[File:Worklow - PublishedModel.png|border|300px]]&lt;br /&gt;
  	 &lt;br /&gt;
Chris is going to make further changes in the SDM_Editor project, but that will be for the next standard update. In the meantime, the user wants to make the static version of the SDM they just published available to the rest of his team, so the user gives them Read permissions to it. However, making further changes to the SDM is his job and the user wants to stay in control of the process, so the user does not give any of his colleagues permissions to either the live version of the SDM model or the SDM_Editor project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-chris-7.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
=== Part 2 – Dave ===&lt;br /&gt;
Dave is working on creating a Domain Specific Data Model (DSDM) for the team to use - he will be referencing the SDM Chris released in his efforts. He creates a new project into which he adds the SDM version he has access to and a blank model which will contain the DSDM content he creates.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Davecreate project.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
After Dave has added some content to his DSDM model which references nodes in the SDM, he will see that his DSDM model is now listed as dependent on the SDM model he has been using – which means, it can no longer be loaded without it.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Dependencies.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Nick and Riley will be documenting some interfaces against the domain model that Dave is working on. However, Dave does not want them to have to wait for him to have finished with all of his work before they can start. Also, as they work on their interface documentation, they may come up with good changes to the DSDM and suggest that they be included in Dave&#039;s work. So, Dave decided to share his project with Nick and Riley, giving them Read/Write permissions, which automatically gives them permissions to the active DSDM model version he&#039;s working on.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-dave-4.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Part 3 – Nick &amp;amp; Riley ===&lt;br /&gt;
Nick and Riley will be documenting interfaces using the DSDM that was shared with them, but they will be working with different sets of interfaces, each in his own project.&lt;br /&gt;
If they try to create a new project with just the DSDM, they will be rejected because they must also load in the SDM that was used to create it and on which it depends.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - DepFailure.png|border|800px]]&lt;br /&gt;
 &lt;br /&gt;
Once they have the appropriate permissions to all of the content, they can create their individual project with the models to house their documentation work separate from the contents of both the SDM and the DSDM.&lt;br /&gt;
In the example below, Riley creates a RILEY_s_INTFC_DOC project including the DSDM_live model and a new blank model for his changes. By doing so, a new model, DSDM_IN_RILEY_S_INTFC_DOC, was created, inheriting from Dave’s DSDM_live.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage workflow - Final2.png|border|800px]]&lt;br /&gt;
&lt;br /&gt;
Dave and Riley will now be able to independently edit DSDM content and merge changes between their two models as they see appropriate.&lt;br /&gt;
Whenever Dave makes new updates to the DSDM, Nick and Riley have the opportunity to pull in those changes into their copies of the model. When either one of them makes a change to the DSDM portion of his project that he thinks should be included in the official version, they can make a push request to Dave&#039;s project that he can then either approve or ignore.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1271</id>
		<title>Integration Model Editor</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1271"/>
		<updated>2024-07-23T18:31:08Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Transport Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Integration Model (IM) Editor is a groundbreaking new region of PHENOM that combines visualizations with direct model editing.&lt;br /&gt;
&lt;br /&gt;
The Integration Model is perhaps the most important model of them all. It provides a representation of how your UoPs and communication channels are laid out in the physical world.&lt;br /&gt;
&lt;br /&gt;
A well-designed IM is what allows us to generate a fully configured CinC transport layer.&lt;br /&gt;
&lt;br /&gt;
== UoP Instances ==&lt;br /&gt;
&#039;&#039;&#039;UoP Instances&#039;&#039;&#039; are, as the name suggests, instantiated Units of Portability. They can be created from the IM Editor or from the &#039;Create&#039; dropdown in regular Navigate mode.&lt;br /&gt;
&lt;br /&gt;
Each one is given a name and a Configuration URI (optional). You are also expected to select some subset of the UoP&#039;s Connections to use as &#039;&#039;&#039;Endpoints&#039;&#039;&#039; in the &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;.&lt;br /&gt;
[[File:Imeditor - UoPInstance.png|none|thumb|920x920px]]&lt;br /&gt;
&lt;br /&gt;
== Transport Channels ==&lt;br /&gt;
A &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; holds information required to transmit across some outside channel.&lt;br /&gt;
&lt;br /&gt;
Currently UDP channels are supported.&lt;br /&gt;
&lt;br /&gt;
At the moment, you are expected to use the description field to populate the following comma-separated values: &#039;&#039;&#039;ip, local port, destination ip, destination port, ttl&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Integration Contexts ==&lt;br /&gt;
This is where we find the real meat and potatoes of your integration situation. A Context is a graph representing the flow of DataTypes, or &#039;&#039;&#039;Views&#039;&#039;&#039;, amongst &#039;&#039;&#039;UoP Instances&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A given context can pull in the items discussed above. In fact, a given &#039;&#039;&#039;UoP Instance&#039;&#039;&#039; might be used in multiple &#039;&#039;&#039;Contexts&#039;&#039;&#039;. The different Contexts simply illustrate different aspects of the layout.&lt;br /&gt;
&lt;br /&gt;
The IM Editor lets you work on one &#039;&#039;&#039;Context&#039;&#039;&#039; at a time. First, drag and drop to insert a &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;. (Technically, the UoP Instance exists outside the Context, but since it&#039;s connected to things inside, it will be useful to have it here).&lt;br /&gt;
&lt;br /&gt;
=== Transport Nodes ===&lt;br /&gt;
Transport nodes come in several flavors which can be created by dragging and dropping from the Stencil tool on the left-hand side. &lt;br /&gt;
&lt;br /&gt;
Once placed in the &#039;&#039;&#039;Context&#039;&#039;&#039;, the Node Inspector on the right-hand side is used to give the nodes names, descriptions, and other data specific to its type.&lt;br /&gt;
[[File:Imeditor - Sidepanel.png|none|thumb|916x916px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Sources&#039;&#039;&#039; / &#039;&#039;&#039;Sinks&#039;&#039;&#039; have only one port. These represent elements that simply produce or consume Views.&lt;br /&gt;
* &#039;&#039;&#039;Transforms&#039;&#039;&#039; consume one type of View and produce another. The Node Inspector is used to adjust settings. Notably, the Transform type is used to change from &lt;br /&gt;
** Automatic transform that draws on semantic and measurement information to mediate between the two Views:&lt;br /&gt;
*: [[File:Imeditor - AutoTransform.png|none|200px]]&lt;br /&gt;
** Manual transform, which allows arbitrary assignment fields which will be parsed and incorporated into the generated transformation code:&lt;br /&gt;
*:[[File:Imeditor - ManualTransform.png|none|200px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filters&#039;&#039;&#039; require a &#039;Test&#039; field that will filter out Views for which the test evaluates to False.&lt;br /&gt;
* &#039;&#039;&#039;Transporters&#039;&#039;&#039; allow you to select a &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; to transmit across.&lt;br /&gt;
* &#039;&#039;&#039;FanIns&#039;&#039;&#039; allow for several input connections and only outputs one type.&lt;br /&gt;
* &#039;&#039;&#039;Generics&#039;&#039;&#039; can have any number of input or output connections.&lt;br /&gt;
* &#039;&#039;&#039;SIM Adapters&#039;&#039;&#039; for Single Instance Messaging communication style.&lt;br /&gt;
* &#039;&#039;&#039;Queuing Adapters&#039;&#039;&#039; for Queuing communication style.&lt;br /&gt;
* &#039;&#039;&#039;Data Pumps&#039;&#039;&#039; periodically poll the previous block to move messages forward.&amp;lt;p&amp;gt;The Adapter blocks allow interoperability when the UoP Message Port is expecting a certain kind of communication style.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
Connections are created by dragging from an output port to an input port:&lt;br /&gt;
[[File:Imeditor - Connection1.png|none|thumb|678x678px]]&lt;br /&gt;
If the data types are inconsistent then the connection will turn red and you won&#039;t be allowed to save. In this situation, we have a UoP Instance node outputting BasicTypes, and sending it to an Endpoint expecting ComplexTypes:&lt;br /&gt;
[[File:Mismatched.png|none|thumb|511x511px]]&lt;br /&gt;
&lt;br /&gt;
=== Ports ===&lt;br /&gt;
Ports facilitate the type that is used during context node connections and can be either input or output endpoints. Ports can accessed from the Node Inspector on the right-hand side when selecting a node with ports. All ports have rolename, flowtrigger, type, and a special identifier field depending on which type is selected. Additionally, ports can be dragged around a context nodes border from within the context.&lt;br /&gt;
&lt;br /&gt;
There are two types of ports:&lt;br /&gt;
&lt;br /&gt;
a) Data Type &lt;br /&gt;
&lt;br /&gt;
Data Type must be given from an existing view type from the model.&lt;br /&gt;
[[File:Imeditor - PortDefault.png|none|thumb]]&lt;br /&gt;
b) Template type&lt;br /&gt;
&lt;br /&gt;
Template type is determined by the user.&lt;br /&gt;
[[File:Imeditor - PortTemplated.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Composed Block Integration Contexts ==&lt;br /&gt;
The composed block integration context is a special kind of context that can be nested inside another context of any type, treating it as a context node via a composed block instance. &lt;br /&gt;
&lt;br /&gt;
Any high-level context can include a composed block instance to simplify complex modeling and connections. This setup lets viewers understand the overall flow without getting overwhelmed by the modeling details held within the composed block context.&lt;br /&gt;
&lt;br /&gt;
=== Switching an Integration Context to Composed ===&lt;br /&gt;
A context can be switched from normal to composed from the context tab from within the side panel. Once switched, the context will behave just like a normal context but obtain a blue border and allow access to the composed ports. &lt;br /&gt;
[[File:Imeditor - ComposedSwitch.png|none|thumb|786x786px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Ports ===&lt;br /&gt;
From within the composed block context, the user may drag in any number of Composed In/Out port nodes. The composed ports nodes have only one respective input/output port and can be connected to the other context nodes. They need to be configured similarly to normal ports and require a Type and designated identifier (DataType or TemplateType).&lt;br /&gt;
&lt;br /&gt;
These composed port nodes are identical to the ones utilized by a composed block instance.&lt;br /&gt;
[[File:Imeditor - trimmedComposedPort1.png|none|thumb|794x794px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Context Instances ===&lt;br /&gt;
After the user is finished creating their composed block context and either saves or commits it, the composed block context can be seen in the NavTree and is ready to be dragged in as an instance to another context of any type.&lt;br /&gt;
&lt;br /&gt;
Once dragged in, it behaves like the other context nodes and can be connected to any of the other nodes and even other composed block context instances. The ports represent the composed ports modeled in the actual composed block context.&lt;br /&gt;
[[File:Imeditor - ComposedInstance.png|none|thumb|831x831px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
CinC generation targets a different type of element called a &#039;&#039;&#039;Main Program&#039;&#039;&#039;. These are created from the main &#039;CREATE&#039; dropdown.&lt;br /&gt;
[[File:Imeditor - Codegen1.png|none|thumb|830x830px]]&lt;br /&gt;
Once your Main Program exists, you can associate UoP Instances to it so they become part of the generated code.&lt;br /&gt;
[[File:Imeditor - Codegen2.png|none|thumb|834x834px]]&lt;br /&gt;
&lt;br /&gt;
Similarly, Main Programs can be placed in &#039;&#039;&#039;Processing Elements&#039;&#039;&#039; - but these are not incorporated into generation yet.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1270</id>
		<title>Integration Model Editor</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1270"/>
		<updated>2024-07-23T18:25:38Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Transport Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Integration Model (IM) Editor is a groundbreaking new region of PHENOM that combines visualizations with direct model editing.&lt;br /&gt;
&lt;br /&gt;
The Integration Model is perhaps the most important model of them all. It provides a representation of how your UoPs and communication channels are laid out in the physical world.&lt;br /&gt;
&lt;br /&gt;
A well-designed IM is what allows us to generate a fully configured CinC transport layer.&lt;br /&gt;
&lt;br /&gt;
== UoP Instances ==&lt;br /&gt;
&#039;&#039;&#039;UoP Instances&#039;&#039;&#039; are, as the name suggests, instantiated Units of Portability. They can be created from the IM Editor or from the &#039;Create&#039; dropdown in regular Navigate mode.&lt;br /&gt;
&lt;br /&gt;
Each one is given a name and a Configuration URI (optional). You are also expected to select some subset of the UoP&#039;s Connections to use as &#039;&#039;&#039;Endpoints&#039;&#039;&#039; in the &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;.&lt;br /&gt;
[[File:Imeditor - UoPInstance.png|none|thumb|920x920px]]&lt;br /&gt;
&lt;br /&gt;
== Transport Channels ==&lt;br /&gt;
A &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; holds information required to transmit across some outside channel.&lt;br /&gt;
&lt;br /&gt;
Currently UDP channels are supported.&lt;br /&gt;
&lt;br /&gt;
At the moment, you are expected to use the description field to populate the following comma-separated values: &#039;&#039;&#039;ip, local port, destination ip, destination port, ttl&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Integration Contexts ==&lt;br /&gt;
This is where we find the real meat and potatoes of your integration situation. A Context is a graph representing the flow of DataTypes, or &#039;&#039;&#039;Views&#039;&#039;&#039;, amongst &#039;&#039;&#039;UoP Instances&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A given context can pull in the items discussed above. In fact, a given &#039;&#039;&#039;UoP Instance&#039;&#039;&#039; might be used in multiple &#039;&#039;&#039;Contexts&#039;&#039;&#039;. The different Contexts simply illustrate different aspects of the layout.&lt;br /&gt;
&lt;br /&gt;
The IM Editor lets you work on one &#039;&#039;&#039;Context&#039;&#039;&#039; at a time. First, drag and drop to insert a &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;. (Technically, the UoP Instance exists outside the Context, but since it&#039;s connected to things inside, it will be useful to have it here).&lt;br /&gt;
&lt;br /&gt;
=== Transport Nodes ===&lt;br /&gt;
Transport nodes come in several flavors which can be created by dragging and dropping from the Stencil tool on the left-hand side. &lt;br /&gt;
&lt;br /&gt;
Once placed in the &#039;&#039;&#039;Context&#039;&#039;&#039;, the Node Inspector on the right-hand side is used to give the nodes names, descriptions, and other data specific to its type.&lt;br /&gt;
[[File:Imeditor - Sidepanel.png|none|thumb|916x916px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Sources&#039;&#039;&#039; / &#039;&#039;&#039;Sinks&#039;&#039;&#039; have only one port. These represent elements that simply produce or consume Views.&lt;br /&gt;
* &#039;&#039;&#039;Transforms&#039;&#039;&#039; consume one type of View and produce another. The Node Inspector is used to adjust settings. Notably, the Transform type is used to change from &lt;br /&gt;
** Automatic transform that draws on semantic and measurement information to mediate between the two Views: test&lt;br /&gt;
[[File:Imeditor - AutoTransform.png|none|thumb|221x221px]]&lt;br /&gt;
&lt;br /&gt;
** Manual transform, which allows arbitrary assignment fields which will be parsed and incorporated into the generated transformation code:&lt;br /&gt;
++[[File:Imeditor - ManualTransform.png|none|thumb|282x282px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filters&#039;&#039;&#039; require a &#039;Test&#039; field that will filter out Views for which the test evaluates to False.&lt;br /&gt;
* &#039;&#039;&#039;Transporters&#039;&#039;&#039; allow you to select a &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; to transmit across.&lt;br /&gt;
* &#039;&#039;&#039;FanIns&#039;&#039;&#039; allow for several input connections and only outputs one type.&lt;br /&gt;
* &#039;&#039;&#039;Generics&#039;&#039;&#039; can have any number of input or output connections.&lt;br /&gt;
* &#039;&#039;&#039;SIM Adapters&#039;&#039;&#039; for Single Instance Messaging communication style.&lt;br /&gt;
* &#039;&#039;&#039;Queuing Adapters&#039;&#039;&#039; for Queuing communication style.&lt;br /&gt;
* &#039;&#039;&#039;Data Pumps&#039;&#039;&#039; periodically poll the previous block to move messages forward.&amp;lt;p&amp;gt;The Adapter blocks allow interoperability when the UoP Message Port is expecting a certain kind of communication style.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
Connections are created by dragging from an output port to an input port:&lt;br /&gt;
[[File:Imeditor - Connection1.png|none|thumb|678x678px]]&lt;br /&gt;
If the data types are inconsistent then the connection will turn red and you won&#039;t be allowed to save. In this situation, we have a UoP Instance node outputting BasicTypes, and sending it to an Endpoint expecting ComplexTypes:&lt;br /&gt;
[[File:Mismatched.png|none|thumb|511x511px]]&lt;br /&gt;
&lt;br /&gt;
=== Ports ===&lt;br /&gt;
Ports facilitate the type that is used during context node connections and can be either input or output endpoints. Ports can accessed from the Node Inspector on the right-hand side when selecting a node with ports. All ports have rolename, flowtrigger, type, and a special identifier field depending on which type is selected. Additionally, ports can be dragged around a context nodes border from within the context.&lt;br /&gt;
&lt;br /&gt;
There are two types of ports:&lt;br /&gt;
&lt;br /&gt;
a) Data Type &lt;br /&gt;
&lt;br /&gt;
Data Type must be given from an existing view type from the model.&lt;br /&gt;
[[File:Imeditor - PortDefault.png|none|thumb]]&lt;br /&gt;
b) Template type&lt;br /&gt;
&lt;br /&gt;
Template type is determined by the user.&lt;br /&gt;
[[File:Imeditor - PortTemplated.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Composed Block Integration Contexts ==&lt;br /&gt;
The composed block integration context is a special kind of context that can be nested inside another context of any type, treating it as a context node via a composed block instance. &lt;br /&gt;
&lt;br /&gt;
Any high-level context can include a composed block instance to simplify complex modeling and connections. This setup lets viewers understand the overall flow without getting overwhelmed by the modeling details held within the composed block context.&lt;br /&gt;
&lt;br /&gt;
=== Switching an Integration Context to Composed ===&lt;br /&gt;
A context can be switched from normal to composed from the context tab from within the side panel. Once switched, the context will behave just like a normal context but obtain a blue border and allow access to the composed ports. &lt;br /&gt;
[[File:Imeditor - ComposedSwitch.png|none|thumb|786x786px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Ports ===&lt;br /&gt;
From within the composed block context, the user may drag in any number of Composed In/Out port nodes. The composed ports nodes have only one respective input/output port and can be connected to the other context nodes. They need to be configured similarly to normal ports and require a Type and designated identifier (DataType or TemplateType).&lt;br /&gt;
&lt;br /&gt;
These composed port nodes are identical to the ones utilized by a composed block instance.&lt;br /&gt;
[[File:Imeditor - trimmedComposedPort1.png|none|thumb|794x794px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Context Instances ===&lt;br /&gt;
After the user is finished creating their composed block context and either saves or commits it, the composed block context can be seen in the NavTree and is ready to be dragged in as an instance to another context of any type.&lt;br /&gt;
&lt;br /&gt;
Once dragged in, it behaves like the other context nodes and can be connected to any of the other nodes and even other composed block context instances. The ports represent the composed ports modeled in the actual composed block context.&lt;br /&gt;
[[File:Imeditor - ComposedInstance.png|none|thumb|831x831px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
CinC generation targets a different type of element called a &#039;&#039;&#039;Main Program&#039;&#039;&#039;. These are created from the main &#039;CREATE&#039; dropdown.&lt;br /&gt;
[[File:Imeditor - Codegen1.png|none|thumb|830x830px]]&lt;br /&gt;
Once your Main Program exists, you can associate UoP Instances to it so they become part of the generated code.&lt;br /&gt;
[[File:Imeditor - Codegen2.png|none|thumb|834x834px]]&lt;br /&gt;
&lt;br /&gt;
Similarly, Main Programs can be placed in &#039;&#039;&#039;Processing Elements&#039;&#039;&#039; - but these are not incorporated into generation yet.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1268</id>
		<title>Integration Model Editor</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1268"/>
		<updated>2024-07-23T18:14:47Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Transport Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Integration Model (IM) Editor is a groundbreaking new region of PHENOM that combines visualizations with direct model editing.&lt;br /&gt;
&lt;br /&gt;
The Integration Model is perhaps the most important model of them all. It provides a representation of how your UoPs and communication channels are laid out in the physical world.&lt;br /&gt;
&lt;br /&gt;
A well-designed IM is what allows us to generate a fully configured CinC transport layer.&lt;br /&gt;
&lt;br /&gt;
== UoP Instances ==&lt;br /&gt;
&#039;&#039;&#039;UoP Instances&#039;&#039;&#039; are, as the name suggests, instantiated Units of Portability. They can be created from the IM Editor or from the &#039;Create&#039; dropdown in regular Navigate mode.&lt;br /&gt;
&lt;br /&gt;
Each one is given a name and a Configuration URI (optional). You are also expected to select some subset of the UoP&#039;s Connections to use as &#039;&#039;&#039;Endpoints&#039;&#039;&#039; in the &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;.&lt;br /&gt;
[[File:Imeditor - UoPInstance.png|none|thumb|920x920px]]&lt;br /&gt;
&lt;br /&gt;
== Transport Channels ==&lt;br /&gt;
A &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; holds information required to transmit across some outside channel.&lt;br /&gt;
&lt;br /&gt;
Currently UDP channels are supported.&lt;br /&gt;
&lt;br /&gt;
At the moment, you are expected to use the description field to populate the following comma-separated values: &#039;&#039;&#039;ip, local port, destination ip, destination port, ttl&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Integration Contexts ==&lt;br /&gt;
This is where we find the real meat and potatoes of your integration situation. A Context is a graph representing the flow of DataTypes, or &#039;&#039;&#039;Views&#039;&#039;&#039;, amongst &#039;&#039;&#039;UoP Instances&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A given context can pull in the items discussed above. In fact, a given &#039;&#039;&#039;UoP Instance&#039;&#039;&#039; might be used in multiple &#039;&#039;&#039;Contexts&#039;&#039;&#039;. The different Contexts simply illustrate different aspects of the layout.&lt;br /&gt;
&lt;br /&gt;
The IM Editor lets you work on one &#039;&#039;&#039;Context&#039;&#039;&#039; at a time. First, drag and drop to insert a &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;. (Technically, the UoP Instance exists outside the Context, but since it&#039;s connected to things inside, it will be useful to have it here).&lt;br /&gt;
&lt;br /&gt;
=== Transport Nodes ===&lt;br /&gt;
Transport nodes come in several flavors which can be created by dragging and dropping from the Stencil tool on the left-hand side. &lt;br /&gt;
&lt;br /&gt;
Once placed in the &#039;&#039;&#039;Context&#039;&#039;&#039;, the Node Inspector on the right-hand side is used to give the nodes names, descriptions, and other data specific to its type.&lt;br /&gt;
[[File:Imeditor - Sidepanel.png|none|thumb|916x916px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Sources&#039;&#039;&#039; / &#039;&#039;&#039;Sinks&#039;&#039;&#039; have only one port. These represent elements that simply produce or consume Views.&lt;br /&gt;
* &#039;&#039;&#039;Transforms&#039;&#039;&#039; consume one type of View and produce another. The Node Inspector is used to adjust settings. Notably, the Transform type is used to change from &lt;br /&gt;
** Automatic transform that draws on semantic and measurement information to mediate between the two Views:&lt;br /&gt;
++[[File:Imeditor - AutoTransform.png|none|thumb|221x221px]]&lt;br /&gt;
&lt;br /&gt;
** Manual transform, which allows arbitrary assignment fields which will be parsed and incorporated into the generated transformation code:&lt;br /&gt;
++[[File:Imeditor - ManualTransform.png|none|thumb|282x282px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filters&#039;&#039;&#039; require a &#039;Test&#039; field that will filter out Views for which the test evaluates to False.&lt;br /&gt;
* &#039;&#039;&#039;Transporters&#039;&#039;&#039; allow you to select a &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; to transmit across.&lt;br /&gt;
* &#039;&#039;&#039;Fanins&#039;&#039;&#039; allow for several input connections and only outputs one type.&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Generics&#039;&#039;&#039;&#039;&#039; can have any number of input or output connections.&lt;br /&gt;
* &#039;&#039;&#039;SIM Adapters&#039;&#039;&#039; for Single Instance Messaging communication style.&lt;br /&gt;
* &#039;&#039;&#039;Queuing Adapters&#039;&#039;&#039; for Queuing communication style.&lt;br /&gt;
* &#039;&#039;&#039;Data Pumps&#039;&#039;&#039; periodically poll the previous block to move messages forward.&amp;lt;p&amp;gt;The Adapter blocks allow interoperability when the UoP Message Port is expecting a certain kind of communication style.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
Connections are created by dragging from an output port to an input port:&lt;br /&gt;
[[File:Imeditor - Connection1.png|none|thumb|678x678px]]&lt;br /&gt;
If the data types are inconsistent then the connection will turn red and you won&#039;t be allowed to save. In this situation, we have a UoP Instance node outputting BasicTypes, and sending it to an Endpoint expecting ComplexTypes:&lt;br /&gt;
[[File:Mismatched.png|none|thumb|511x511px]]&lt;br /&gt;
&lt;br /&gt;
=== Ports ===&lt;br /&gt;
Ports facilitate the type that is used during context node connections and can be either input or output endpoints. Ports can accessed from the Node Inspector on the right-hand side when selecting a node with ports. All ports have rolename, flowtrigger, type, and a special identifier field depending on which type is selected. Additionally, ports can be dragged around a context nodes border from within the context.&lt;br /&gt;
&lt;br /&gt;
There are two views when editing a ports Type:&lt;br /&gt;
&lt;br /&gt;
a) Default &amp;amp; Data Type &lt;br /&gt;
&lt;br /&gt;
Data Type must be given from an existing view type from the model.&lt;br /&gt;
[[File:Imeditor - PortDefault.png|none|thumb]]&lt;br /&gt;
b) Templated &amp;amp; Template type&lt;br /&gt;
&lt;br /&gt;
Template type must be typed into the input and is determined by the user.&lt;br /&gt;
[[File:Imeditor - PortTemplated.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Composed Block Integration Contexts ==&lt;br /&gt;
The composed block integration context is a special kind of context that can be nested inside another context of any type, treating it as a context node via a composed block instance. &lt;br /&gt;
&lt;br /&gt;
Any high-level context can include a composed block instance to simplify complex modeling and connections. This setup lets viewers understand the overall flow without getting overwhelmed by the modeling details held within the composed block context.&lt;br /&gt;
&lt;br /&gt;
=== Switching an Integration Context to Composed ===&lt;br /&gt;
A context can be switched from normal to composed from the context tab from within the side panel. Once switched, the context will behave just like a normal context but obtain a blue border and allow access to the composed ports. &lt;br /&gt;
[[File:Imeditor - ComposedSwitch.png|none|thumb|786x786px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Ports ===&lt;br /&gt;
From within the composed block context, the user may drag in any number of Composed In/Out port nodes. The composed ports nodes have only one respective input/output port and can be connected to the other context nodes. They need to be configured similarly to normal ports and require a Type and designated identifier (DataType or TemplateType).&lt;br /&gt;
&lt;br /&gt;
These composed port nodes are identical to the ones utilized by a composed block instance.&lt;br /&gt;
[[File:Imeditor - trimmedComposedPort1.png|none|thumb|794x794px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Context Instances ===&lt;br /&gt;
After the user is finished creating their composed block context and either saves or commits it, the composed block context can be seen in the NavTree and is ready to be dragged in as an instance to another context of any type.&lt;br /&gt;
&lt;br /&gt;
Once dragged in, it behaves like the other context nodes and can be connected to any of the other nodes and even other composed block context instances. The ports represent the composed ports modeled in the actual composed block context.&lt;br /&gt;
[[File:Imeditor - ComposedInstance.png|none|thumb|831x831px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
CinC generation targets a different type of element called a &#039;&#039;&#039;Main Program&#039;&#039;&#039;. These are created from the main &#039;CREATE&#039; dropdown.&lt;br /&gt;
[[File:Imeditor - Codegen1.png|none|thumb|830x830px]]&lt;br /&gt;
Once your Main Program exists, you can associate UoP Instances to it so they become part of the generated code.&lt;br /&gt;
[[File:Imeditor - Codegen2.png|none|thumb|834x834px]]&lt;br /&gt;
&lt;br /&gt;
Similarly, Main Programs can be placed in &#039;&#039;&#039;Processing Elements&#039;&#039;&#039; - but these are not incorporated into generation yet.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1267</id>
		<title>Integration Model Editor</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Integration_Model_Editor&amp;diff=1267"/>
		<updated>2024-07-23T18:07:28Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Transport Nodes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Integration Model (IM) Editor is a groundbreaking new region of PHENOM that combines visualizations with direct model editing.&lt;br /&gt;
&lt;br /&gt;
The Integration Model is perhaps the most important model of them all. It provides a representation of how your UoPs and communication channels are laid out in the physical world.&lt;br /&gt;
&lt;br /&gt;
A well-designed IM is what allows us to generate a fully configured CinC transport layer.&lt;br /&gt;
&lt;br /&gt;
== UoP Instances ==&lt;br /&gt;
&#039;&#039;&#039;UoP Instances&#039;&#039;&#039; are, as the name suggests, instantiated Units of Portability. They can be created from the IM Editor or from the &#039;Create&#039; dropdown in regular Navigate mode.&lt;br /&gt;
&lt;br /&gt;
Each one is given a name and a Configuration URI (optional). You are also expected to select some subset of the UoP&#039;s Connections to use as &#039;&#039;&#039;Endpoints&#039;&#039;&#039; in the &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;.&lt;br /&gt;
[[File:Imeditor - UoPInstance.png|none|thumb|920x920px]]&lt;br /&gt;
&lt;br /&gt;
== Transport Channels ==&lt;br /&gt;
A &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; holds information required to transmit across some outside channel.&lt;br /&gt;
&lt;br /&gt;
Currently UDP channels are supported.&lt;br /&gt;
&lt;br /&gt;
At the moment, you are expected to use the description field to populate the following comma-separated values: &#039;&#039;&#039;ip, local port, destination ip, destination port, ttl&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Integration Contexts ==&lt;br /&gt;
This is where we find the real meat and potatoes of your integration situation. A Context is a graph representing the flow of DataTypes, or &#039;&#039;&#039;Views&#039;&#039;&#039;, amongst &#039;&#039;&#039;UoP Instances&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
A given context can pull in the items discussed above. In fact, a given &#039;&#039;&#039;UoP Instance&#039;&#039;&#039; might be used in multiple &#039;&#039;&#039;Contexts&#039;&#039;&#039;. The different Contexts simply illustrate different aspects of the layout.&lt;br /&gt;
&lt;br /&gt;
The IM Editor lets you work on one &#039;&#039;&#039;Context&#039;&#039;&#039; at a time. First, drag and drop to insert a &#039;&#039;&#039;UoP Instance&#039;&#039;&#039;. (Technically, the UoP Instance exists outside the Context, but since it&#039;s connected to things inside, it will be useful to have it here).&lt;br /&gt;
&lt;br /&gt;
=== Transport Nodes ===&lt;br /&gt;
Transport nodes come in several flavors which can be created by dragging and dropping from the Stencil tool on the left-hand side. &lt;br /&gt;
&lt;br /&gt;
Once placed in the &#039;&#039;&#039;Context&#039;&#039;&#039;, the Node Inspector on the right-hand side is used to give the nodes names, descriptions, and other data specific to its type.&lt;br /&gt;
[[File:Imeditor - Sidepanel.png|none|thumb|916x916px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Sources&#039;&#039;&#039; / &#039;&#039;&#039;Sinks&#039;&#039;&#039; have only one port. These represent elements that simply produce or consume Views.&lt;br /&gt;
* &#039;&#039;&#039;Transforms&#039;&#039;&#039; consume one type of View and produce another. The Node Inspector is used to adjust settings. Notably, the Transform type is used to change from &lt;br /&gt;
** Automatic transform that draws on semantic and measurement information to mediate between the two Views:&lt;br /&gt;
[[File:Imeditor - AutoTransform.png|none|thumb|221x221px]]&lt;br /&gt;
&lt;br /&gt;
** Manual transform, which allows arbitrary assignment fields which will be parsed and incorporated into the generated transformation code:&lt;br /&gt;
[[File:Imeditor - ManualTransform.png|none|thumb|282x282px]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Filters&#039;&#039;&#039; require a &#039;Test&#039; field that will filter out Views for which the test evaluates to False.&lt;br /&gt;
* &#039;&#039;&#039;Transporters&#039;&#039;&#039; allow you to select a &#039;&#039;&#039;Transport Channel&#039;&#039;&#039; to transmit across.&lt;br /&gt;
* &#039;&#039;&#039;Fanins&#039;&#039;&#039; allow for several input connections and only outputs one type.&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Generics&#039;&#039;&#039;&#039;&#039; can have any number of input or output connections.&lt;br /&gt;
* &#039;&#039;&#039;SIM Adapters&#039;&#039;&#039; for Single Instance Messaging communication style.&lt;br /&gt;
* &#039;&#039;&#039;Queuing Adapters&#039;&#039;&#039; for Queuing communication style.&lt;br /&gt;
* &#039;&#039;&#039;Data Pumps&#039;&#039;&#039; periodically poll the previous block to move messages forward.&amp;lt;p&amp;gt;The Adapter blocks allow interoperability when the UoP Message Port is expecting a certain kind of communication style.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Connections ===&lt;br /&gt;
Connections are created by dragging from an output port to an input port:&lt;br /&gt;
[[File:Imeditor - Connection1.png|none|thumb|678x678px]]&lt;br /&gt;
If the data types are inconsistent then the connection will turn red and you won&#039;t be allowed to save. In this situation, we have a UoP Instance node outputting BasicTypes, and sending it to an Endpoint expecting ComplexTypes:&lt;br /&gt;
[[File:Mismatched.png|none|thumb|511x511px]]&lt;br /&gt;
&lt;br /&gt;
=== Ports ===&lt;br /&gt;
Ports facilitate the type that is used during context node connections and can be either input or output endpoints. Ports can accessed from the Node Inspector on the right-hand side when selecting a node with ports. All ports have rolename, flowtrigger, type, and a special identifier field depending on which type is selected. Additionally, ports can be dragged around a context nodes border from within the context.&lt;br /&gt;
&lt;br /&gt;
There are two views when editing a ports Type:&lt;br /&gt;
&lt;br /&gt;
a) Default &amp;amp; Data Type &lt;br /&gt;
&lt;br /&gt;
Data Type must be given from an existing view type from the model.&lt;br /&gt;
[[File:Imeditor - PortDefault.png|none|thumb]]&lt;br /&gt;
b) Templated &amp;amp; Template type&lt;br /&gt;
&lt;br /&gt;
Template type must be typed into the input and is determined by the user.&lt;br /&gt;
[[File:Imeditor - PortTemplated.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
== Composed Block Integration Contexts ==&lt;br /&gt;
The composed block integration context is a special kind of context that can be nested inside another context of any type, treating it as a context node via a composed block instance. &lt;br /&gt;
&lt;br /&gt;
Any high-level context can include a composed block instance to simplify complex modeling and connections. This setup lets viewers understand the overall flow without getting overwhelmed by the modeling details held within the composed block context.&lt;br /&gt;
&lt;br /&gt;
=== Switching an Integration Context to Composed ===&lt;br /&gt;
A context can be switched from normal to composed from the context tab from within the side panel. Once switched, the context will behave just like a normal context but obtain a blue border and allow access to the composed ports. &lt;br /&gt;
[[File:Imeditor - ComposedSwitch.png|none|thumb|786x786px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Ports ===&lt;br /&gt;
From within the composed block context, the user may drag in any number of Composed In/Out port nodes. The composed ports nodes have only one respective input/output port and can be connected to the other context nodes. They need to be configured similarly to normal ports and require a Type and designated identifier (DataType or TemplateType).&lt;br /&gt;
&lt;br /&gt;
These composed port nodes are identical to the ones utilized by a composed block instance.&lt;br /&gt;
[[File:Imeditor - trimmedComposedPort1.png|none|thumb|794x794px]]&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Context Instances ===&lt;br /&gt;
After the user is finished creating their composed block context and either saves or commits it, the composed block context can be seen in the NavTree and is ready to be dragged in as an instance to another context of any type.&lt;br /&gt;
&lt;br /&gt;
Once dragged in, it behaves like the other context nodes and can be connected to any of the other nodes and even other composed block context instances. The ports represent the composed ports modeled in the actual composed block context.&lt;br /&gt;
[[File:Imeditor - ComposedInstance.png|none|thumb|831x831px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Code Generation ==&lt;br /&gt;
CinC generation targets a different type of element called a &#039;&#039;&#039;Main Program&#039;&#039;&#039;. These are created from the main &#039;CREATE&#039; dropdown.&lt;br /&gt;
[[File:Imeditor - Codegen1.png|none|thumb|830x830px]]&lt;br /&gt;
Once your Main Program exists, you can associate UoP Instances to it so they become part of the generated code.&lt;br /&gt;
[[File:Imeditor - Codegen2.png|none|thumb|834x834px]]&lt;br /&gt;
&lt;br /&gt;
Similarly, Main Programs can be placed in &#039;&#039;&#039;Processing Elements&#039;&#039;&#039; - but these are not incorporated into generation yet.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Templates&amp;diff=1263</id>
		<title>Templates</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Templates&amp;diff=1263"/>
		<updated>2024-07-23T17:44:09Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Available Node Types / Attributes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Templates allow users to define a custom format in which to extract data from their project, using Apache FreeMarker syntax. These can be used either directly from the editing page or in the [[Data Model]] tab of the [[Generate]] mode as a means to expand generation options beyond the defaults and help to support unique user requirements.&lt;br /&gt;
&lt;br /&gt;
== User Interface ==&lt;br /&gt;
Templates can be created, reviewed, and edited in the Templates tab of the Generate page.&lt;br /&gt;
After editing a template, the user can:&lt;br /&gt;
* Save: saves a new template or any changes to an existing template.&lt;br /&gt;
* Clear: erases the content of the code window&lt;br /&gt;
* Reset: reverts all of the changes made when editing an existing template or erases any progress made when creating a new template&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-generate-templates.png|800px|border]]&lt;br /&gt;
&lt;br /&gt;
The Filter By dropdown at the bottom is used to filter the nodes that will be generated if the user wants to generate a model from this page using the selected template.&lt;br /&gt;
&lt;br /&gt;
== Template Syntax ==&lt;br /&gt;
Generally, templates are not used to extract or display data about a particular project node, but are rather used to format the reporting or indexing of a type or several types of node within the project. At some point in the template, a user will indicate what type or types of node will be used to fill in the contents of the file to be generated. The user will then be able to use a special syntax as placeholder for the data to be extracted from the project, surrounding the placeholders is any additional code necessary for the user&#039;s requirements.&lt;br /&gt;
&lt;br /&gt;
=== Basic Template Syntax ===&lt;br /&gt;
PHENOM&#039;s templates use Apache FreeMarker, a full-featured template engine. You can reference their documentation for features that are not covered below.&lt;br /&gt;
&lt;br /&gt;
To use a particular type of node to fill a template with data, declare the type and an alias for it in the following format: &amp;lt;#list &#039;&#039;&#039;type&#039;&#039;&#039; as &#039;&#039;&#039;alias&#039;&#039;&#039;&amp;gt;&amp;lt;/#list&amp;gt; Any code that go between the opening and closing list tags will be repeated for each node of the type, much like a loop iterating and writing out the contents of the list tag, each time using data from a new node of the requested type. The following code taken from logical_model.html (a default template) will create an HTML table with a header row followed by a row for each measurement found in the project. Note how the &amp;lt;#list&amp;gt; tags surround the &amp;lt;tr&amp;gt; tag, which means that code for a new table row will be generated for each measurement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Phenom-generate-templates template syntax.png|none]]&lt;br /&gt;
&lt;br /&gt;
While the &amp;lt;#list&amp;gt; (ln. 11, 19) tags indicate a type of node to use and iterate over to generate code, the ${&#039;&#039;&#039;alias.attribute&#039;&#039;&#039;} (ln. 13 - 18) syntax is the placeholder which, at time of generation gets replaced with the value of the requested attribute of a particular node. Below is some HTML that the example template would generate.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Phenom-generate-templates generated HTML.png|none]]&lt;br /&gt;
&lt;br /&gt;
Note how the attributes inside of the curly brackets get replaced with data particular to a measurement node (ln. 11-16) . Also note that the &amp;quot;...&amp;quot; in the code (ln. 18) indicates all of the rows which would have been generated for the other measurements in the project.&lt;br /&gt;
&lt;br /&gt;
=== Iterating Over Child Nodes ===&lt;br /&gt;
Some nodes which can be used for generating templates may contain one or more child nodes or fields. A user can generate code for each one of these fields while iterating over the parent node by nesting list tags as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#list &#039;&#039;&#039;type&#039;&#039;&#039; as &#039;&#039;&#039;alias&#039;&#039;&#039;&amp;gt;&amp;lt;#list &#039;&#039;&#039;alias.field&#039;&#039;&#039; as &#039;&#039;&#039;fieldAlias&#039;&#039;&#039;&amp;gt;&amp;lt;/#list&amp;gt;&amp;lt;#list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, any code placed inside the internal &amp;lt;#list&amp;gt; tag would repeat for every field node of each type node. The code below (taken from view_comma_export.csv) is used to export data about each view field in the project:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-generate-templates node field extraction template.png|none]]&lt;br /&gt;
&lt;br /&gt;
Note that because calls like ${view.name} are placed inside the &amp;lt;#list&amp;gt; for the view field, this data will be repeated for each of the a given view&#039;s characteristic&#039;s rows.&lt;br /&gt;
&lt;br /&gt;
=== Available Node Types / Attributes ===&lt;br /&gt;
The following tables summarizes all of the node types which can be referenced using template syntax, accessible attributes, as well as attributes of any possible field nodes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! enums (Enumeration) !! &#039;&#039;enums.fields&#039;&#039; (Enum Literals) !! structs (IDLStructs) !! &#039;&#039;structs.fields&#039;&#039; !! views !! &#039;&#039;views.fields&#039;&#039; !! observables !! units !! measurements &lt;br /&gt;
!constraints&lt;br /&gt;
!entities&lt;br /&gt;
!entities.attributes&lt;br /&gt;
!uops&lt;br /&gt;
!uop.fields&lt;br /&gt;
|-&lt;br /&gt;
| name || name || name || name || guid || guid || guid || guid || guid &lt;br /&gt;
|guid&lt;br /&gt;
|guid&lt;br /&gt;
|guid&lt;br /&gt;
|uop_name&lt;br /&gt;
|port_name&lt;br /&gt;
|-&lt;br /&gt;
| description|| description|| modelName|| xmitype || name || name || name || name || name &lt;br /&gt;
|name&lt;br /&gt;
|name&lt;br /&gt;
|name&lt;br /&gt;
|uop_desc&lt;br /&gt;
|port_desc&lt;br /&gt;
|-&lt;br /&gt;
| measurement|| || || type|| description || type || description || description || description &lt;br /&gt;
|description&lt;br /&gt;
|description&lt;br /&gt;
|description&lt;br /&gt;
|&lt;br /&gt;
|pattern&lt;br /&gt;
|-&lt;br /&gt;
| measurement-guid|| || || || modelName|| xmitype || || || realizes &lt;br /&gt;
|type&lt;br /&gt;
|specializes&lt;br /&gt;
|type&lt;br /&gt;
|&lt;br /&gt;
|message_request_type&lt;br /&gt;
|-&lt;br /&gt;
| observable|| || || || parent_view|| description || || || measurement_system.name &lt;br /&gt;
|upperBound&lt;br /&gt;
|&lt;br /&gt;
|specializes&lt;br /&gt;
|&lt;br /&gt;
|response_type&lt;br /&gt;
|-&lt;br /&gt;
| observable-guid|| || || || is_union|| vector_type || || || measurement_system.description &lt;br /&gt;
|lowerBound&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|synchronization&lt;br /&gt;
|-&lt;br /&gt;
| fields|| || || || switch|| bound || || || measurement_system.external_standards_reference &lt;br /&gt;
|upperBoundInclusive&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|communication_style&lt;br /&gt;
|-&lt;br /&gt;
| || || || || enum_switch|| source || || || measurement_system.orientation &lt;br /&gt;
|lowerBoundInclusive&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|period&lt;br /&gt;
|-&lt;br /&gt;
| || || || || is_composite|| path || || || measurement_system.coordinate_system &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| || || || || || measurement || || || &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|type_model&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|type_parent&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|type_size&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|c_type&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|c_type_model&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|c_type_parent&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|source_name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|string_path&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|is_foreign&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|viewType&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|optional&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|union_cases&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|imported&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|c_imported&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|switch&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1261</id>
		<title>Projects and Models Management</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1261"/>
		<updated>2024-07-23T17:21:53Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: /* Copy Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projects &amp;amp; Models 101 ==&lt;br /&gt;
A &#039;&#039;&#039;project&#039;&#039;&#039; in PHENOM is composed of one or more models which are loaded together into a workspace.&lt;br /&gt;
A &#039;&#039;&#039;model&#039;&#039;&#039; is a collection of nodes. A node can be an entity, an association, an observable, a view…&lt;br /&gt;
One objective of a project is to be:&lt;br /&gt;
* Independent &lt;br /&gt;
* Complete: reflect the reality to the best of its ability&lt;br /&gt;
* Compliant  &lt;br /&gt;
* Valid  (or at least &amp;quot;validatable &amp;quot;)&lt;br /&gt;
A model in and of itself might not constitute a complete, compliant, or even valid project as it might depend on entities inside other models, making it impossible to load independently. However, by combining several models in a project, they can form a complete, compliant, and valid model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure1.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
The following diagram depicts how a model can be part of multiple projects.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-project model structure2.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Once a project is loaded into PHENOM, the node contents of its constituent models can be added to as well as edited.&lt;br /&gt;
&lt;br /&gt;
== Projects Management ==&lt;br /&gt;
When in PHENOM &amp;gt; Manage Models &amp;gt; Projects, the user can see the projects and models they have access to.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-projects models list.png|500px|border]]&lt;br /&gt;
&lt;br /&gt;
The project you are currently working on is displayed at the top of all the pages. Additionally, in the Manage Projects page, the active project is the expanded by default and has a different icon.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-active project.png|600px|border]]&lt;br /&gt;
 &lt;br /&gt;
To create a project, the user can click on the + button in the Projects list and then select existing models, import new FACE models, or add new blank models.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-new project.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
There are three ways a user can have access to a project or a model:&lt;br /&gt;
* The user creates it&lt;br /&gt;
* The user uploads it&lt;br /&gt;
* The user is assigned permissions from an external user&lt;br /&gt;
The user will see, for each model, its inheritors and versions.&lt;br /&gt;
&lt;br /&gt;
The user can easily switch between projects in the Projects Management page.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-switch-project-2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Model Versions ==&lt;br /&gt;
In PHENOM, models maintain the content as well as the record of changes made to that content.&lt;br /&gt;
&lt;br /&gt;
By default, each model has a &amp;quot;live&amp;quot; version. This is the version of the model which, when loaded in a project can be edited and amended.&lt;br /&gt;
&lt;br /&gt;
When the user is satisfied with the current state of a model, they can publish it, thus creating a “static” version of that model. A published version of a model is a snapshot of its content at one point in time. It cannot be added to or edited but can still be included in a project, referenced by and depended upon by the contents of a different model.&lt;br /&gt;
&lt;br /&gt;
In the example below, the model version FACE_SDM_306 and FACE_SDM_316 are a &amp;quot;published&amp;quot; version of the FACE_SDM model. While it can be shared with other users, included in a project, and referred to and depended upon by other models, it can never be edited. In the Model tree, all published models have their publication dates displayed for ease of use.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-published model.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
== Model Inheritance &amp;amp; Content Merging ==&lt;br /&gt;
The same model can be loaded as a part of several different projects. However, the users of those projects will not be able to edit the content of the model simultaneously.&lt;br /&gt;
When a user chooses to include in a project a model which is already a part of a different project, a &amp;quot;child&amp;quot; model will be created. This inheriting or &amp;quot;child&amp;quot; model is not a different version of a model, but rather its own model which inherits some portion of its content.&lt;br /&gt;
At first, the inheriting and the parent models are identical but as their respective user make changes, they grow apart. Therefore, it’s possible for this &amp;quot;child&amp;quot; model to merge its changes to and from the parent model.&lt;br /&gt;
A user can see the relationships between models in Manage Models &amp;gt; Projects &amp;gt; Model.&lt;br /&gt;
In this example, the model Coffee is the parent of the model Coffee_in_Coffee_2. This results from the Coffee_live version of the Coffee model being loaded into a new project. When edits are made in either the parent or child model, the changes can be merged between them.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model branching.png|600px|border]]&lt;br /&gt;
&lt;br /&gt;
Clicking on a live or published model will display its characteristics on the right panel. The user will be able to edit some of the model&#039;s characteristics and the permissions of the model, provided the user has Admin or Owner privileges for that model.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-model details2.png|border|800x800px]]&lt;br /&gt;
&lt;br /&gt;
== Copy Project ==&lt;br /&gt;
Copying a project allows for easy cloning of project content with just a click of a button. The resulting project will contain a child of all the live models of the original project and the same published models.&lt;br /&gt;
&lt;br /&gt;
To copy a project, the user just needs to select a project from their project tree and click the copy project icon on the top-right.&lt;br /&gt;
[[File:Manage - Copybtn.png|none|800px]]&lt;br /&gt;
The create copy project screen is very similar to the project creation screen where the user needs to input a new name and description for the copied project. Additionally, the user needs to decide whether or not they want to copy all of the permissions that are currently selected from the source project to the copied project before saving.&lt;br /&gt;
[[File:Manage - CopyCreate.png|none|800px]]&lt;br /&gt;
&lt;br /&gt;
== Sample Workflow ==&lt;br /&gt;
This section goes over a sample workflow which employs the PHENOM project and model structure concepts described in the sections above.&lt;br /&gt;
In the scenario laid out below, a group of users, Chris, Dave, Nick, and Riley are working on different parts of completing a data model and documenting a set of interfaces against it. Each of them plays a slightly different role in the process, and they will use some of PHENOM&#039;s Model management features to keep their work organized.&lt;br /&gt;
&lt;br /&gt;
=== Part 1 – Chris ===&lt;br /&gt;
Chris is working on updating the Shared Data Model (SDM) the group is using to conform to the latest changes released in an accepted standard. The user loads an SDM content file to create a model.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow-newModel.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatedSubmodel.png|border|300x300px]]&lt;br /&gt;
 &lt;br /&gt;
The user loads the model into an SDM_Editor project and begins to make the changes.&lt;br /&gt;
&lt;br /&gt;
[[File:Worlflow - CreatingProject.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - SwitchProject.png|border|300x300px]]&lt;br /&gt;
&lt;br /&gt;
Once the user has made the changes necessary to match a decided-upon standard, the user publishes a version v1 of his SDM model.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - PublishProject.png|border|300x300px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Worklow - PublishedModel.png|border|300x300px]]&lt;br /&gt;
  	 &lt;br /&gt;
Chris is going to make further changes in the SDM_Editor project, but that will be for the next standard update. In the meantime, the user wants to make the static version of the SDM they just published available to the rest of his team, so the user gives them Read permissions to it. However, making further changes to the SDM is his job and the user wants to stay in control of the process, so the user does not give any of his colleagues permissions to either the live version of the SDM model or the SDM_Editor project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-chris-7.png|border|829x829px]]&lt;br /&gt;
 &lt;br /&gt;
=== Part 2 – Dave ===&lt;br /&gt;
Dave is working on creating a Domain Specific Data Model (DSDM) for the team to use - he will be referencing the SDM Chris released in his efforts. He creates a new project into which he adds the SDM version he has access to and a blank model which will contain the DSDM content he creates.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Davecreate project.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
After Dave has added some content to his DSDM model which references nodes in the SDM, he will see that his DSDM model is now listed as dependent on the SDM model he has been using – which means, it can no longer be loaded without it.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - Dependencies.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
Nick and Riley will be documenting some interfaces against the domain model that Dave is working on. However, Dave does not want them to have to wait for him to have finished with all of his work before they can start. Also, as they work on their interface documentation, they may come up with good changes to the DSDM and suggest that they be included in Dave&#039;s work. So, Dave decided to share his project with Nick and Riley, giving them Read/Write permissions, which automatically gives them permissions to the active DSDM model version he&#039;s working on.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-manage-example-dave-4.png|border|812x812px]]&lt;br /&gt;
&lt;br /&gt;
=== Part 3 – Nick &amp;amp; Riley ===&lt;br /&gt;
Nick and Riley will be documenting interfaces using the DSDM that was shared with them, but they will be working with different sets of interfaces, each in his own project.&lt;br /&gt;
If they try to create a new project with just the DSDM, they will be rejected because they must also load in the SDM that was used to create it and on which it depends.&lt;br /&gt;
&lt;br /&gt;
[[File:Workflow - DepFailure.png|border|600x600px]]&lt;br /&gt;
 &lt;br /&gt;
Once they have the appropriate permissions to all of the content, they can create their individual project with the models to house their documentation work separate from the contents of both the SDM and the DSDM.&lt;br /&gt;
In the example below, Riley creates a RILEY_s_INTFC_DOC project including the DSDM_live model and a new blank model for his changes. By doing so, a new model, DSDM_IN_RILEY_S_INTFC_DOC, was created, inheriting from Dave’s DSDM_live.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage workflow - Final2.png|border|600x600px]]&lt;br /&gt;
&lt;br /&gt;
Dave and Riley will now be able to independently edit DSDM content and merge changes between their two models as they see appropriate.&lt;br /&gt;
Whenever Dave makes new updates to the DSDM, Nick and Riley have the opportunity to pull in those changes into their copies of the model. When either one of them makes a change to the DSDM portion of his project that he thinks should be included in the official version, they can make a push request to Dave&#039;s project that he can then either approve or ignore.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1259</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1259"/>
		<updated>2024-07-23T17:13:17Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These hands-on tutorials walk users through different exercises to learn different aspects of PHENOM.&lt;br /&gt;
&lt;br /&gt;
==Sample Workflows==&lt;br /&gt;
* [[Integration Model to CinC Generation]]&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
* [[Developing an Entity Model]]&lt;br /&gt;
* [[Document Interfaces using PHENOM Portal]]&lt;br /&gt;
&lt;br /&gt;
==Video Tutorials==&lt;br /&gt;
* [https://youtu.be/DLnrkxV-CyQ Introduction &amp;amp; Navigation]&lt;br /&gt;
* [https://youtu.be/sZw5jo3bnuE Importing Data Models]&lt;br /&gt;
* [https://youtu.be/b7g0xgm5_64 Sharing Data Models]&lt;br /&gt;
* [https://youtu.be/DwyibQqIsMQ Using Navigation Mode]&lt;br /&gt;
* [https://youtu.be/JLOMXk3jIEM The Diagram Tool]&lt;br /&gt;
* [https://youtu.be/nTfelA07Nzw Configuration Management]&lt;br /&gt;
* [https://youtu.be/J_Poq7v5_rE Subscription &amp;amp; User Management]&lt;br /&gt;
* [https://youtu.be/3MVA5TNSouM Expert Mode]&lt;br /&gt;
* [https://youtu.be/Fe-9O-T8c-g Tagging]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1258</id>
		<title>Tutorials</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Tutorials&amp;diff=1258"/>
		<updated>2024-07-23T17:13:03Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These hands-on tutorials walk users through different exercises to learn different aspects of PHENOM.&lt;br /&gt;
&lt;br /&gt;
==Sample Workflows==&lt;br /&gt;
* Integration Model to CinC Generation&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
* [[Developing an Entity Model]]&lt;br /&gt;
* [[Document Interfaces using PHENOM Portal]]&lt;br /&gt;
&lt;br /&gt;
==Video Tutorials==&lt;br /&gt;
* [https://youtu.be/DLnrkxV-CyQ Introduction &amp;amp; Navigation]&lt;br /&gt;
* [https://youtu.be/sZw5jo3bnuE Importing Data Models]&lt;br /&gt;
* [https://youtu.be/b7g0xgm5_64 Sharing Data Models]&lt;br /&gt;
* [https://youtu.be/DwyibQqIsMQ Using Navigation Mode]&lt;br /&gt;
* [https://youtu.be/JLOMXk3jIEM The Diagram Tool]&lt;br /&gt;
* [https://youtu.be/nTfelA07Nzw Configuration Management]&lt;br /&gt;
* [https://youtu.be/J_Poq7v5_rE Subscription &amp;amp; User Management]&lt;br /&gt;
* [https://youtu.be/3MVA5TNSouM Expert Mode]&lt;br /&gt;
* [https://youtu.be/Fe-9O-T8c-g Tagging]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1257</id>
		<title>How-To Articles</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1257"/>
		<updated>2024-07-23T17:11:40Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[Login]]&lt;br /&gt;
#[[Dashboard]]&lt;br /&gt;
#[[Search Bar]]&lt;br /&gt;
#[[User Settings]]&lt;br /&gt;
#[[Basic Navigation]]&lt;br /&gt;
#[[Data Modeling]]&lt;br /&gt;
#[[Integration Modeling]]&lt;br /&gt;
#[[Generate]]&lt;br /&gt;
#[[Manage Models]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1256</id>
		<title>How-To Articles</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=How-To_Articles&amp;diff=1256"/>
		<updated>2024-07-23T17:10:21Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[Login]]&lt;br /&gt;
#[[Dashboard]]&lt;br /&gt;
#[[Search Bar]]&lt;br /&gt;
#[[User Settings]]&lt;br /&gt;
#[[Basic Navigation]]&lt;br /&gt;
#[[Data Modeling]]&lt;br /&gt;
#[[Integration Modeling]]&lt;br /&gt;
#[[Integration Modeling Workflow Example]]&lt;br /&gt;
#[[Generate]]&lt;br /&gt;
#[[Manage Models]]&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Diagram&amp;diff=1172</id>
		<title>Diagram</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Diagram&amp;diff=1172"/>
		<updated>2024-07-09T14:49:52Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diagrams are a useful tools for visualizing and exploring your project. They demonstrate visual connectivity and relationships including associations, compositions and semantic paths. For convenience, they can be saved and exported for future re-use.&lt;br /&gt;
&lt;br /&gt;
== Diagram interface overview ==&lt;br /&gt;
=== Interface overview ===&lt;br /&gt;
[[File:Diagram overview.jpg|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The Diagram interface is composed of 5 parts:&lt;br /&gt;
# Main top menu for the most used features of diagrams&lt;br /&gt;
# Stencils for creating new diagram content&lt;br /&gt;
# Details and Usages panels on the right&lt;br /&gt;
# The center canvas to visualize and arrange diagram content&lt;br /&gt;
# The NavTree on the far left&lt;br /&gt;
&lt;br /&gt;
=== General menu actions ===&lt;br /&gt;
[[File:Diagram top menu3.png|border]]&lt;br /&gt;
&lt;br /&gt;
The first set of actions in the menu allows:&lt;br /&gt;
* Clear Diagram: Removes all objects from the canvas&lt;br /&gt;
* Auto layout: Rearranges all objects on the canvas&lt;br /&gt;
* Zoom: Custom zoom levels for the canvas area&lt;br /&gt;
&lt;br /&gt;
=== Interface modes ===&lt;br /&gt;
[[File:Connector visibility2.png|border]]&lt;br /&gt;
&lt;br /&gt;
A diagram can be used in one of two modes (1) Modeling (2) Projection:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modeling mode&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[[File:Diagram mode modeling.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
This is the standard entity diagramming mode that allows for the editing of entities and associations. This includes the creation of composition and association relationships.&lt;br /&gt;
&lt;br /&gt;
In modeling mode, the projection connectors are hidden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Projection mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram model projection.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
This mode is specifically designed for the creation and editing of Views. This includes the creation, editing and displaying of the semantic projection paths making up that View.&lt;br /&gt;
&lt;br /&gt;
In projection mode, the modeling connectors are hidden.&lt;br /&gt;
&lt;br /&gt;
== Managing elements on a Diagram ==&lt;br /&gt;
=== Adding elements to the diagram ===&lt;br /&gt;
Elements can be added to the diagram canvas from different locations:&lt;br /&gt;
* From the stencil panel: Dragging an object from the stencil panel will create new entities, associations, and views. These elements are not committed to any model, but can be found in the NavTree under the UncommittedEntities package.&lt;br /&gt;
* From the NavTree: Dragging an existing object from the Navtree will add those objects to the diagram canvas where they can be directly edited and saved within the diagram.&lt;br /&gt;
&lt;br /&gt;
To create a composition, click and drag the [[File:Diagram create composition.png|border]] icon to another object.&lt;br /&gt;
&lt;br /&gt;
To create an association, click and drag the [[File:Diagram create association.png|border]] icon to another object.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: An Association must have at least 2 connections to be valid.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Interacting with elements on the diagram ===&lt;br /&gt;
Most components on the diagram have a right-click contextual menu allowing the user to interact with them.&lt;br /&gt;
&lt;br /&gt;
Below is a table detailing how mouse clicks interact with the elements on the diagram.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Menu Item&lt;br /&gt;
!Action&lt;br /&gt;
|-&lt;br /&gt;
|Edit&lt;br /&gt;
|User can add/edit/hide/remove the node&#039;s attributes&lt;br /&gt;
|-&lt;br /&gt;
|Remove&lt;br /&gt;
|Remove&#039;s the node from the diagram. The removed node will continue to persist in the model.&lt;br /&gt;
|-&lt;br /&gt;
|Reveal in tree&lt;br /&gt;
|Finds the node in the Nav Tree. &lt;br /&gt;
|-&lt;br /&gt;
|Show all attributes&lt;br /&gt;
|To reduce on-screen clutter, the user can choose to hide specific attributes.  &amp;quot;Show all attributes&amp;quot; will reveal all hidden attributes.&lt;br /&gt;
|-&lt;br /&gt;
|Hide types&lt;br /&gt;
|To reduce on-screen clutter, the user can choose to the attributes&#039; type.&lt;br /&gt;
|-&lt;br /&gt;
|Show usage&lt;br /&gt;
|This will open the Usage side panel and display the node&#039;s referencers and referencees.&lt;br /&gt;
|}&lt;br /&gt;
[[File:Diagram description.png|border]]&lt;br /&gt;
&lt;br /&gt;
When hovering over an entity, a tooltip displays its description.&lt;br /&gt;
&lt;br /&gt;
When an entity or an association is selected, the right-side panel can display its details and usages:&lt;br /&gt;
* Details: Displays editable Name and Description fields for the entity.&lt;br /&gt;
* Usage: Displays usages of and relationships to that object throughout the rest of the model including Compositions, Associations, Specializations and Views.&lt;br /&gt;
&lt;br /&gt;
=== Deleting and removing elements ===&lt;br /&gt;
The option to &amp;quot;&#039;&#039;&#039;Remove&#039;&#039;&#039;&amp;quot; exists for all diagram objects. This means that they are removed from the diagram but they still exist in the model or in the UncommittedEntities list.&lt;br /&gt;
&lt;br /&gt;
An option located in the Gear menu on the far right of the menu bar allows the user to switch off the Delete/Remove confirmation messages for convenience.&lt;br /&gt;
&lt;br /&gt;
== Diagram management ==&lt;br /&gt;
[[File:Diagram management2.png|border]]&lt;br /&gt;
&lt;br /&gt;
There are 5 actions that can be performed on a diagram:&lt;br /&gt;
* Load: Allows the loading of a saved diagram and also the ability to delete saved diagrams.&lt;br /&gt;
* Save: Saves the current diagram. Everything that is displayed on the diagram (committed entities, uncommitted entities, connections, drawings...) will be saved in the diagram.&lt;br /&gt;
* Save As: Saves the current diagram as a new file. &lt;br /&gt;
* Export: Exports the diagram as a PNG image&lt;br /&gt;
* Commit: Commits the changes to the model and auto saves the diagram.&lt;br /&gt;
&#039;&#039;Note: if a diagram is not saved, then all changes made to it will be lost when the page is refreshed&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Load Diagram&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Load diagram.png|border]]&lt;br /&gt;
&lt;br /&gt;
In the NavTree, double click the diagram node to load the diagram.&lt;br /&gt;
== Committed and uncommitted entities ==&lt;br /&gt;
=== Uncommitted entities ===&lt;br /&gt;
Uncommitted entities are created by dragging an Entity, Association or View block from the stencil panel. Once on the diagram canvas, they can also be found in the NavTree under the UncommittedEntities package.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: If uncommitted entity is not saved in a diagram or committed, when the diagram page is refreshed, they are lost.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Uncommitted entities.png|border]]&lt;br /&gt;
&lt;br /&gt;
An uncommitted entity can be reused in all the diagrams that the user has open, but in order to be used within a View path, they must be committed first.&lt;br /&gt;
&lt;br /&gt;
=== Commit entities ===&lt;br /&gt;
When an entity is created or updated from the diagram, the changes are not stored in any model until the user commits them.&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram commit.png|border]]&lt;br /&gt;
&lt;br /&gt;
When the user clicks the &amp;quot;Commit&amp;quot; button, a dialog appears listing all the entities that have been created or updated. The user can chose to commit all or some of them to a specific model.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: If a diagram was saved with uncommitted entities, when they are committed, the diagram is re-saved to account for the change and keep the data synchronized.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Building view paths ==&lt;br /&gt;
To build, a new path for a view:&lt;br /&gt;
* Add a new field to a view. The rolename can be added later and the measurement will be added automatically when the path is built.&lt;br /&gt;
* Select the 1st hop in the path which will be either an entity or a path. The available elements are highlighted in green&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Steps to create a path&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram path1.jpg|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
1. Select the Projected Characteristic. The selectable entities and associations are highlighted in green.&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram path2.jpg|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
2. Select the next hop. The possible subsequent hops are highlighted in green. They are either an attribute within the current hop selected or within associations that contain the current hop.&lt;br /&gt;
&lt;br /&gt;
[[File:Diagram path3.jpg|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
3. To complete the path, the last hop have to be typed as an Observable.&lt;br /&gt;
&lt;br /&gt;
Paths can be shown/hidden using the [[File:Diagram path eye.png|border]] icon. By using the show/hide eye icon repeatedly, the View paths will randomly change colors for convenience.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1171</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1171"/>
		<updated>2024-05-06T15:11:39Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permissions are a user&#039;s access level to either a project or a model. There are four different types of permissions, and a user can have any of the permissions types independent of one another.&lt;br /&gt;
Permissions on a project and the models it contains are distinct (i.e., the user can have different permissions (higher or lower) at the project level compared to the models).&lt;br /&gt;
&lt;br /&gt;
= Permissions Types =&lt;br /&gt;
== Read Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Read permissions, they have read-only access to the project or model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Read permissions to a project and its models allows the user to switch to that project, see all the content, export the content, but not create, edit, or update it. In addition, if the model inherits from another model, a user with Read permissions is allowed to see the nodes that can be pulled from a parent model, but are prevented from actually pulling that content. Likewise, if a model has other models that inherit from it, a user with Read permissions to the model is allowed to see the push requests from the children models, but is not allowed to approve those changes. &lt;br /&gt;
&lt;br /&gt;
Read permissions are unique from the other permissions types in that they are required in order to have any other permissions. For that reason, when assigning Write, Admin, or Owner permissions, Read permissions are assigned by default and can&#039;t be removed, as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms5 2.png|frameless|636x636px]]&lt;br /&gt;
&lt;br /&gt;
== Write Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Write permissions, they are allowed to edit project and model content.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Write permissions to a project or a model allows the user to modify any of its content, including pulling, pushing, and approving push requests. Note that to pull changes from a parent model, the user needs at least Read permissions to the parent model.&lt;br /&gt;
&lt;br /&gt;
== Admin Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Admin permissions, they are allowed to share the project or model and inherit from it&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Admin permissions to a project or a model allows the user to create inheriting projects or models. Admin users can assign Read, Write, and Admin permissions to users belonging to their account for this particular project or model (including themselves).&lt;br /&gt;
&lt;br /&gt;
== Owner Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Owner permissions, they have the same permissions as Admins, as well as some additional actions.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Owner permissions to a project or a model provide the user with Admin permissions plus the ability to delete the project or model, to change the metadata of it, and to share it with users external to their account. Owner users can assign Read, Write, and Admin permissions to internal and external users and grant Owner permissions to internal users.&lt;br /&gt;
&lt;br /&gt;
= Assign Permissions = &lt;br /&gt;
== Assign Permissions to Internal Users ==&lt;br /&gt;
Users are able to assign permissions to their projects or models by using the Permission Manager on the Project or Model Details page. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
To be able to share a Model, users need to have Admin or Owner permissions to it.&lt;br /&gt;
&lt;br /&gt;
To be able to share a Project, users need to have Admin or Owner permissions to it and to all the models it contains. The permissions granted for the project will be applied to all its models.&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
To assign permissions to users that do not belong to the current user&#039;s account, the user has to give them a Permissions Token. The procedure to do so is as follows:&lt;br /&gt;
* Go to the Project Sharing page&lt;br /&gt;
* Locate the project or model to be shared&lt;br /&gt;
* Enter the username and the desired permissions level&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Click the Share button&lt;br /&gt;
* Email the generated Token (which appeared on the right of the screen) to the user.&lt;br /&gt;
Note that the Token is only valid for 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The types of permissions users can grant follow the same policy as for internal users (see table above) except that they can&#039;t grant Owner permissions even if they have Owner permissions themselves.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms2.png|alt=Project Sharing Page|frameless|1027x1027px]]&lt;br /&gt;
&lt;br /&gt;
To gain access to the project or model, the user has to go to the Project Sharing page, copy the Token received by email in the dedicated field and click the Submit button. The new project or model should then appear in the their project/model tree.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms3.png|alt=Accepting Perms Token|frameless|597x597px]]&lt;br /&gt;
&lt;br /&gt;
This user, along with any other external users, will appear in the Permissions Manager under a separate External Users table.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms4.png|alt=Project Details with External Users Permissions|frameless|599x599px]]&lt;br /&gt;
&lt;br /&gt;
== Account Admins ==&lt;br /&gt;
Account admins are able to see all the projects and models that users from their account have access to, and are able to assign permissions to those projects and models to any user in their account.&lt;br /&gt;
&lt;br /&gt;
For internally created projects or models, Account admins can grant any types of permissions (including Owner) to any user in their account.&lt;br /&gt;
&lt;br /&gt;
For a project or model that was externally shared with one (or more) of their account users, the Account admin can only assign permissions to other users if at least one of those original users was granted Admin permissions. In addition, if no one was granted Write access to the project or model, then Account admins will not be allowed to grant Write permissions to anyone, only Read and Admin.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1165</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1165"/>
		<updated>2024-04-29T21:51:13Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permissions are a user&#039;s access level to either a project or a model. There are four different types of permissions, and a user can have any of the permissions types independent of one another.&lt;br /&gt;
Permissions on a project and the models it contains are distinct (i.e., the user can have different permissions (higher or lower) at the project level compared to the models).&lt;br /&gt;
&lt;br /&gt;
= Permissions Types =&lt;br /&gt;
== Read Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Read permissions, they have read-only access to the project or model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Read permissions to a project and its models allows the user to switch to that project, see all the content, export the content, but not create, edit, or update it. In addition, if the model inherits from another model, a user with Read permissions is allowed to see the nodes that can be pulled from a parent model, but are prevented from actually pulling that content. Likewise, if a model has other models that inherit from it, a user with Read permissions to the model is allowed to see the push requests from the children models, but is not allowed to approve those changes. &lt;br /&gt;
&lt;br /&gt;
Read permissions are unique from the other permissions types in that they are required in order to have any other permissions. For that reason, when assigning Write, Admin, or Owner permissions, Read permissions are assigned by default and can&#039;t be removed, as seen below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE IMAGE WITH OWNER COLUMN FILLED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Perms5.png|alt=Uncheckable Read Permissions Boxes|frameless|742x742px]]&lt;br /&gt;
&lt;br /&gt;
== Write Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Write permissions, they are allowed to edit project and model content.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Write permissions to a project or a model allows the user to modify any of its content, including pulling, pushing, and approving push requests. Note that to pull changes from a parent model, the user needs at least Read permissions to the parent model.&lt;br /&gt;
&lt;br /&gt;
== Admin Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Admin permissions, they are allowed to make changes to projects and models themselves.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Admin permissions to a project or a model allows the user to change the metadata of the project or model and create inheriting projects or models. They can also set the permissions of other users (belonging to their own account) to this project or model up to Admin.&lt;br /&gt;
&lt;br /&gt;
== Owner Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Owner permissions, they have the same permissions as Admins, as well as some additional actions.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Owner permissions to a project or a model provide the user with Admin permissions plus the ability to delete the project or model, and to share it with users external to their account. Owner users can grant permissions up to Owner for internal users and Admin for external users.&lt;br /&gt;
&lt;br /&gt;
= Assign Permissions = &lt;br /&gt;
== Assign Permissions to Internal Users ==&lt;br /&gt;
Users are able to assign permissions to their projects or models by using the Permission Manager on the Project or Model Details page. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
To be able to share a Model, users need to have Admin or Owner permissions to it. The types of permissions users can grant depend on the the permissions they have to the model.&lt;br /&gt;
To be able to share a Project, users need to have Admin or Owner permissions to it and to all the models it contains. The types of permissions users can grant depend on the the permissions they have to the project and its models. The type permissions granted for the project will be applied to all its models.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Current User Permissions !! Target User Permissions Options&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin || Read, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin + Owner|| Read, Admin, Owner&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin || Read, Write, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin + Owner|| Read, Write, Admin, Owner&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
To assign permissions to users that do not belong to the current user&#039;s account, the user has to give them a Permissions Token. The procedure to do so is as follows:&lt;br /&gt;
* Go to the Project Sharing page&lt;br /&gt;
* Locate the project or model to be shared&lt;br /&gt;
* Enter the username and the desired permissions level&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Click the Share button&lt;br /&gt;
* Email the generated Token (which appeared on the right of the screen) to the user.&lt;br /&gt;
Note that the Token is only valid for 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The types of permissions users can grant follow the same policy as for internal users (see table above) except that they can&#039;t grant Owner permissions even if they have Owner permissions themselves.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms2.png|alt=Project Sharing Page|frameless|1027x1027px]]&lt;br /&gt;
&lt;br /&gt;
To gain access to the project or model, the user has to go to the Project Sharing page, copy the Token received by email in the dedicated field and click the Submit button. The new project or model should then appear in the their project/model tree.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms3.png|alt=Accepting Perms Token|frameless|597x597px]]&lt;br /&gt;
&lt;br /&gt;
This user, along with any other external users, will appear in the Permissions Manager under a separate External Users table.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms4.png|alt=Project Details with External Users Permissions|frameless|599x599px]]&lt;br /&gt;
&lt;br /&gt;
== Account Admins ==&lt;br /&gt;
Account admins are able to see all the projects and models that users from their account have access to, and are able to assign permissions to those projects and models to any user in their account.&lt;br /&gt;
&lt;br /&gt;
For internally created projects or models, Account admins can grant any types of permissions (including Owner) to any user in their account.&lt;br /&gt;
&lt;br /&gt;
For a project or model that was externally shared with one (or more) of their account users, the Account admin can only assign permissions to other users if at least one of those original users was granted Admin permissions. In addition, if no one was granted Write access to the project or model, then Account admins will not be allowed to grant Write permissions to anyone, only Read and Admin.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1164</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1164"/>
		<updated>2024-04-29T21:50:53Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permissions are a user&#039;s access level to either a project or a model. There are four different types of permissions, and a user can have any of the permissions types independent of one another.&lt;br /&gt;
Permissions on a project and the models it contains are distinct (i.e., the user can have different permissions (higher or lower) at the project level compared to the models).&lt;br /&gt;
&lt;br /&gt;
= Permissions Types =&lt;br /&gt;
== Read Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Read permissions, they have read-only access to the project or model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Read permissions to a project and its models allows the user to switch to that project, see all the content, export the content, but not create, edit, or update it. In addition, if the model inherits from another model, a user with Read permissions is allowed to see the nodes that can be pulled from a parent model, but are prevented from actually pulling that content. Likewise, if a model has other models that inherit from it, a user with Read permissions to the model is allowed to see the push requests from the children models, but is not allowed to approve those changes. &lt;br /&gt;
&lt;br /&gt;
Read permissions are unique from the other permissions types in that they are required in order to have any other permissions. For that reason, when assigning Write, Admin, or Owner permissions, Read permissions are assigned by default and can&#039;t be removed, as seen below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE IMAGE WITH OWNER COLUMN FILLED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Perms5.png|alt=Uncheckable Read Permissions Boxes|frameless|742x742px]]&lt;br /&gt;
&lt;br /&gt;
== Write Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Write permissions, they are allowed to edit project and model content.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Write permissions to a project or a model allows the user to modify any of its content, including pulling, pushing, and approving push requests. Note that to pull changes from a parent model, the user needs at least Read permissions to the parent model.&lt;br /&gt;
&lt;br /&gt;
== Admin Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Admin permissions, they are allowed to make changes to projects and models themselves.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Admin permissions to a project or a model allows the user to change the metadata of the project or model and create inheriting projects or models. They can also set the permissions of other users (belonging to their own account) to this project or model up to Admin.&lt;br /&gt;
&lt;br /&gt;
== Owner Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Owner permissions, they have the same permissions as Admins, as well as some additional actions.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Owner permissions to a project or a model provide the user with Admin permissions plus the ability to delete the project or model, and to share it with users external to their account. Owner users can grant permissions up to Owner for internal users and Admin for external users.&lt;br /&gt;
&lt;br /&gt;
= Assign Permissions = &lt;br /&gt;
== Assign Permissions to Internal Users ==&lt;br /&gt;
Users are able to assign permissions to their projects or models by using the Permission Manager on the Project or Model Details page. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
To be able to share a Model, users need to have Admin or Owner permissions to it. The types of permissions users can grant depend on the the permissions they have to the model.&lt;br /&gt;
To be able to share a Project, users need to have Admin or Owner permissions to it and to all the models it contains. The types of permissions users can grant depend on the the permissions they have to the project and its models. The type permissions granted for the project will be applied to all its models.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Current User Permissions !! Target User Permissions Options&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin || Read, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin + Owner|| Read, Admin, Owner&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin || Read, Write, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin + Owner|| Read, Write, Admin, Owner&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
To assign permissions to users that do not belong to the current user&#039;s account, the user has to give them a Permissions Token. The procedure to do so is as follows:&lt;br /&gt;
* Go to the Project Sharing page&lt;br /&gt;
* Locate the project or model to be shared&lt;br /&gt;
* Enter the username and the desired permissions level&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Click the Share button&lt;br /&gt;
* Email the generated Token (which appeared on the right of the screen) to the user.&lt;br /&gt;
Note that the Token is only valid for 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The types of permissions users can grant follow the same policy as for internal users (see table above) except that they can&#039;t grant Owner permissions even if they have Owner permissions themselves.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms2.png|alt=Project Sharing Page|frameless|1027x1027px]]&lt;br /&gt;
&lt;br /&gt;
To gain access to the project or model, the user has to go to the Project Sharing page, copy the Token received by email in the dedicated field and click the Submit button. The new project or model should then appear in the their project/model tree.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms3.png|alt=Accepting Perms Token|frameless|597x597px]]&lt;br /&gt;
&lt;br /&gt;
This user, along with any other external users, will appear in the Permissions Manager under a separate External Users table.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms4.png|alt=Project Details with External Users Permissions|frameless|599x599px]]&lt;br /&gt;
&lt;br /&gt;
== Account Admins ==&lt;br /&gt;
Account admins are able to see all the projects and models that users from their account have access to, and are able to assign permissions to those projects and models to any user in their account.&lt;br /&gt;
For internally created projects or models, Account admins can grant any types of permissions (including Owner) to any user in their account.&lt;br /&gt;
For a project or model that was externally shared with one (or more) of their account users, the Account admin can only assign permissions to other users if at least one of those original users was granted Admin permissions. In addition, if no one was granted Write access to the project or model, then Account admins will not be allowed to grant Write permissions to anyone, only Read and Admin.&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1163</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1163"/>
		<updated>2024-04-29T21:44:09Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permissions are a user&#039;s access level to either a project or a model. There are four different types of permissions, and a user can have any of the permissions types independent of one another.&lt;br /&gt;
Permissions on a project and the models it contains are distinct (i.e., the user can have different permissions (higher or lower) at the project level compared to the models).&lt;br /&gt;
&lt;br /&gt;
= Permissions Types =&lt;br /&gt;
== Read Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Read permissions, they have read-only access to the project or model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Read permissions to a project and its models allows the user to switch to that project, see all the content, export the content, but not create, edit, or update it. In addition, if the model inherits from another model, a user with Read permissions is allowed to see the nodes that can be pulled from a parent model, but are prevented from actually pulling that content. Likewise, if a model has other models that inherit from it, a user with Read permissions to the model is allowed to see the push requests from the children models, but is not allowed to approve those changes. &lt;br /&gt;
&lt;br /&gt;
Read permissions are unique from the other permissions types in that they are required in order to have any other permissions. For that reason, when assigning Write, Admin, or Owner permissions, Read permissions are assigned by default and can&#039;t be removed, as seen below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE IMAGE WITH OWNER COLUMN FILLED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Perms5.png|alt=Uncheckable Read Permissions Boxes|frameless|742x742px]]&lt;br /&gt;
&lt;br /&gt;
== Write Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Write permissions, they are allowed to edit project and model content.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Write permissions to a project or a model allows the user to modify any of its content, including pulling, pushing, and approving push requests. Note that to pull changes from a parent model, the user needs at least Read permissions to the parent model.&lt;br /&gt;
&lt;br /&gt;
== Admin Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Admin permissions, they are allowed to make changes to projects and models themselves.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Admin permissions to a project or a model allows the user to change the metadata of the project or model and create inheriting projects or models. They can also set the permissions of other users (belonging to their own account) to this project or model up to Admin.&lt;br /&gt;
&lt;br /&gt;
== Owner Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Owner permissions, they have the same permissions as Admins, as well as some additional actions.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Owner permissions to a project or a model provide the user with Admin permissions plus the ability to delete the project or model, and to share it with users external to their account. Owner users can grant permissions up to Owner for internal users and Admin for external users.&lt;br /&gt;
&lt;br /&gt;
= Assign Permissions = &lt;br /&gt;
== Assign Permissions to Internal Users ==&lt;br /&gt;
Users are able to assign permissions to their projects or models by using the Permission Manager on the Project or Model Details page. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
To be able to share a Model, users need to have Admin or Owner permissions to it. The types of permissions users can grant depend on the the permissions they have to the model.&lt;br /&gt;
To be able to share a Project, users need to have Admin or Owner permissions to it and to all the models it contains. The types of permissions users can grant depend on the the permissions they have to the project and its models. The type permissions granted for the project will be applied to all its models.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Current User Permissions !! Target User Permissions Options&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin || Read, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin + Owner|| Read, Admin, Owner&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin || Read, Write, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin + Owner|| Read, Write, Admin, Owner&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
To assign permissions to users that do not belong to the current user&#039;s account, the user has to give them a Permissions Token. The procedure to do so is as follows:&lt;br /&gt;
* Go to the Project Sharing page&lt;br /&gt;
* Locate the project or model to be shared&lt;br /&gt;
* Enter the username and the desired permissions level&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt;&lt;br /&gt;
* Click the Share button&lt;br /&gt;
* Email the generated Token (which appeared on the right of the screen) to the user.&lt;br /&gt;
Note that the Token is only valid for 24 hours.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;*&amp;lt;/sup&amp;gt; The types of permissions users can grant follow the same policy as for internal users (see table above) except that they can&#039;t grant Owner permissions even if they have Owner permissions themselves.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms2.png|alt=Project Sharing Page|frameless|1027x1027px]]&lt;br /&gt;
&lt;br /&gt;
To gain access to the project or model, the user has to go to the Project Sharing page, copy the Token received by email in the dedicated field and click the Submit button. The new project or model should then appear in the their project/model tree.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms3.png|alt=Accepting Perms Token|frameless|597x597px]]&lt;br /&gt;
&lt;br /&gt;
This user, along with any other external users, will appear in the Permissions Manager under a separate External Users table.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms4.png|alt=Project Details with External Users Permissions|frameless|599x599px]]&lt;br /&gt;
&lt;br /&gt;
== Account Admins ==&lt;br /&gt;
Account admins are able to see all the projects and models that exist on their account, and are able to assign permissions to those projects and models to any user on the same account up to Owner permissions. In case a project or model was shared to someone on an account using a Permissions Token, that account&#039;s Admins are only allowed to assign permissions to the project or model that someone on the account holds. &#039;&#039;&#039;WHAT?&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1162</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1162"/>
		<updated>2024-04-29T21:33:21Z</updated>

		<summary type="html">&lt;p&gt;Nathalie: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Permissions are a user&#039;s access level to either a project or a model. There are four different types of permissions, and a user can have any of the permissions types independent of one another.&lt;br /&gt;
Permissions on a project and the models it contains are distinct (i.e., the user can have different permissions (higher or lower) at the project level compared to the models).&lt;br /&gt;
&lt;br /&gt;
= Permissions Types =&lt;br /&gt;
== Read Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Read permissions, they have read-only access to the project or model.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Read permissions to a project and its models allows the user to switch to that project, see all the content, export the content, but not create, edit, or update it. In addition, if the model inherits from another model, a user with Read permissions is allowed to see the nodes that can be pulled from a parent model, but are prevented from actually pulling that content. Likewise, if a model has other models that inherit from it, a user with Read permissions to the model is allowed to see the push requests from the children models, but is not allowed to approve those changes. &lt;br /&gt;
&lt;br /&gt;
Read permissions are unique from the other permissions types in that they are required in order to have any other permissions. For that reason, when assigning Write, Admin, or Owner permissions, Read permissions are assigned by default and can&#039;t be removed, as seen below.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UPDATE IMAGE WITH OWNER COLUMN FILLED&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Perms5.png|alt=Uncheckable Read Permissions Boxes|frameless|742x742px]]&lt;br /&gt;
&lt;br /&gt;
== Write Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Write permissions, they are allowed to edit project and model content.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Write permissions to a project or a model allows the user to modify any of its content, including pulling, pushing, and approving push requests. Note that to pull changes from a parent model, the user needs at least Read permissions to the parent model.&lt;br /&gt;
&lt;br /&gt;
== Admin Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Admin permissions, they are allowed to make changes to projects and models themselves.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Admin permissions to a project or a model allows the user to change the metadata of the project or model and create inheriting projects or models. They can also set the permissions of other users (belonging to their own account) to this project or model up to Admin.&lt;br /&gt;
&lt;br /&gt;
== Owner Permissions ==&lt;br /&gt;
&#039;&#039;&#039;If a user has Owner permissions, they have the same permissions as Admins, as well as some additional actions.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Having Owner permissions to a project or a model provide the user with Admin permissions plus the ability to delete the project or model, and to share it with users external to their account. Owner users can grant permissions up to Owner for internal users and Admin for external users.&lt;br /&gt;
&lt;br /&gt;
= Assign Permissions = &lt;br /&gt;
== Assign Permissions to a Model ==&lt;br /&gt;
Users are able to assign permissions to their models by using the Permission Manager on the Model Details pages. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NEED NEW SCREENSHOT&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
To be able to share a model, the users need to have Admin or Owner permissions to it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Current User Permissions !! Target User Permissions Options&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin || Read, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Admin + Owner|| Read, Admin, Owner&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin || Read, Write, Admin&lt;br /&gt;
|-&lt;br /&gt;
| Read + Write + Admin + Owner|| Read, Write, Admin, Owner&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to a Project or Model ==&lt;br /&gt;
Users are able to assign permissions to their projects and models by using the Permission Manager on the Project Details and Model Details pages. The table lists all the users from the same account as the current user.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms1.png|alt=Project Details Page Permissions Manager|frameless|1023x1023px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
To assign permissions to users that do not belong to the current user&#039;s account, the user has to give them a Permissions Token. The procedure to do so is as follows:&lt;br /&gt;
* Go to the Project Sharing page&lt;br /&gt;
* Locate the project or model to be shared&lt;br /&gt;
* Enter the username and the desired permissions level&lt;br /&gt;
* Click the Share button&lt;br /&gt;
* Email the generated Token (which appeared on the right of the screen) to the user.&lt;br /&gt;
Note that the Token is only valid for 24 hours.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms2.png|alt=Project Sharing Page|frameless|1027x1027px]]&lt;br /&gt;
&lt;br /&gt;
To gain access to the project or model, the user has to go to the Project Sharing page, copy the Token received by email in the dedicated field and click the Submit button. The new project or model should then appear in the their project/model tree.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms3.png|alt=Accepting Perms Token|frameless|597x597px]]&lt;br /&gt;
&lt;br /&gt;
This user, along with any other external users, will appear in the Permissions Manager under a separate External Users table.&lt;br /&gt;
&lt;br /&gt;
[[File:Perms4.png|alt=Project Details with External Users Permissions|frameless|599x599px]]&lt;br /&gt;
&lt;br /&gt;
== Account Admins ==&lt;br /&gt;
Account admins are able to see all the projects and models that exist on their account, and are able to assign permissions to those projects and models to any user on the same account up to Owner permissions. In case a project or model was shared to someone on an account using a Permissions Token, that account&#039;s Admins are only allowed to assign permissions to the project or model that someone on the account holds. &#039;&#039;&#039;WHAT?&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Nathalie</name></author>
	</entry>
</feed>