<?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=Nathan</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=Nathan"/>
	<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Special:Contributions/Nathan"/>
	<updated>2026-04-27T17:21:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Healthcheck&amp;diff=1592</id>
		<title>Healthcheck</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Healthcheck&amp;diff=1592"/>
		<updated>2026-02-25T15:15:15Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Composed Block Instance Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running a Project Healthcheck ==&lt;br /&gt;
There are certain characteristics that make some projects more useful than others. Projects defined using a clear, unambiguous structure are very well suited for automating integration. Their structure aligns them well for determining semantic equivalence with other systems. Some of these project qualities can be checked running relatively simple algorithms while others are far more complex. As additional project healthchecks are added to PHENOM, they can be run from this control panel.&lt;br /&gt;
&lt;br /&gt;
To get to the healthchecks, navigate to the Data Model mode and select the Healthcheck tab. This will present you with a blank healthcheck page. Click on the &amp;quot;Run Healthcheck&amp;quot; button to initiate the tests. Please note, the tests may take a few minutes - a spinner icon indicates that PHENOM is working.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-health check blank.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
Once the tests are complete, the user will be presented with a summary of the test results. The summary will show the number of tests executed, the total number of issues found in the project, and the amount of time it took to complete the checks. In the middle, the summary reports the individual tests executed along with their results. In the example below, most of the entities in the project are unique, but there are many that do not have unique observables. There is a complete, color-coded listing of all the violations on the right-hand side of the page. This provide details about the errors to help identify and fix specific them in the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-health check results.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
All test results can be downloaded as a CSV file by clicking on the &amp;quot;Download Report&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;The project can be filtered by tags and be used in Healthcheck but please be aware that the healthcheck will ensure the project is a valid project. So if a set of nodes are excluded but they have dependencies, then the Healthcheck will add the nodes back in and they will appear in the health report.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Healthchecks ==&lt;br /&gt;
=== Entity Uniqueness ===&lt;br /&gt;
The Entity Uniqueness check determines if all of the entities in the project have a unique set of attributes and associations. Theoretically, if two things have the exact same set of attributes, then they are the same thing. While it may not seem to have any short-term consequences, entity uniqueness will be much more important when projects are analyzed for similarity and merge.&lt;br /&gt;
&lt;br /&gt;
=== Attribute Uniqueness ===&lt;br /&gt;
Attribute Uniqueness checks to make sure that all entities have a set of unique attributes - that is, no two of its attributes can be of the same &#039;&#039;&#039;Entity&#039;&#039;&#039; type. How many positions does a vehicle have at once? Only one! &lt;br /&gt;
&lt;br /&gt;
While that position may be measured a number of different ways, the truth is, that entity only has a single position. &lt;br /&gt;
&lt;br /&gt;
Furthermore, when there are multiple attributes of the same type within an entity, the only way to discern any difference is by reading the attribute labels. These labels can be as misleading as they can be informative. Just like documentation in ICDs, sometimes a word choice that is clear to one person may be entirely ambiguous to another.&lt;br /&gt;
=== Observable Uniqueness ===&lt;br /&gt;
Similar to &#039;Attribute Uniqueness&#039;, Observable Uniqueness checks to make sure that all entities have a set of unique attributes - that is, no two of its attributes can be of the same &#039;&#039;&#039;Observable&#039;&#039;&#039; type. How many positions does a vehicle have at once? Only one!&lt;br /&gt;
&lt;br /&gt;
While that position may be measured a number of different ways, the truth is, that entity only has a single position. &lt;br /&gt;
&lt;br /&gt;
Furthermore, when there are multiple attributes of the same type within an entity, the only way to discern any difference is by reading the attribute labels. These labels can be as misleading as they can be informative. Just like documentation in ICDs, sometimes a word choice that is clear to one person may be entirely ambiguous to another.&lt;br /&gt;
&lt;br /&gt;
=== Name Collisions ===&lt;br /&gt;
Although PHENOM will generally not allow users to create node with a name that is already in the project, there are ways in which name collisions may occur, including merging between branches or importing project content from external sources. Regardless of how they came about, any problematic name collisions (name collisions between nodes of the same type or having the same parent) will be reported here.&lt;br /&gt;
&lt;br /&gt;
=== Circular Containment ===&lt;br /&gt;
While there are some legitimate cases for circular containment between entities and associations, a large number of these will be caused by modeling oversights. Such containments, as when entity A composes entity B, which in turn composes entity C, but entity C itself composes entity A, will be reported here.&lt;br /&gt;
&lt;br /&gt;
=== Path Traceability ===&lt;br /&gt;
Although PHENOM&#039;s path builder ensures that only valid paths can be constructed, legacy paths from old imports may still find their way into a PHENOM project. Paths that cannot be legitimately traced through the project will be reported here. They will also be indicated with warnings on the View and View Attribute pages.&lt;br /&gt;
&lt;br /&gt;
=== Placeholder Usage ===&lt;br /&gt;
In order to speed up modeling, PHENOM makes available a suite of placeholder nodes, including an observable, entities, and measurements. While the use of placeholders is convenient, projects containing placeholder values are not compliant. Four placeholder checks are part of the health report, indicating which view attribute paths contain placeholder entities, which paths project the placeholder observable, which entities type the placeholder observable, and which view attributes use a placeholder measurement.&lt;br /&gt;
&lt;br /&gt;
=== Entities without an Identifier ===&lt;br /&gt;
Phenom encourages the addition of an Identifier attribute on every Entity (see the &amp;quot;Add Identifier attribute&amp;quot; checkbox on Create-&amp;gt;Entity), to uniquely identify one Entity from the rest. While Entity uniqueness checks that each Entity has a unique set of Types, Entities without an Identifier checks that each Entity is Identifiable.&lt;br /&gt;
&lt;br /&gt;
=== Deprecation Issues ===&lt;br /&gt;
Deprecating a node can affect other nodes either through paths or realizations. This section will report which nodes have been effected by deprecation and give an option to fix them. To fix deprecation issues, click on the wrench icon to bring up the UI. Currently, there are two different fixes available:&lt;br /&gt;
* Fixing composition types.&lt;br /&gt;
* Fixing path issues (for View Characteristics and Associated Entities)&lt;br /&gt;
&lt;br /&gt;
==== Compositions Referencing Errors ====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Compositions that realize a deprecated observable will appear in this section.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Each composition is referencing the current deprecated Observable. A new observable can be selected from the dropdown list.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;By clicking SAVE, each composition will be updated with the new observable.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;* If a composition should not be updated at this time, you can deselect it by clicking the checkmark.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;* If a composition is highlighted, this means there is another layer of references to consider.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;By changing the composition&#039;s observable, then the referencing view characteristic&#039;s measurement will need to change as well.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;In the top left, you will see the Current Measurement that each characteristic is pointing to.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;You can either set all of the measurements at once or you can set each measurement individually.&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Paths Errors ====&lt;br /&gt;
Both View Characteristics and Associated Entities may have path issues caused by deprecation. Each of these categories have their own section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;In the above example we have three different view characteristics called vsm_ID. Each of these have the same path that contain a deprecated node (UCSConfigurationResource). After creating a new path, click SAVE to update the path for each view characteristic. However if a characteristic should not be updated, you can deselect it by clicking the checkbox and fix it at a later time.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see more about the Path builder, please see [[View Attribute#Path|View Attribute]].&lt;br /&gt;
&lt;br /&gt;
=== Platform Enumerations with improperly matched Literals ===&lt;br /&gt;
This healthcheck captures issues with Platform Enumerations that don&#039;t match their realized Measurements, when comparing their Platform Enumeration Literals to the Measurement&#039;s Labels.&lt;br /&gt;
&lt;br /&gt;
There are two categories that can currently show up on this report:&lt;br /&gt;
* &#039;Missing-realize&#039;: Enumerations will be marked as this if any of the PDM Literals do not have a &#039;REALIZES&#039; relationship, or are realizing a Label with a different name.&lt;br /&gt;
* &#039;Mismatched&#039;: Enumerations will be marked as this if there aren&#039;t direct name matches between any of the PDM Literals and the Enumeration&#039;s traced LDM Labels, or if there are duplicate names.&lt;br /&gt;
&lt;br /&gt;
These issues may not always indicate a problem with the Enumeration; there will be scenarios where a modeler may want to have specialized names in the Platform-level Enumeration that differ from the LDM Measurement Labels. Setting the realize relationship on LDM Literals indicates which Label a Literal represents.&lt;br /&gt;
&lt;br /&gt;
Clicking on the links of each Enumeration found in this healthcheck will bring up the Platform Type editor, which you can use to manage them. For more details, go to [[Platform Type and Enumeration]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;To see the Project Generation behavior PHENOM follows when generating Enumeration content, please see: Model &amp;amp; Artifact Generation&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Views without Characteristics ===&lt;br /&gt;
This healthcheck captures Views without any child Characteristics. Platform Views are exported from Phenom as Views in FACE 2.1 and Templates/Queries in FACE 3.0. In both standards, the resultant element must not be empty.&lt;br /&gt;
&lt;br /&gt;
=== Specialization Inconsistencies ===&lt;br /&gt;
Specialization Inconsistencies checks for inconsistencies in specializing Entities. Phenom&#039;s representation of specialization requires consistency in the attributes between the Entity specializing, and the Entity being specialized. If any of the attributes being specialized in Entity A are not present in Entity B, they will be present in this healthcheck.&lt;br /&gt;
&lt;br /&gt;
=== FACE™ SDM Conformance ===&lt;br /&gt;
Use this healthcheck to monitor model conformance. As new versions of the FACE SDM are released, they will be enumerated in this healthcheck. Green check marks indicate matching conformance, yellow warning signs indicate disparities in expected SDM node content, and red X&#039;s indicate that content referenced by an SDM node could not be found in your model.&lt;br /&gt;
&lt;br /&gt;
=== Platform Types with inappropriate type or Measurement ===&lt;br /&gt;
This check finds any discrepancies in Measurement realization. Among the following Platform Types Phenom supports, (&amp;quot;Boolean&amp;quot;, &amp;quot;BoundedString&amp;quot;, &amp;quot;Char&amp;quot;, &amp;quot;CharArray&amp;quot;, &amp;quot;Double&amp;quot;, &amp;quot;Fixed&amp;quot;, &amp;quot;Float&amp;quot;, &amp;quot;IDLArray&amp;quot;, &amp;quot;IDLSequence&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;LongDouble&amp;quot;, &amp;quot;LongLong&amp;quot;, &amp;quot;Octet&amp;quot;, &amp;quot;Short&amp;quot;, &amp;quot;String&amp;quot;, &amp;quot;ULong&amp;quot;, &amp;quot;ULongLong&amp;quot;, &amp;quot;UShort&amp;quot;), there are two additional supported types that are mutually exclusive with the previous list, to the measurements they can respectively realize: &amp;quot;IDLStruct&amp;quot;, and &amp;quot;Enumeration&amp;quot;. IDLStructs can only realize Measurements with multiple axes, and Enumerations can only realize Enumeration Measurements. All other types above cannot realize multi-axis or Enumeration Measurements.&lt;br /&gt;
&lt;br /&gt;
=== Entity Bounds Best Practices ===&lt;br /&gt;
This check reports when any bounds are not the same as the Skayl recommended bounds. For target bounds it&#039;s suggested to use 1..* and for source bounds it&#039;s suggested to use 0..*. If the current bounds are empty the check will show the FACE™ assumed bounds as italicized.&lt;br /&gt;
&lt;br /&gt;
=== Optional Characteristics ===&lt;br /&gt;
This check reports any characteristics marked &amp;quot;optional&amp;quot; in Phenom. Use this report to manage any characteristics marked this way.&lt;br /&gt;
&lt;br /&gt;
=== Integration Context ===&lt;br /&gt;
If there are any issues with Integration Model content, those issues will be reported here. This includes checks for issues such as inconsistent data types, missing message ports, and endpoints with multiple connections.&lt;br /&gt;
&lt;br /&gt;
=== Conversion Errors ===&lt;br /&gt;
Of the logical conversion elements Phenom supports, (&amp;quot;MeasurementConversion&amp;quot;, &amp;quot;MeasurementSystemConversion&amp;quot;, &amp;quot;CoordinateSystemConversion&amp;quot;), if any contain an invalid equation, Phenom will report these here.&lt;br /&gt;
&lt;br /&gt;
=== Bounds Issues ===&lt;br /&gt;
There are many elements Phenom supports that may have lower or upper bounds. Of these elements, if any have invalid bounds, (for example - lower bound is greater than upper bound), Phenom will report these elements here.&lt;br /&gt;
&lt;br /&gt;
=== Nested View Issues ===&lt;br /&gt;
This health check finds all privately scoped nested views used in more than one perspective or used within more than one view family.&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Instance Issues ===&lt;br /&gt;
This health check traces through the node connection and compares the Composed Block Instance with the connected block node, and searches for mismatched data types or inconsistent template types.&lt;br /&gt;
&lt;br /&gt;
[[Index.php?title=Category:UserGuide|0021_Healthcheck]]&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Healthcheck&amp;diff=1591</id>
		<title>Healthcheck</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Healthcheck&amp;diff=1591"/>
		<updated>2026-02-25T15:04:46Z</updated>

		<summary type="html">&lt;p&gt;Nathan: Enitty bounds best practices now included&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running a Project Healthcheck ==&lt;br /&gt;
There are certain characteristics that make some projects more useful than others. Projects defined using a clear, unambiguous structure are very well suited for automating integration. Their structure aligns them well for determining semantic equivalence with other systems. Some of these project qualities can be checked running relatively simple algorithms while others are far more complex. As additional project healthchecks are added to PHENOM, they can be run from this control panel.&lt;br /&gt;
&lt;br /&gt;
To get to the healthchecks, navigate to the Data Model mode and select the Healthcheck tab. This will present you with a blank healthcheck page. Click on the &amp;quot;Run Healthcheck&amp;quot; button to initiate the tests. Please note, the tests may take a few minutes - a spinner icon indicates that PHENOM is working.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-health check blank.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
Once the tests are complete, the user will be presented with a summary of the test results. The summary will show the number of tests executed, the total number of issues found in the project, and the amount of time it took to complete the checks. In the middle, the summary reports the individual tests executed along with their results. In the example below, most of the entities in the project are unique, but there are many that do not have unique observables. There is a complete, color-coded listing of all the violations on the right-hand side of the page. This provide details about the errors to help identify and fix specific them in the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-health check results.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
All test results can be downloaded as a CSV file by clicking on the &amp;quot;Download Report&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;The project can be filtered by tags and be used in Healthcheck but please be aware that the healthcheck will ensure the project is a valid project. So if a set of nodes are excluded but they have dependencies, then the Healthcheck will add the nodes back in and they will appear in the health report.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Healthchecks ==&lt;br /&gt;
=== Entity Uniqueness ===&lt;br /&gt;
The Entity Uniqueness check determines if all of the entities in the project have a unique set of attributes and associations. Theoretically, if two things have the exact same set of attributes, then they are the same thing. While it may not seem to have any short-term consequences, entity uniqueness will be much more important when projects are analyzed for similarity and merge.&lt;br /&gt;
&lt;br /&gt;
=== Attribute Uniqueness ===&lt;br /&gt;
Attribute Uniqueness checks to make sure that all entities have a set of unique attributes - that is, no two of its attributes can be of the same &#039;&#039;&#039;Entity&#039;&#039;&#039; type. How many positions does a vehicle have at once? Only one! &lt;br /&gt;
&lt;br /&gt;
While that position may be measured a number of different ways, the truth is, that entity only has a single position. &lt;br /&gt;
&lt;br /&gt;
Furthermore, when there are multiple attributes of the same type within an entity, the only way to discern any difference is by reading the attribute labels. These labels can be as misleading as they can be informative. Just like documentation in ICDs, sometimes a word choice that is clear to one person may be entirely ambiguous to another.&lt;br /&gt;
=== Observable Uniqueness ===&lt;br /&gt;
Similar to &#039;Attribute Uniqueness&#039;, Observable Uniqueness checks to make sure that all entities have a set of unique attributes - that is, no two of its attributes can be of the same &#039;&#039;&#039;Observable&#039;&#039;&#039; type. How many positions does a vehicle have at once? Only one!&lt;br /&gt;
&lt;br /&gt;
While that position may be measured a number of different ways, the truth is, that entity only has a single position. &lt;br /&gt;
&lt;br /&gt;
Furthermore, when there are multiple attributes of the same type within an entity, the only way to discern any difference is by reading the attribute labels. These labels can be as misleading as they can be informative. Just like documentation in ICDs, sometimes a word choice that is clear to one person may be entirely ambiguous to another.&lt;br /&gt;
&lt;br /&gt;
=== Name Collisions ===&lt;br /&gt;
Although PHENOM will generally not allow users to create node with a name that is already in the project, there are ways in which name collisions may occur, including merging between branches or importing project content from external sources. Regardless of how they came about, any problematic name collisions (name collisions between nodes of the same type or having the same parent) will be reported here.&lt;br /&gt;
&lt;br /&gt;
=== Circular Containment ===&lt;br /&gt;
While there are some legitimate cases for circular containment between entities and associations, a large number of these will be caused by modeling oversights. Such containments, as when entity A composes entity B, which in turn composes entity C, but entity C itself composes entity A, will be reported here.&lt;br /&gt;
&lt;br /&gt;
=== Path Traceability ===&lt;br /&gt;
Although PHENOM&#039;s path builder ensures that only valid paths can be constructed, legacy paths from old imports may still find their way into a PHENOM project. Paths that cannot be legitimately traced through the project will be reported here. They will also be indicated with warnings on the View and View Attribute pages.&lt;br /&gt;
&lt;br /&gt;
=== Placeholder Usage ===&lt;br /&gt;
In order to speed up modeling, PHENOM makes available a suite of placeholder nodes, including an observable, entities, and measurements. While the use of placeholders is convenient, projects containing placeholder values are not compliant. Four placeholder checks are part of the health report, indicating which view attribute paths contain placeholder entities, which paths project the placeholder observable, which entities type the placeholder observable, and which view attributes use a placeholder measurement.&lt;br /&gt;
&lt;br /&gt;
=== Entities without an Identifier ===&lt;br /&gt;
Phenom encourages the addition of an Identifier attribute on every Entity (see the &amp;quot;Add Identifier attribute&amp;quot; checkbox on Create-&amp;gt;Entity), to uniquely identify one Entity from the rest. While Entity uniqueness checks that each Entity has a unique set of Types, Entities without an Identifier checks that each Entity is Identifiable.&lt;br /&gt;
&lt;br /&gt;
=== Deprecation Issues ===&lt;br /&gt;
Deprecating a node can affect other nodes either through paths or realizations. This section will report which nodes have been effected by deprecation and give an option to fix them. To fix deprecation issues, click on the wrench icon to bring up the UI. Currently, there are two different fixes available:&lt;br /&gt;
* Fixing composition types.&lt;br /&gt;
* Fixing path issues (for View Characteristics and Associated Entities)&lt;br /&gt;
&lt;br /&gt;
==== Compositions Referencing Errors ====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Compositions that realize a deprecated observable will appear in this section.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Each composition is referencing the current deprecated Observable. A new observable can be selected from the dropdown list.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;By clicking SAVE, each composition will be updated with the new observable.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;* If a composition should not be updated at this time, you can deselect it by clicking the checkmark.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;* If a composition is highlighted, this means there is another layer of references to consider.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;By changing the composition&#039;s observable, then the referencing view characteristic&#039;s measurement will need to change as well.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;In the top left, you will see the Current Measurement that each characteristic is pointing to.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;You can either set all of the measurements at once or you can set each measurement individually.&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Paths Errors ====&lt;br /&gt;
Both View Characteristics and Associated Entities may have path issues caused by deprecation. Each of these categories have their own section.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;In the above example we have three different view characteristics called vsm_ID. Each of these have the same path that contain a deprecated node (UCSConfigurationResource). After creating a new path, click SAVE to update the path for each view characteristic. However if a characteristic should not be updated, you can deselect it by clicking the checkbox and fix it at a later time.&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see more about the Path builder, please see [[View Attribute#Path|View Attribute]].&lt;br /&gt;
&lt;br /&gt;
=== Platform Enumerations with improperly matched Literals ===&lt;br /&gt;
This healthcheck captures issues with Platform Enumerations that don&#039;t match their realized Measurements, when comparing their Platform Enumeration Literals to the Measurement&#039;s Labels.&lt;br /&gt;
&lt;br /&gt;
There are two categories that can currently show up on this report:&lt;br /&gt;
* &#039;Missing-realize&#039;: Enumerations will be marked as this if any of the PDM Literals do not have a &#039;REALIZES&#039; relationship, or are realizing a Label with a different name.&lt;br /&gt;
* &#039;Mismatched&#039;: Enumerations will be marked as this if there aren&#039;t direct name matches between any of the PDM Literals and the Enumeration&#039;s traced LDM Labels, or if there are duplicate names.&lt;br /&gt;
&lt;br /&gt;
These issues may not always indicate a problem with the Enumeration; there will be scenarios where a modeler may want to have specialized names in the Platform-level Enumeration that differ from the LDM Measurement Labels. Setting the realize relationship on LDM Literals indicates which Label a Literal represents.&lt;br /&gt;
&lt;br /&gt;
Clicking on the links of each Enumeration found in this healthcheck will bring up the Platform Type editor, which you can use to manage them. For more details, go to [[Platform Type and Enumeration]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;To see the Project Generation behavior PHENOM follows when generating Enumeration content, please see: Model &amp;amp; Artifact Generation&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Views without Characteristics ===&lt;br /&gt;
This healthcheck captures Views without any child Characteristics. Platform Views are exported from Phenom as Views in FACE 2.1 and Templates/Queries in FACE 3.0. In both standards, the resultant element must not be empty.&lt;br /&gt;
&lt;br /&gt;
=== Specialization Inconsistencies ===&lt;br /&gt;
Specialization Inconsistencies checks for inconsistencies in specializing Entities. Phenom&#039;s representation of specialization requires consistency in the attributes between the Entity specializing, and the Entity being specialized. If any of the attributes being specialized in Entity A are not present in Entity B, they will be present in this healthcheck.&lt;br /&gt;
&lt;br /&gt;
=== FACE™ SDM Conformance ===&lt;br /&gt;
Use this healthcheck to monitor model conformance. As new versions of the FACE SDM are released, they will be enumerated in this healthcheck. Green check marks indicate matching conformance, yellow warning signs indicate disparities in expected SDM node content, and red X&#039;s indicate that content referenced by an SDM node could not be found in your model.&lt;br /&gt;
&lt;br /&gt;
=== Platform Types with inappropriate type or Measurement ===&lt;br /&gt;
This check finds any discrepancies in Measurement realization. Among the following Platform Types Phenom supports, (&amp;quot;Boolean&amp;quot;, &amp;quot;BoundedString&amp;quot;, &amp;quot;Char&amp;quot;, &amp;quot;CharArray&amp;quot;, &amp;quot;Double&amp;quot;, &amp;quot;Fixed&amp;quot;, &amp;quot;Float&amp;quot;, &amp;quot;IDLArray&amp;quot;, &amp;quot;IDLSequence&amp;quot;, &amp;quot;Long&amp;quot;, &amp;quot;LongDouble&amp;quot;, &amp;quot;LongLong&amp;quot;, &amp;quot;Octet&amp;quot;, &amp;quot;Short&amp;quot;, &amp;quot;String&amp;quot;, &amp;quot;ULong&amp;quot;, &amp;quot;ULongLong&amp;quot;, &amp;quot;UShort&amp;quot;), there are two additional supported types that are mutually exclusive with the previous list, to the measurements they can respectively realize: &amp;quot;IDLStruct&amp;quot;, and &amp;quot;Enumeration&amp;quot;. IDLStructs can only realize Measurements with multiple axes, and Enumerations can only realize Enumeration Measurements. All other types above cannot realize multi-axis or Enumeration Measurements.&lt;br /&gt;
&lt;br /&gt;
=== Entity Bounds Best Practices ===&lt;br /&gt;
This check reports when any bounds are not the same as the Skayl recommended bounds. For target bounds it&#039;s suggested to use 1..* and for source bounds it&#039;s suggested to use 0..*. If the current bounds are empty the check will show the FACE™ assumed bounds as italisized.&lt;br /&gt;
&lt;br /&gt;
=== Optional Characteristics ===&lt;br /&gt;
This check reports any characteristics marked &amp;quot;optional&amp;quot; in Phenom. Use this report to manage any characteristics marked this way.&lt;br /&gt;
&lt;br /&gt;
=== Integration Context ===&lt;br /&gt;
If there are any issues with Integration Model content, those issues will be reported here. This includes checks for issues such as inconsistent data types, missing message ports, and endpoints with multiple connections.&lt;br /&gt;
&lt;br /&gt;
=== Conversion Errors ===&lt;br /&gt;
Of the logical conversion elements Phenom supports, (&amp;quot;MeasurementConversion&amp;quot;, &amp;quot;MeasurementSystemConversion&amp;quot;, &amp;quot;CoordinateSystemConversion&amp;quot;), if any contain an invalid equation, Phenom will report these here.&lt;br /&gt;
&lt;br /&gt;
=== Bounds Issues ===&lt;br /&gt;
There are many elements Phenom supports that may have lower or upper bounds. Of these elements, if any have invalid bounds, (for example - lower bound is greater than upper bound), Phenom will report these elements here.&lt;br /&gt;
&lt;br /&gt;
=== Nested View Issues ===&lt;br /&gt;
This health check finds all privately scoped nested views used in more than one perspective or used within more than one view family.&lt;br /&gt;
&lt;br /&gt;
=== Composed Block Instance Issues ===&lt;br /&gt;
This health check traces through the node connection and compares the Composed Block Instance with the connected block node, and searches for mismatched data types or inconsistent template types.&lt;br /&gt;
&lt;br /&gt;
[[index.php?title=Category:UserGuide|0021_Healthcheck]]&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1579</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=1579"/>
		<updated>2026-02-03T21:01:24Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Adding/Editing Associated Entities */&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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type. The target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute example.png|frameless|1995x1995px]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[File:Participant Example.png|frameless|1982x1982px]]&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Participant_Example.png&amp;diff=1578</id>
		<title>File:Participant Example.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Participant_Example.png&amp;diff=1578"/>
		<updated>2026-02-03T21:01:02Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of a default participant&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1577</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=1577"/>
		<updated>2026-02-03T21:00:07Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Adding/Editing Associated Entities */&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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type. The target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[File:Attribute example.png|frameless|1995x1995px]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[File:Participant example.png|frameless|1983x1983px]]&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Participant_example.png&amp;diff=1576</id>
		<title>File:Participant example.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Participant_example.png&amp;diff=1576"/>
		<updated>2026-02-03T20:59:42Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;participant example&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Attribute_example.png&amp;diff=1575</id>
		<title>File:Attribute example.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Attribute_example.png&amp;diff=1575"/>
		<updated>2026-02-03T20:58:38Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Attribute example&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1574</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=1574"/>
		<updated>2026-02-03T20:57:06Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* 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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type. The target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[index.php?title=File:Attribute_Example.png|link=File:Attribute_Example.png|frameless|1291x1291px]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
&lt;br /&gt;
[[index.php?title=File:Entity_participants.png|link=File:Entity_participants.png|frameless|1276x1276px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1573</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=1573"/>
		<updated>2026-02-03T20:54:09Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* 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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type. The target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
[[File:Attribute Example.png|left|frameless|1291x1291px]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds will show the FACE(R) technical standard by default.&lt;br /&gt;
[[File:Entity participants.png|left|frameless|1276x1276px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Attribute_Example.png&amp;diff=1572</id>
		<title>File:Attribute Example.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Attribute_Example.png&amp;diff=1572"/>
		<updated>2026-02-03T20:52:35Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of an Attribute Example&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1571</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=1571"/>
		<updated>2026-02-03T20:51:13Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Adding/Editing Associated Entities */&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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create attr.png|1000px|border]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds by default will show the FACE(R) technical standard.&lt;br /&gt;
[[File:Entity participants.png|left|frameless|1276x1276px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1570</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=1570"/>
		<updated>2026-02-03T20:50:50Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Adding/Editing Associated Entities */&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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create attr.png|1000px|border]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type. The source and target bounds by default will show the standard FACE(R) technical standard.&lt;br /&gt;
[[File:Entity participants.png|left|frameless|1276x1276px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Entity_and_Association&amp;diff=1569</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=1569"/>
		<updated>2026-02-03T20:48:54Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Adding/Editing Associated Entities */&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;
To add a new attribute to an Entity, click the create button that appears at the bottom of the attributes section to add a new row. Attributes require a valid name and type.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details entity create attr.png|1000px|border]]&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 Associated Entities ==&lt;br /&gt;
To add a new associated entity to an entity, click the create button that appears at the bottom of the associated entities section to add two new rows. Associated Entities require a valid name and type.&lt;br /&gt;
[[File:Entity participants.png|left|frameless|1276x1276px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Info| 1= When you click &amp;quot;Create&amp;quot; in the Associated Entity section for the first time, you will need to add two associated entities.&amp;lt;br&amp;gt;&lt;br /&gt;
Adding Associated Entity 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 associated entities 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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Entity_participants.png&amp;diff=1568</id>
		<title>File:Entity participants.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Entity_participants.png&amp;diff=1568"/>
		<updated>2026-02-03T20:47:21Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image of entity participants&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1445</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1445"/>
		<updated>2025-08-15T19:03:47Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Assign Permissions to External Users */&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;
When assigning permissions to users, note that all users can see who has permissions/access to the project if they have any permissions to the project. This capability is also available to users from other accounts, which will be listed under the &amp;quot;External Permissions&amp;quot; table. When making a copy of a project, there is also an option to &amp;quot;Copy all permissions.&amp;quot; This will copy permissions for all internal and external users.&lt;br /&gt;
&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;
Admin users can manage permissions among users within their account. Owner users can generate tokens to grant permissions to users in other accounts.&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
NOTE: For Enterprise installations with a single group account, all users are in the same group and permission tokens are not necessary.  External refers to users outside of your organization&#039;s account but on the same PHENOM server.&lt;br /&gt;
&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. The receiver will see any users on the sender&#039;s account who also have access to the content (model or project) shared. Both the sender of the token and the receiver of the token will be able to see the External Users table. If additional tokens are sent out to other accounts, all recipients will appear in the External Users permissions tables of all involved users; all users who have access to a project or model are able to see each other.&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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1444</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1444"/>
		<updated>2025-08-15T18:51:09Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Assign Permissions to External Users */&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;
When assigning permissions to users, note that all users can see who has permissions/access to the project if they have any permissions to the project. This capability is also available to users from other accounts, which will be listed under the &amp;quot;External Permissions&amp;quot; table. When making a copy of a project, there is also an option to &amp;quot;Copy all permissions.&amp;quot; This will copy permissions for all internal and external users.&lt;br /&gt;
&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;
Admin users can share permissions within their internal account. Owner users can share permissions with internal and external accounts.&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
NOTE: For Enterprise installations with a single group account, all users are in the same group and permission tokens are not necessary.  External refers to users outside of your organization&#039;s account but on the same PHENOM server.&lt;br /&gt;
&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. Both the sender of the token and the receiver of the token will be able to see the External Users table. Additionally, if a user is sent a token from a second account the sender and the receiver of the token from the first account will be able to see the user from the second account within the External Users table. All users who have access to a project will be able to see each other.&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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1443</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1443"/>
		<updated>2025-08-15T18:49:16Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Assign Permissions to Internal Users */&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;
When assigning permissions to users, note that all users can see who has permissions/access to the project if they have any permissions to the project. This capability is also available to users from other accounts, which will be listed under the &amp;quot;External Permissions&amp;quot; table. When making a copy of a project, there is also an option to &amp;quot;Copy all permissions.&amp;quot; This will copy permissions for all internal and external users.&lt;br /&gt;
&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;
Admin users can share permissions within their internal account. Owner users can share permissions with internal and external accounts.&lt;br /&gt;
&lt;br /&gt;
== Assign Permissions to External Users ==&lt;br /&gt;
NOTE: For Enterprise installations with a single group account, all users are in the same group and permission tokens are not necessary.  External refers to users outside of your organization&#039;s account but on the same PHENOM server.&lt;br /&gt;
&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. Both the sender of the token and the receiver of the token will be able to see the External Users table. Additionally, if a user is sent a token from a second account the sender and the receiver of the token from the first account will be able to see the user from the second account within the External Users table. All users who have access to a project will be able to see each other.&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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1424</id>
		<title>View Attribute</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1424"/>
		<updated>2025-07-23T18:54:51Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Destructure Linkers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A View Attribute can be also referred to as view characteristic or view field.&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing View Attributes ==&lt;br /&gt;
To create a new View Attribute, click the &amp;quot;Create&amp;quot; button in the Attributes section of a [[View]] details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr create.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* An [[Observable]]&lt;br /&gt;
* A [[Measurement]]&lt;br /&gt;
* A path&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
The attribute&#039;s name must consist of letters, numbers, or underscores and start with a letter.&lt;br /&gt;
&lt;br /&gt;
=== Observable/Measurement ===&lt;br /&gt;
The user can either start by selecting an Observable and then the Measurement - the Measurement list will be filtered to the Measurements realizing the selected Observable - or select the Measurement first which will automatically select the Observable the Measurement realizes.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr obs meas.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Platform Type ===&lt;br /&gt;
Once the Measurement is selected, the user needs to either create a new Platform Type or select an existing one by clicking &amp;quot;Select Platform Type&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr select ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Path ===&lt;br /&gt;
The final step in creating a View Attribute is to add a semantic path using the path builder. The path is built hop by hop, starting with the entity/association attribute typing the selected observable. Each hop must be committed by clicking the checkmark before being able to move to the next. The last selected hop can be removed by clicking the x next to the new hop box. The current path of the attribute is rendered under the Path section title.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path1.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
After committing a hop, if there are additional hops that can be added, they will appear in the dropdown list, otherwise the text &amp;quot;No Possible Options&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path2.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path3.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The circling arrow and the X next to the commit button respectively resets and cleans the path.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path4.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Destructure Linkers ===&lt;br /&gt;
Destructure Linkers are available when a view attribute has a IDL Struct Platform Type. The option is present on the view attribute page.&lt;br /&gt;
[[File:IDLStruct in Attribute Page.png|frameless|1007x1007px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When enabling the Destructure Linker toggle, some additional options will pop up such as a Destructure Reference radio button and a option to create a new, or select an existing Destructure Linker. It&#039;s only possible to select a single IDL Composition as a Destructure Reference.&lt;br /&gt;
&lt;br /&gt;
[[File:Destructure linker enabled.png|frameless|1017x1017px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After saving when selecting a Reference and a Linker, the parent view of the attribute will now update it&#039;s &#039;Query and Template Preview&#039; to include the new Destructure Linker&lt;br /&gt;
&lt;br /&gt;
[[File:Update Query and Template Preview.png|frameless|1013x1013px]]&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing Nesting View Attributes ==&lt;br /&gt;
To create a new Nesting View Attribute, click the &amp;quot;Add Nesting&amp;quot; button in the Attributes section of a View details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details nesting view attr create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* A View&lt;br /&gt;
* A path&lt;br /&gt;
* Be Privately Scoped or Foreign Reference&lt;br /&gt;
&lt;br /&gt;
Nesting View Attributes are created and edited inline. Any new or updated Nesting View Attributes will be saved when the user clicks on the &amp;quot;Save&amp;quot; button either for the row or for the entire View.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must point to a view with a uniform projected characteristic. The foreign referenced Nesting View Attribute&#039;s uniform projected characteristic must match the type of the last hop of the perspective path used by any field that nests it.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute can either be a &amp;quot;Foreign Reference&amp;quot; or a &amp;quot;Privately Scoped&amp;quot; attribute. If the Private checkbox is checked, then the attribute is marked as &amp;quot;Privately Scoped&amp;quot; otherwise, it is marked as &amp;quot;Foreign Reference&amp;quot;. New Nesting View Attribute defaults to &amp;quot;Privately Scoped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that when switching from a Nesting to a Composite View, the Path/Perspective attribute and the Private attribute are cleared on save.&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1423</id>
		<title>View Attribute</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=View_Attribute&amp;diff=1423"/>
		<updated>2025-07-23T18:52:06Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Path */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A View Attribute can be also referred to as view characteristic or view field.&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing View Attributes ==&lt;br /&gt;
To create a new View Attribute, click the &amp;quot;Create&amp;quot; button in the Attributes section of a [[View]] details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr create.png|1200px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* An [[Observable]]&lt;br /&gt;
* A [[Measurement]]&lt;br /&gt;
* A path&lt;br /&gt;
&lt;br /&gt;
=== Name ===&lt;br /&gt;
The attribute&#039;s name must consist of letters, numbers, or underscores and start with a letter.&lt;br /&gt;
&lt;br /&gt;
=== Observable/Measurement ===&lt;br /&gt;
The user can either start by selecting an Observable and then the Measurement - the Measurement list will be filtered to the Measurements realizing the selected Observable - or select the Measurement first which will automatically select the Observable the Measurement realizes.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr obs meas.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Platform Type ===&lt;br /&gt;
Once the Measurement is selected, the user needs to either create a new Platform Type or select an existing one by clicking &amp;quot;Select Platform Type&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr new ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr select ptf type.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Path ===&lt;br /&gt;
The final step in creating a View Attribute is to add a semantic path using the path builder. The path is built hop by hop, starting with the entity/association attribute typing the selected observable. Each hop must be committed by clicking the checkmark before being able to move to the next. The last selected hop can be removed by clicking the x next to the new hop box. The current path of the attribute is rendered under the Path section title.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path1.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
After committing a hop, if there are additional hops that can be added, they will appear in the dropdown list, otherwise the text &amp;quot;No Possible Options&amp;quot; will appear.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path2.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path3.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
The circling arrow and the X next to the commit button respectively resets and cleans the path.&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details view attr path4.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
=== Destructure Linkers ===&lt;br /&gt;
Destructure Linkers are available when a view attribute has a IDL Struct Platform Type. The option is present on the view attribute page.&lt;br /&gt;
[[File:IDLStruct in Attribute Page.png|frameless|1007x1007px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When enabling the Destructure Linker toggle, some additional options will pop up such as a Destructure Reference radio button and a option to create a new, or select an existing Destructure Linker. It&#039;s only possible to select a single IDL Composition as a Destructure Reference.&lt;br /&gt;
&lt;br /&gt;
[[File:Destructure linker enabled.png|frameless|1017x1017px]]&lt;br /&gt;
After saving when selecting a Reference and a Linker, the parent view of the attribute will now update it&#039;s &#039;Query and Template Preview&#039; to include the new Destructure Linker&lt;br /&gt;
&lt;br /&gt;
[[File:Update Query and Template Preview.png|frameless|1013x1013px]]&lt;br /&gt;
&lt;br /&gt;
== Creating &amp;amp; Editing Nesting View Attributes ==&lt;br /&gt;
To create a new Nesting View Attribute, click the &amp;quot;Add Nesting&amp;quot; button in the Attributes section of a View details page:&lt;br /&gt;
&lt;br /&gt;
[[File:Phenom-data model-details nesting view attr create.png|1000px|border]]&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must have:&lt;br /&gt;
* A unique and conformant name&lt;br /&gt;
* A View&lt;br /&gt;
* A path&lt;br /&gt;
* Be Privately Scoped or Foreign Reference&lt;br /&gt;
&lt;br /&gt;
Nesting View Attributes are created and edited inline. Any new or updated Nesting View Attributes will be saved when the user clicks on the &amp;quot;Save&amp;quot; button either for the row or for the entire View.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute must point to a view with a uniform projected characteristic. The foreign referenced Nesting View Attribute&#039;s uniform projected characteristic must match the type of the last hop of the perspective path used by any field that nests it.&lt;br /&gt;
&lt;br /&gt;
A Nesting View Attribute can either be a &amp;quot;Foreign Reference&amp;quot; or a &amp;quot;Privately Scoped&amp;quot; attribute. If the Private checkbox is checked, then the attribute is marked as &amp;quot;Privately Scoped&amp;quot; otherwise, it is marked as &amp;quot;Foreign Reference&amp;quot;. New Nesting View Attribute defaults to &amp;quot;Privately Scoped&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that when switching from a Nesting to a Composite View, the Path/Perspective attribute and the Private attribute are cleared on save.&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Update_Query_and_Template_Preview.png&amp;diff=1422</id>
		<title>File:Update Query and Template Preview.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Update_Query_and_Template_Preview.png&amp;diff=1422"/>
		<updated>2025-07-23T18:49:39Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Update Query and Template Preview&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:Destructure_linker_enabled.png&amp;diff=1421</id>
		<title>File:Destructure linker enabled.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:Destructure_linker_enabled.png&amp;diff=1421"/>
		<updated>2025-07-23T18:38:25Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;shows what the destructure linker enabled looks like&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=File:IDLStruct_in_Attribute_Page.png&amp;diff=1420</id>
		<title>File:IDLStruct in Attribute Page.png</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=File:IDLStruct_in_Attribute_Page.png&amp;diff=1420"/>
		<updated>2025-07-23T18:32:11Z</updated>

		<summary type="html">&lt;p&gt;Nathan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;image of an IDLStruct from the view attribute page with the Destructure Linker off&lt;/div&gt;</summary>
		<author><name>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1419</id>
		<title>Permissions</title>
		<link rel="alternate" type="text/html" href="https://kb.phenomportal.com/index.php?title=Permissions&amp;diff=1419"/>
		<updated>2025-07-18T16:09:52Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* Assign Permissions */ added section about who can see what when assigning permissions&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;
When assigning permissions to users, note that all users can see who has permissions/access to the project. This capability is also available to users from other accounts, which will be listed under &amp;quot;External Permissions.&amp;quot; When making a copy of a project, there is also an option to &amp;quot;Copy all permissions.&amp;quot; This will copy permissions for all internal and external users.&lt;br /&gt;
&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;
NOTE: For Enterprise Installations with a single Group Account, all users are in the same Group and Permission Tokens are not necessary.  External refers to users outside of your Organization as configured in PHENOM.&lt;br /&gt;
&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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1417</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=1417"/>
		<updated>2025-06-27T15:58:39Z</updated>

		<summary type="html">&lt;p&gt;Nathan: /* 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;
== SDM Import Automatic Detection ==&lt;br /&gt;
When creating a project using file import, the file will automatically be scanned for the presence of a recognized SDM. If a SDM is found to match, the project will automatically use one of the &amp;quot;official&amp;quot; Phenom-provided SDM models. Some additional notes about this feature include:&lt;br /&gt;
&lt;br /&gt;
# The SDM detection is based on the name of the &amp;lt;dm/&amp;gt; node of the SDM model. It should exactly match the name of the &amp;lt;dm/&amp;gt; in the official SDM.&lt;br /&gt;
# If the 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 user made a custom measurement and placed it in a package inside the SDM)&lt;br /&gt;
&lt;br /&gt;
=== Extra Tips ===&lt;br /&gt;
If for some reason an expected SDM doesn&#039;t swap to a Phenom-provided SDM follow these steps to manually do it:&lt;br /&gt;
&lt;br /&gt;
# Import the model file as a model creation instead of a project creation; this should cause several Phenom models to be generated from the original file.&lt;br /&gt;
# Create a new project, instead of uploading a file, select the models that were created in step 1. Instead of selecting the SDM model that was created during import, select one of the Phenom-provided SDM models.&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1.&lt;br /&gt;
&lt;br /&gt;
It is also possible to replace an SDM of an already created project by following these steps:&lt;br /&gt;
&lt;br /&gt;
# Delete the project that should have the SDM replaced. Do &#039;&#039;&#039;NOT&#039;&#039;&#039; select any constituent models for deletion.&lt;br /&gt;
# Create a new project, instead of uploading a file, select the models that were from the original deleted project. Instead of selecting the SDM model from the original project, select one from the Phenom-provided SDM models.&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1.&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>Nathan</name></author>
	</entry>
	<entry>
		<id>https://kb.phenomportal.com/index.php?title=Projects_and_Models_Management&amp;diff=1416</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=1416"/>
		<updated>2025-05-29T18:10:35Z</updated>

		<summary type="html">&lt;p&gt;Nathan: Added a section giving more information and guidance about 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;
== SDM Import Automatic Detection ==&lt;br /&gt;
When creating a project using file import, the file will automatically be scanned for the presence of a recognized SDM. If a SDM is found to match, the project will automatically use one of the &amp;quot;official&amp;quot; Phenom-provided SDM models. Some additional notes about this feature include:&lt;br /&gt;
&lt;br /&gt;
# The SDM detection is based on the name of the &amp;lt;dm/&amp;gt; node of the SDM model. It should exactly match the name of the &amp;lt;dm/&amp;gt; in the official SDM.&lt;br /&gt;
# If the SDM model contains more content than what present in the &amp;quot;official&amp;quot; SDM the swap will not occur (e.g. a user made a custom measurement and placed it in a package inside the SDM)&lt;br /&gt;
&lt;br /&gt;
=== Extra Tips ===&lt;br /&gt;
If for some reason an expected SDM doesn&#039;t swap to a Phenom-provided SDM follow these steps to manually do it:&lt;br /&gt;
&lt;br /&gt;
# Import the model file as a model creation instead of a project creation; this should cause several Phenom models to be generated from the original file.&lt;br /&gt;
# Create a new project, instead of uploading a file, select the models that were created in step 1. Instead of selecting the SDM model that was created during import, select one of the Phenom-provided SDM models.&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1.&lt;br /&gt;
&lt;br /&gt;
It is also possible to replace an SDM of an already created project by following these steps:&lt;br /&gt;
&lt;br /&gt;
# Delete the project that should have the SDM replaced. Do &#039;&#039;&#039;NOT&#039;&#039;&#039; select any constituent models for deletion.&lt;br /&gt;
# Create a new project, instead of uploading a file, select the models that were from the original deleted project. Instead of selecting the SDM model from the original project, select one from the Phenom-provided SDM models.&lt;br /&gt;
# (Optional) Delete the SDM model that was created in step 1.&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>Nathan</name></author>
	</entry>
</feed>