On this page
The Hiding packages utility lets you specify which model Packages, elements within the model packages, and Used projects should be hidden. Once specified, the public version of a model will be created by cutting/deleting the hidden parts. You can strip your project to reuse only a particular part of the project in another project. To strip your project, you must hide packages you do not want to share.
Hiding packages
To hide packages
- Open a server project.
- Do one of the following:
- Right-click the package you want to hide. On the shortcut menu, click Project Usages > Hide Packages.
- On the main menu, click Collaborate > Hidden packages.
The Hidden Packages dialog opens. From the All Data side, select the packages you want to hide and add them to the Hidden Packages side. Move the selected package back to the All Data side to unhide it.
Click OK when you are done.
- The package usage checking is suggested. Usage checking may be time-consuming; however, it helps to identify elements that are related to the soon-to-be hidden parts. If any issues are found, they are displayed and described in the Package Usage window.
- After you complete or skip Usage checking, you will see a notification that hiding the selected elements will be completed only after committing your project.
- Commit the project.
- The stripped model version is created to be available to use in other projects. Hidden packages are marked with a lock sign in the Model Browser.
Hiding used projects
You can hide a used project the same way as other packages. When hiding a used project, you cannot hide separate used project parts: you need to hide the whole used project. After hiding is done, a dedicated branch is created with the stripped model version, where all elements of the used project are hidden from Containment tree due to being unused, and all references to these elements are cut from other model places.
What is more, you can hide the used project (directly used project) with its indirect usage (indirectly used project). When you want to hide an indirectly used project, you need to hide all directly used projects that are using the indirect usage.
Example
Your project has a structure A→B→C. You want to hide the "C" project inside the project "A". In this case, you need to hide the project "B" as well.
Unhiding used projects
You can unhide used projects as well. You can do so yourself manually in the Hidden Packages dialog (see above), or, in some cases, they may be hidden automatically. Typically, this happens when the status of the used project changes:
- when the used project is hidden/unhidden
- when the used project is updated
- when the used project is removed
- when the new used project is used
- when used or using projects are merged
- when the used project is exported
- when the used project is imported
Example
Your project has a structure A→B→C. You hide the project "B", and then the project "C" is hidden as well; however, if you add a new usage "D" that is using "C" and which introduces a new unhidden path to reach "C", the hidden usage "C" is automatically unhidden.
Dedicated branch for stripped model
A stripped model is stored in a dedicated branch created when element hiding is performed for the first time. By default, this branch is named Public Project. You can rename the branch if you need to.
Project with it`s Public Project branch. The public project now can be reused in another project.
If all packages from the model are unhidden, the dedicated branch will be deactivated.
If the main project is using a public branch of another project and that branch gets deactivated, you will be informed about this change with a warning icon in the main project with a warning icon in:
- Containment tree (under Project Usages root),
- Project Usages dialog,
- Advanced Project Usages Configuration dialog.
The state of the used project is checked at the same time interval as checking for a new project version in the background, or by clicking the Project Usages Update button.
Hidden package changes
After a package or a used project is successfully hidden or unhidden, an icon with a lock on a package (or used project) is shown in a Difference viewer.
The icon with a lock on a package (or on a used project package) is also shown in:
- Upcoming Changes browser panel,
- Local changes browser panel,
- Commit dialog,
- Content History panel,
- Element History.
Model synchronization
A stripped model is read-only. It can only be used for reuse in other projects, not for editing. However, you can edit the main project. On committing, checking is performed to see if the changes affect hidden and public parts of the model, and model synchronization is initialized. In the Project Options dialog, you can define the model synchronization mode. The default mode is Manual; that is, after committing project changes, you will be notified about local changes affecting a public model stored in a dedicated branch. You can then decide either to synchronize changes or not.
The server project with hidden packages (and public branches) might get out of sync with the current version of the model in the public branch after set as the latest functionality in the History dialog is used. Therefore, you will be asked to perform hidden package synchronization.
To select a synchronization mode
- On the main menu, click Options > Projects. The Project Options dialog opens.
- In the list of option groups, select General and then select Collaboration in the list of options.
- For the option Synchronization Mode, specify one of the following values:
- Automatic - to synchronize changes automatically on committing the project changes.
- Manual (default) - to synchronize changes upon your decision.
- None - do not perform any synchronization.