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


  1. Open a server project.
  2. 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 CollaborateHidden packages.
  3. 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.

  4. Click OK when you are done.

  5. 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.
  6. 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. 
  7. Commit the project.
  8. 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 and unhiding used projects

You can hide/unhide 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 the elements of the used project are hidden from the Containment tree due to being unused, and all references to these elements are cut from other model places

To hide an indirectly used project, you need to hide it in the directly used project first. 

Example

Let's say you have a project A that uses a project B, and this project uses a project C. You want to hide the project C inside the project A. In this case, you need to hide it in the project B directly first and then use the public branch of the project B.

Indirectly used projects can also be hidden/unhidden 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

To hide an indirectly used project automatically, you need to hide all directly used projects that use the specific indirectly used project.

Example

Let's say you have a project A that uses a project B, and this project uses a project C. You hide the project B and then the project C is hidden as well; however, if you add a new usage D that also uses C, the hidden usage of the project C is automatically unhidden because not all directly used projects using the project C are hidden in this case.

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

You must have the read-write permission for the stripped model branch to synchronize it.

A stripped model is read-only. It can only be used for reuse in other projects, not for editing (it can only be modified by synchronizing it – read-write permission is required for the stripped model branch). 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


  1. On the main menu, click OptionsProjects. The Project Options dialog opens.
  2. In the list of option groups, select  General and then select Collaboration in the list of options.
  3. 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.

Selecting a synchronization mode to specify how changes in the main project are synchronized to a branch where a stripped model version is stored