How to Recover Deleted Items

Recovering Deleted Items

The recoverable status means that when you delete items, they are not removed from the database, but is placed into a recoverable state from where you can restore the item if you need to. The ability to recover deleted items in this way is similar to the Trash folder you may find on a mail program or Bin on an operating system home screen. When an item is restored all cross references to/from the item are also restored.

To set the recoverable option you need to set the Enable recovery of deleted items option within the Miscellaneous section in Project Setup:

Project Setup dialog showing settings to recover deleted items
Project Setup dialog

You will notice when you select this option the Deleting/recovering items …. option becomes enabled. This controls whether deleting a draft item (making it recoverable) should also modify the item’s last modifier/last modified date/time attributes. If set, this also affects those attributes when recovering an item, i.e. the date/time will reflect when the item was recovered.

Full Deletion

To really delete items from the database you can either:

  1. View the recoverable items and delete them, or
  2. Overwrite with a new item with the same identity as an item that is recoverable (you will receive a warning message so that you do not do this unintentionally)

You can view the recoverable items by using the Delete State element in queries:

Delete states available within queries
Query Details Dialog

Tip: You can stop users from deleting items by disabling the delete item privilege in user setup. We feel that deleting an item is more of a project admin task and not for general users.

Viewing Deletions

As you can see there are three values:

  • Normal (the default) – selects items that are not recoverable
  • Recoverable – selects items that are recoverable, that is, the items that have been deleted and which can be restored
  • All – selects items irrespective of their recoverable status

Read the Cradle Help for information on how to recover deleted items.

When items are deleted (i.e. placed into a recoverable state) and change history is enabled for that item type, a comment of Item deleted is added to the change history of the recoverable item. Also, if the item is recovered a comment of Item recovered is added to the change history.

Article updated 05/12/2018 – Added tip

Creating a RTF Frame

Displaying and Editing RTF Inside Cradle

This blog will help explain what RTF frames are and how they are used within Cradle.

Rich Text Format can be used to enhance the data shown in Cradle. This is displayed in a Rich Text Frame. Whether this is to allow BOLD, Underline or a different Font. Generally requirements and specifications should be broken down into atomic components. The ‘detail’ should be expressed in a short and concise  statement or paragraph. However, higher level requirement or tables are often useful and in these cases the emphasis / layout provided by RTF is desired.

demonstration of RTF in Cradle
RTF Frame Display

To create the RTF Frame, open WorkBench and navigate to Project Setup. Inside Project Setup from the Options dropdown menu select “Item Definitions” and open the tab Frame Types.

In most cases using the shipped schemas, you’ll see a frame of type RTF, however, the steps to create a frame are: Select New… this will open the “New Frame Type”  dialog in which you can give your frame any name, for this I have named mine the “Blog RTF“, You will now see the Frame you have created in the list, select Edit… in this dialog you now have several settings, the “Base Type” will allow you to change the Frame Type, you will want to change this to “RTF“. Other options are available such as being able to restrict the RTF Frame by choosing a Required Skill, provided that you have a set of predefined skills in your project schema.

Now to assign this frame to an Item Type, first you will want to open “Item Types“. Select your item of choice, for this I have selected System Note – Feature. Select “Frames…” and give this a sensible name such as “RTF“.

Frame Setup dialog showing RTF frame assigned to FEATURE item type
RTF assigned to FEATURE

For more information regarding Frames select here

Article Updated 04/02/2019 – Added intro

Creating New Item Types

Do you require more Item Types, maybe you just want a new Item Type with a different name. Cradle lets you create new item types to suit your working methods.

In Project Setup navigate to “Options – Item Definitions” and change the tab to “Item Types“. This dialog presents a list of

  • the predefined types of item available in any and all Cradle projects,
  • those that were in the chosen template schema when the project was created
  • those added by a user.

New user defined types are used to extend a Cradle Database, to encompass new types of information. To create a new item type you need PROJECT privilege to modify the schema.

3SL Cradle New Item Type
Creating a New Item Type
  1. Select the Project tab
  2. Select Project Setup
  3. Set Options to Item Definitions (if not already set)
  4. Select the Items tab
  5. Click New and enter a name for the new item type

Remember you can also add these newly created Item Type to the quick access bar, for more information see “Customise your Quick Access Bar”

For more information regarding item types and Project Setup please see help on Item Types or my article on configuring Item Attributes

Article Updated 04/02/2019 – Removed mentions of project schema

New Default Schemas

The structure of each Cradle database is defined in a schema. Cradle is supplied with four default schemas that you can use. You can create new default schemas. You can initialise your new Cradle database using any of your default schemas.

Default Schemas

A Cradle system can contain any number of databases. Each database can be used for one or more projects. Each database has a structure that is defined in a schema.

When you create a new database, you specify a default schema that will be used to initialise the schema in the new database  Cradle is supplied with four default schemas, called: empty, default, quick-start and SysML. 3SL provides documents that explain the contents of these default schemas.

New Default Schemas

Cradle can support any process for any type of project. The schema defines the types of information that you will need to follow your process.

You can create new default schemas to support any type of process for any type of project. For example, look at the following types of projects and lists of the item types that will be included in their schemas:

  1. Agile projects:
    • Sprint, iteration
    • Feature
    • Build and release
    • Test cases, test results
  2. Business Analysis projects:
    • Needs, goals, objectives
    • Business functions, processes, tasks
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles
  3. Enterprise Architecture projects:
    • Needs, goals, objectives
    • Processes, functions, tasks
    • Resources, systems, buildings and other facilities, area breakdown structure, site breakdown structure
    • Delivery phases, releases and builds
    • Organisations, groups, teams
    • Deliverables, reports  and other document types, artefacts, builds
    • Personnel types, skills, roles, organisation breakdown structure
  4. Requirements Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
  5. Application lifecycle management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Validations and verifications
    • Analysis models, logical models, architecture models, design models – built using MBSE using one or more of functional analysis, SASD, IDEF, ADARTS, UML and/or SysML notations
    • System breakdown structure (SBS)
    • Test cases and test results
  6. Project Management projects:
    • Needs, goals, objectives
    • Business requirements, user requirements, system requirements
    • Product requirements, managed in a library
    • Validations and verifications
    • System breakdown structure (SBS)
    • Product breakdown structure (PBS)
    • Part catalogue, suppliers, orders
    • Production schedules, production runs, batches, samples
    • Quality records, test cases, samples, test results

Location and Structure of Default Schemas

Each default schema is stored in the sub-directory:


inside the Cradle installation on the server.

Inside this directory are:

  • A file called: prj_params that contains the schema
  • A directory tree containing the project-scope definitions, such as queries, views, forms and so on, called: definitions

Creating New Default Schemas

You can create your own default schemas by:

  • Decide on a name for your new default
  • Create a new directory with this name inside the admin/defaults directory in the Cradle installation on your server
  • Place the schema for the new default inside this directory in a file called: prj_params – you can copy the prj_params file from inside the database directory of an existing database, or use Cradle’s export to create it (see below)
  • Optionally copy some or all of the Project scope definitions from the definitions directory in an existing database

Export to Create a New Default Schema

You can export the schema using the Export Information dialog that is shon when you select Export from the Project tab in WorkBench.

If you can run WorkBench on the server, then you can export the schema directly into the new defaults directory:

Export to Create New Default Schemas
How to to Create a New Default Schema

Using Your New Default Schemas

When you create a new database in Project Manager, select the Schema drop-down list. This will display the list of default schemas. Any new schemas that you have created will appear in this list, for example:

Create Project dialog showing available schemas
Create Project dialog

Getting Started with Link Rules in Cradle

What Are Link Rules?

Link rules are used in Cradle as a way of defining constraints for cross reference operations within a project. They specify who can manipulate cross references, the link types that can be used, between what types of item, and which items of these types. This guide to getting started with link rules will help first time users understand the concepts.

The level of detail for each link rule can vary as required for your project’s needs. On one hand they can be very simplistic, allowing links of any link type between all item types. On the other hand they can be more detailed and specific, allowing links between different item types, models and individual item identities.

Throughout this blog post, and future posts, we will explore the Link Rule Setup dialog. These posts will cover the different options available and the result this will have on cross references between items in your project.

Continue reading “Getting Started with Link Rules in Cradle”

Item Attributes

Item Attributes

Items have attributes that describe the item and store its data. Item attributes are used to sort, categorise and group items. They also hold the unique data forming the main purpose of the item. There are three main kinds of attribute:

    •  Predefined – used to manage items, and include attributes such as name, number, version, owner, security classification and last modification date.
    •  Categories – small amounts of data as free text, single value picklists or multiple value picklists, or abstract data types such as dates or reals. These are also primary database indexes.
    • Frames – attributes for storing large amounts of data, as text or binary. These can be queried but are not primary indexes.


  • The predefined attributes are always present. You can inspect their values, query the database to retrieve items based on the values of these attributes, and in some cases, directly set the values of the attributes. for example The key, group, comment or description. Other predefined attributes are central to Cradle’s access control mechanisms and the Cradle configuration management system (CMS). These are set by Cradle, for example modified date or status, they cannot be directly modified. You cannot remove predefined attributes from an item.To change the item’s user definable attributes, you will need to go to Project Setup and in Options select Item Definitions as shown below
    Project Setup – Item Definitions


  • Here you will be able to add, modify and remove an item type’s attributes. For example if you wanted to add a picture to an item type, you could pick the JPEG frame type. If you needed to add CAD drawing file, you would define a frame type to hold the data and then add an instance of this to each of the item types needing to store this information.

Hierarchical Numbering

The hierarchical number describes an item’s position in the hierarchy. It is usually stored in the Key attribute but it can be stored in a category if you wish. Hierarchical numbers are not fixed. They can be changed and reorganised.

  1. A prefix (this is optional)
  2. A separator
  3. A number

The hierarchical separator can be:

  • A dot or period (this is the default), e.g. fred.1.2.3
  • A hyphen, e.g. fred-1-2-3
  • A slash, e.g. fred/1/2/3
  • For further information regarding attributes please click here
Article Updated 04/02/2019 – Expaned on how the key attribute is special to control hierarchies

Item’s Edit History

Who Changed That? When? Why?

When working in large teams or over a long period an item’s edit history is very useful.

Each item type can have history turned on in the Project Schema via the Project Setup dialog. Users can choose what stage to enable history, Never, Always, Changing draft items that have a baselined instance, Named category matches specified value.

Right clicking on the item and selecting the History -> View Item History. The resulting dialog shows who changed the item on what date and what time. It also displays a comment (This can be made mandatory) entered at the time of editing. If an entry is selected in this list, full details are shown in the lower half of the dialog. If there are a large number of changes, the filter at the top of the dialog can aid finding a relevant change.

Dialog showing an item's edit history
Item’s Edit History

Item History in a Web Browser

Web Access allows you to see an item’s history too. This functionality is in our shipped web UIs. It can be added to your own custom UIs, see the ‘history’ template information.

Web Access showing an item's history
Item History in Web Access

Project Schema Report Options

New Cradle 7.2 Reports Feature

It just grew and grew and grew…..

As more functionality is constantly being added to Cradle, the number of elements in the project schema grow. If you want to study only part of the schema, the report could be quite long and unwieldy. Cradle 7.2 allows users to select the portions of the schema they want to show in a report.

Shows selection of part of the project schema and resultant report
Report parts of the project schema

New Cradle 7.3.1 Reports Feature

We’ve made coloursets report more clearly in the Schema Report.

option dialog and result for schema coloursets
Coloursets – Report

Coloursets are a means to easily and consistently apply foreground and background colours to diagram symbols, or item type definitions. you can see more information in the Cradle help.

Copying a Schema

Once you have set up a schema, you can always copy it to a new project.


Contents of a Cradle database

Each Cradle database contains different sets of information. These can be imagined as layers, where each layer uses the data in the layers below it. For example, cross references cannot exist until the items exist whose relationships are shown by the cross reference. These layers are, highest to lowest:

1. Cross references – the links between the data
2. Items – the data
3. Definitions – how to find, view and report the data
4. User profiles – who can own and access the data
5. Schema – the structure of the data
Cradle database layers
You can export/import each layer individually, or in any combination, or all layers. You should only import a layer of information if the lower layers already exist in the database (unless you know that it is safe).

To initialise a new database from an existing database, you need as a minimum:

– The schema
– Definitions

User profiles are needed to use a database and may be needed for some parts of the schema (such as workflows and alerts) and definitions (user and personal scopes).

Describe Your Schema to Help Your Users


The structure of each Cradle database is defined by it’s schema. This contains many parts, but the most fundamental are the ‘item types‘ for the types of information that Cradle will manage and the category and frame attributes of these item types.

Item Types, Categories and Frames

When you define the schema, you can specify a ‘description‘ for all of these parts, including:

  • Item types
  • Category codes
  • Each value in a category code that is a pick-list of value(s)
  • All frames
Setting schema descriptions in Cradle for categories and their values
Schema Descriptions

Setting Schema Descriptions

These descriptions are very useful to end users, because Cradle will display them as tooltips in the UI (User Interface). For example, when the user moves to set a category value, Cradle will display:

showing descriptions within tooltips for categories, their values and frames
Category and Frame Tooltips
  • The description of the category
  • The description of the current category value

When a user moves into the heading for a frame, the UI will display the description of that frame as a tooltip.

Link Rules

A comment as to the purpose of the link rule can be added to the schema. This is a useful aide-mémoire to those editing the rules. However, if a certain action is prohibited by the rules, then the user is shown why.

In this example two rules have been set up, one to allow user Alan to modify sub-part to component links and another to prevent all users modifying the same link. Because of the top-down sequence of rule matching this has the effect of allowing only Alan to modify cross references of this type. The example shows Dewi trying to modify the link attributes between the Pump parent component and the Pump housing linked as a sub-component. The warning shows why this alteration was prevented. The text from the schema is shown in the dialog.

documenting the link rule purpose in the schema allows the user to be shown the reason an action was rejected
Link Rule Documentation


Within Cradle item types can have a number of different categories. Some item types may share the same categories, others may use unique values.

The Group field is available across the whole project. When the schema contains a number of entries for the Group field, these can be applied to any item type. If the project defines values for the Group, selection is only from the defined list. If no pick-list is defined, it is simply a free-form text field, to use as the user wishes.

Showing the setup of group descriptions in the schema and tooltips in a form
Group Descriptions

This example shows three types of assets, Capital, Inventory and Liquid. Some item types may only fall into one group, in this example a physical bedroom is going to be a capital asset, the guest supplies are liquid assets. However, when it comes to fittings, the light is being grouped with the Capital assets and the bed and so on in the Inventory group.

However you choose to use this cross item categorisation, the descriptions given to the group show as tooltips when hovering over the group field in a form.

Article updated 17/09/2018 – Cleaned up post