Using specifications from library database
Normally, specifications are created in the project database and therefore only available to the given project. However, specifications can be copied to the library database, which allows an administrator to manage them from a single location and easily make specifications available to any project that uses the same library. This change is done by copying the existing specifications from the projects to the library. Copying the first piping specification also copies the related specification setup objects from the project to the library, so the same setup will be used by all projects that use that library.
To start using specifications from the library database, perform the following:
-
In the project database:
-
Select one piping specification from a project that has the most common specification setup in your design environment, and copy it to the library.
-
Run a validation of the specification setup objects. If there are differences between the project and the library, resolve the issues as appropriate.
-
Delete the specification setup objects from the project.
-
Copy any of the other specifications from the project to the library. (You can also do this later.)
-
-
In the library database:
-
Approve a specification for use in the project.
-
-
In the project database:
-
When defining a new line, set the line to use specifications that are in the library database.
-
Optionally, edit the existing line definitions to use specifications that are in the library database.
-
When the original specification is no longer used by any line definition, consider whether to delete the specification from the project database, especially if there is a specification with the same name in the library database.
-
Once you have set up the library database using one project, you can repeat the process in other projects that use the same library: first copy one specification to the library (this updates the existing setup objects in the library, using a mapping tool), validate the setup objects, remove the setup objects from the project database, and copy the rest of the specifications (as needed) to the library. Otherwise the projects will continue to use the specifications in the project database, as before.
Note: In the specification selection lists it might not be obvious whether a given specification is stored in the library database or the project database. If a specification by the same name exists in both databases, also the specifications selection lists show both, which can be confusing.
Copying specifications and their setup to library
To start using specifications from the library database, choose a project that uses as common a specification setup as possible. Locate a specification that you want to copy to the library, and use the Copy to Library context-menu command on that specification. This copies the given specification as well as the related specification setup objects to the library database.
Copying a piping specification also copies the "Component classes", "Functional codes", and "Nominal size sets" configuration objects to the library.
Copying a beam specification also copies the "Beam classes" setup object to the library.
Copying a ducting specification also copies the related duct part design rules to the library.
If the copied specification refers to objects that are in the project database (Catalog Parts, Catalog Part Sizes, Dimension Tables, GDL and Isometric Symbols), then also those objects are copied to the library database and the object references are automatically corrected in the specification. A specification that is in the library database must only refer to objects that are in the library database.
Validating the copied specification setup
After the first piping specification and the specification setup objects "Component classes" and "Functional codes" have been copied from the project database to the library database, you must run a validation check for these specification setup objects. The validation check compares the setup objects in the project to those in the library and checks that what is defined in the project is also present in the library, and that there are no differences in the data. This check must be passed successfully.
To run the validation check, right-click either of the setup objects in the project database and select Check validity of library Component Class and Functional Codes.
For Functional Codes, the validator checks whether each Short Code defined in the project database is also defined in the library database, and whether their following properties match:
-
The description string is the same.
-
The geometry types defined in the project are also defined in the library. (The library object may have also other geometry types.)
-
The number of key sizes is the same.
-
The look-up dimensions are the same.
For Component Classes, the validator checks whether each Component Class defined in the project database is also defined in the library database, and whether their following properties match:
-
Functional Codes defined in the project are also defined in the library.
In addition, the validator checks whether there are contradicting Functional Codes in use in the project specification objects and in model objects.
If the validation check fails, you can choose to show a report of the differences and conflicts that were found.
If the validator reports that something is missing from the library setup, correct the problems as appropriate.
-
If the missing entities are used in a specification, copy the specification to the library; this updates the library setup.
-
If the missing entities are not used in any specification, you must add them to the library setup manually.
Important: When modifying the specification setup in the library database, be aware of any other projects that might currently be using specifications from the library.
Removing specification setup from project database
After the specification setup objects "Component classes", "Functional codes", and "Nominal size sets" have been copied to the library and validated, the objects must be deleted from the project database.
To delete a specification setup object, right-click the object and select Delete.
Editing specifications in library
Copying a specification from the project database to the library database also copies the parts that the specification uses and corrects the object references accordingly. When editing a specification that is in the library, make sure that you only select objects from the library database, and not from the project database.
Approving specifications for use in projects
After the specification setup objects "Component classes", "Functional codes", and "Nominal size sets" have been removed from the project database, the specifications can be edited in the library database and approved to the projects where they are to be used.
To approve a specification for use in a project, right-click the object in the library database and select Approve for Use in Project <project name>.pms.
Assigning specifications to lines
After a library-based specification has been approved for use in a project, the project's line definitions can be set to use specifications from the library.
So, when editing a pipeline, cable tray, or ductline, select the appropriate specification from the drop-down list or via the "Select Specification" option.
For general information about assigning specifications to lines, see Systems and Lines.
Updating specification setup in library
When another project that uses the same library is to start using specifications from the library, copy one specification from that project to update the existing specification setup objects in the library. Then you validate the setup objects like you did with the first project and remove the setup objects from the project database.
When updating the specification setup in the library, if the project contains Functional Codes that do not exist in the library, the Importing Functional Codes From <project name>.pms dialog opens, allowing you to add the missing codes to the library.
In this example, the project setup contains a Functional Code "CC02" that is used in a specification but does not exist in the library, and the mapping tool has opened for adding the code to the library.