Model, Component, and Package Management > Package management > Overview of packages > Visibility of item and diagram types in packages
  
Visibility of item and diagram types in packages
For each dictionary item and diagram type that can be scoped directly by a Package, you can set its Visibility property to Public, Protected, Private or Package. UML defines visibility as follows:
A public element is visible to all elements that can access the contents of the namespace that owns it.
A private element is only visible inside the namespace that owns it.
A protected element is visible to elements that have a generalization relationship to the namespace that owns it.
A package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace. Only named elements that are not owned by packages can be marked as having package visibility. Any element marked as having package visibility is visible to all elements within the nearest enclosing package (given that other owning elements have proper visibility). Outside the nearest enclosing package, an element marked as having package visibility is not visible.
* 
An item is always visible to other items that share the same parent Package.
Modeler does not prevent you from linking to an item that is not visible.
If you select an item in the Packages pane, the Visibility property is shown on the general tab of its Property Pages
In the Packages pane, the following symbols indicate the visibility of each item:
+ Means the item has Public Visibility.
# Means the item has Protected Visibility.
- Means the item has Private Visibility.
~ Means the item has Package Visibility.
By default, the Visibility property is set to Public.