__________________________________
Requirements
__________________________________

This application is a Visual Basic .Net application developed in Microsoft Visual Studio 2010 using .Net 4.0. The application will work with Solid Edge ST5 or later.

__________________________________
Installation
__________________________________

The compiled executable, SEAssemblyRelationshipBrowser.exe, is dependent on several interop assemblies:
- Interop.SolidEdgeAssemblySEAssemblyRelationshipBrowser.dll
- Interop.SolidEdgeConstantsSEAssemblyRelationshipBrowser.dll
- Interop.SolidEdgeFrameworkSEAssemblyRelationshipBrowser.dll
- Interop.SolidEdgeFrameworkSupportSEAssemblyRelationshipBrowser.dll
- Interop.SolidEdgeGeometrySEAssemblyRelationshipBrowser.dll
- Interop.SolidEdgePartSEAssemblyRelationshipBrowser.dll

All files required to use the application are delivered in the bin folder of the SEAssemblyRelationshipBrowser folder.  If you copy SEAssemblyRelationshipBrowser.exe to a new location,
copy the interop assembly files to the same location.

__________________________________
Known Limitations
__________________________________

- Some things will cause occurrences to be activated.
- Relationships within adjustable assemblies will not be displayed, only those within the active assembly.

__________________________________
General Usage
__________________________________

SEAssemblyRelationshipBrowser.exe is a tool, written in Visual Basic .Net, that provides a means for displaying all of the assembly relationships for the active assembly document. The application
provides a means for filtering which types of assembly relationships are displayed in the list as well filtering which assembly relationships are displayed based on relationship status.
Filtering the displayed relationships based on status can help troubleshoot which relationships are causing problems in the assembly (i.e. causing occurrences to display with a lightning
bolt in Pathfinder).

The application dialog box is divided into three main sections: a section containing a list of all of the assembly relationship types, a section containing a list of all of the assembly
relationship statuses and a section containing a list of the relationships that match the two filters. All three lists contain checkboxes on the items. For the filter sections, if the box is
checked, those types of relationships will be displayed in the relationship list. If either filter list has nothing checked, no relationships will be displayed in the relationship list.
The checkboxes on the relationship list items will determine which relationships the commands on the RMB context menu will act on.

If there is an assembly document active, modifying the state of any of the checkboxes in either of the two filter sections will automatically update the relationship list.


-------------------------
Relationship List Section
-------------------------

When moving the mouse over an item in the relationship list section, the faces or occurrences (depending on relationship type) will be highlighted if possible. This will cause occurrences
to be activated. Also, if the option to show detailed item tooltips is enabled (the checkbox under the relationship list) a tooltip displaying the full occurrence path for all occurrences
involved in the relationship will be displayed.


-------------------------
Context Menus
-------------------------

All three sections support RMB context menus. For the two filter sections, there are simply two entries - Select All and Deselect All. These commands provide a quick way to check or
uncheck all of the checkboxes in the appropriate list.

The context menu for the relationship list contains the following commands, all of which apply only to the relationships that have their checkboxes checked:
- Select All / Deselect All: These are the same as the two filter lists and simply check or uncheck all of the items in the relationship list.
- Select Components: This command will add all of the occurrences involved in the selected relationships to the application's select set. After running this command, you can then
                     simply click the RMB in the Solid Edge document to display the Solid Edge context menu for those occurrences which makes it convenient for showing/hiding/etc.
- Suppress / Unsuppress: Toggles the suppression state for the selected relationships. This aids in eliminating any problem relationships found when troubleshooting.
- Delete: Deletes the selected relationships. Again, this aids in eliminating any problem relationships found when troubleshooting.
- Flip: Same as using the Flip command in Solid Edge. Only works on those relationships that support flipping.                     


-------------------------
Main Buttons
-------------------------

There are three main buttons on the dialog:
- Refresh: This button will repopulate the relationship list with those relationships that match the two filters. This button is useful when the active document has changed or
           the application was started before there was an assembly document active since the dialog is not notified of document changes. If the document hasn't changed, this button
           is less important since the relationship list is updated automatically when either of the filters is changed.
- Force Recompute: This button will force the assembly document to recompute. This button is useful to make ensure the document relationship statuses are up-to-date.
- Close: Closes the application.


-------------------------
Troubleshooting
-------------------------

If there are occurrences in the assembly that are sick (i.e. have lightning bolts in the Pathfinder) there are some steps that can help determine which relationships may be causing problems.
First, use Force Recompute to make sure all of the relationship statuses are truly up to date. Next, set the status filter to be one of the unsolved statuses - Unsatisfied, Missing Geometry or Unknown.
You can also set the status filter to Unsolved which will show any of the three. Typically, starting with the status filter set to Unsatisfied will point out the most problematic relationships.
If any Unsatisfied relationships appear in the list, they can either be suppressed or deleted to try to fix the assembly. It is usually best to deal with one of these relationships at a time
because it could be one relationship that causes others to appear in the list. If there are no relationships with an Unsatisfied status, then either of the other two unsolved statuses should be
checked.