Close

Relief for ODA Team in Ukraine

Learn more
ODA PRC SDK
PRC Concepts

PRC Format Information

PRC (Product Representation Compact) is a 3D file format which is used to represent 3D model data created by a CAD system, visualization applications, or complex documents.

The main purpose of the PRC format is to provide a compact binary form for CAD data visualization; it provides the visual equivalent of 3D data and calculates the shape measurements with high accuracy without using specific CAD applications.

The PRC format is optimized for storing different types of CAD data such as coordinate systems, curves, surfaces, solids and so on. The format stores a wide variety of 3D data types:

  • Assemblies and their parts.
  • Curves and surfaces represented through exact geometry.
  • Entities represented through tessellation (triangulation) algorithms.
  • 3D entity trees representing the hierarchy of elements (coordinate systems, wire frames, solids and surfaces).
  • Markup data represented with annotation entities.

PRC data can be stored in a file using regular or high compression. Regular compression avoids losses or transformation from the original CAD application format. It directly represents the 3D data. Using high compression leads to a significantly reduced file size with a representation that has a specified tolerance from the original data. Default tolerance value is 0.001 mm for exact geometry and 0.01 mm for tessellation.

PRC File Structure

A .prc file consists of the following components:
  • File header section (with uncompressed data)
  • Model file (with compressed data)
  • One or several file structures (with either uncompressed or compressed data)

A file structure represents independent assemblies or other 3D parts and can contain one or several product occurrences. Each file structure can be created with various CAD applications.

A product occurrence describes the assembly hierarchy and can include other product occurrences, therefore each file product occurrence can be considered as a tree.

There can be only one root product occurrence in the file structure. The root product occurrence is the ancestor of all other product occurrences and serves as an entry point for the file structure.

A product occurrence also can include:

  • A product markups tree
  • Filters that redefine child products or part definition data loading and representations

The entry point for a .prc file is the model file. The model file defines the root product occurrence. It also can contain a collection of part definitions.

A part definition stores information about the starting point of the whole assembly description. A part definition can act as a prototype for a product occurrence. A part definition contains geometry data as an array of representation items and (optionally) a markups tree. The representation items are described as a combination of tessellation, topology and geometry information.

The model file has one header section where the common service information about the .prc file (original application that created the file, and start and end offsets of other file sections) is stored.

The file structure also has one header which contains special data about the structure:

  • Authoring version
  • Unique identifiers for the file structure unique identifier
  • Authoring application unique identifier
  • Unique identifiers for all other file structures referenced from within this structure

Full .prc file structure is represented in the following table.

PRC Format Versions

To determine the particular version of the PRC format, a version number is used. The PRC file format version number is determined by the international standard version. The version format number contains two parts: the year number (year modulo 2000) and the day of the year (three digit).

For example, version number 10001 means that the international standard of the PRC format corresponding to the first day of the 2010 year.

Since each file structure and file header in a .prc file can be written and read by different application versions, each of them can have their own format version numbers.

The following version number types are used in the PRC format:

  • Authoring version — Shows what international standard version a PRC application was using when writing the PRC file header or file structure.
  • Minimum version for reading — Shows the minimum international standard version a reading application should conform to in order to read data from the PRC file header of file structure.
  • Current version — Shows the maximum version number that a PRC reading (or writing) application conforms to.

If the current version of the PRC reading application is less than the minimum version for reading, the PRC reading application fails while processing the file and generates an error message.

If a minimum version for reading is lower than the authoring version, the PRC writing application should add a schema description to the .prc file. A schema stores information about the differences between the minimum for reading version and the authoring version: new fields or new entity types which were added between minimum version for reading and authoring version. Schema data allows the PRC reading application to skip information in a .prc file that is unknown in its minimum for read version.

See Also

PRC Data Types Supported in ODA Platform

Get Started with ODA PRC SDK

Copyright © 2002 – 2022. Open Design Alliance. All rights reserved.