Document management -- 3D use of Product Representation Compact (PRC) format

ISO 14739-1:2014 describes PRC 10001 of a product representation compact (PRC) file format for three dimensional (3D) content data. This format is designed to be included in PDF (ISO 32000) and other similar document formats for the purpose of 3D visualization and exchange. It can be used for creating, viewing, and distributing 3D data in document exchange workflows. It is optimized to store, load, and display various kinds of 3D data, especially that coming from computer aided design (CAD) systems. This International Standard does not apply to: Method of electronic distribution Converting CAD system generated datasets to the PRC format Specific technical design, user interface, implementation, or operational details of rendering Required computer hardware and/or operating systems

Gestion de documents -- Utilisation en 3D du format compact de représentation de produit (PRC)

General Information

Status
Published
Publication Date
14-Dec-2014
Current Stage
9020 - International Standard under periodical review
Start Date
15-Apr-2021
Ref Project

Buy Standard

Standard
ISO 14739-1:2014 - Document management -- 3D use of Product Representation Compact (PRC) format
English language
284 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO
STANDARD 14739-1
First edition
2014‐12‐15
Document management — 3D use of
Product Representation Compact (PRC)
format —
Part 1:
PRC 10001
Gestion de documents — Utilisation en 3D du format compact de
représentation de produit (PRC) —
Partie 1: PRC 10001
Reference number
ISO 14739‐1:2014(E)
ISO 2014
---------------------- Page: 1 ----------------------
ISO 14739-1:2014(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO 2014

All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any

means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.

Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.

ISO copyright office
Case postale 56  CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO 2014 – All rights reserved
---------------------- Page: 2 ----------------------
ISO 14739-1:2014
Contents Page

Contents  ...................................................................................................................................................................... iii

Foreword ........................................................................................................................................................................... v

1  Scope .................................................................................................................................................................... 1

2  Normative references .................................................................................................................................... 1

3  Terms and definitions ................................................................................................................................... 2

4  Document syntax conventions ................................................................................................................... 2

4.1  Conventions ...................................................................................................................................................... 2

4.2  Example Structure .......................................................................................................................................... 2

5  PRC file concepts ............................................................................................................................................. 3

5.1  The PRC file ....................................................................................................................................................... 3

5.2  Versioning ......................................................................................................................................................... 5

5.3  Unique identifiers ........................................................................................................................................... 6

5.4  Current data values ........................................................................................................................................ 7

5.5  Userdata ............................................................................................................................................................. 7

5.6  Units ..................................................................................................................................................................... 8

5.7  Tolerances ......................................................................................................................................................... 8

5.8  Compressed file sections .............................................................................................................................. 9

5.9  Compressed geometry .................................................................................................................................. 9

5.10  Compressed tessellation .............................................................................................................................. 9

6  PRC file contents .............................................................................................................................................. 9

6.1  Fileheader .......................................................................................................................................................... 9

6.2  Filestructure ................................................................................................................................................... 11

6.3  PRC Schema ..................................................................................................................................................... 13

7  PRC basic types .............................................................................................................................................. 13

7.1  General .............................................................................................................................................................. 13

7.2  Uncompressed types .................................................................................................................................... 14

7.3  Compressed types ......................................................................................................................................... 15

8  Base entities .................................................................................................................................................... 21

8.1  General .............................................................................................................................................................. 21

8.2  Abstract root types ....................................................................................................................................... 21

8.3  Structure and assembly .............................................................................................................................. 25

8.4  Miscellaneous Data ....................................................................................................................................... 45

8.5  Gra phics ............................................................................................................................................................ 56

8.6  Representation items .................................................................................................................................. 72

8.7  Mark up .............................................................................................................................................................. 77

8.8  Tessellation ..................................................................................................................................................... 83

8.9  Topology ........................................................................................................................................................ 114

8.10  Curve ............................................................................................................................................................... 150

8.11  Surface ........................................................................................................................................................... 182

8.12  Mathematical O pe rato r ............................................................................................................................ 209

9  Schema Definition ...................................................................................................................................... 213

9.1  General ........................................................................................................................................................... 213

9.2  Enumeration Of Schema Tokens .......................................................................................................... 214

© ISO 2014 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO 14739-1:2014

9.3  Schema Processing .................................................................................................................................... 216

9.4  Schema Requirements and Examples ................................................................................................. 222

10  I/O Algorithms ............................................................................................................................................ 225

10.1  Getnumberofbitsusedtostoreunsignedinteger ............................................................................... 225

10.2  Makeportable32bitsunsigned ............................................................................................................... 225

10.3  Writebits ....................................................................................................................................................... 225

10.4  Writestring ................................................................................................................................................... 226

10.5  Writefloatasbytes....................................................................................................................................... 226

10.6  Writecharact erar ray ................................................................................................................................. 227

10.7  Writeshortarray ......................................................................................................................................... 228

10.8  Writecompressedintegerarray ............................................................................................................. 229

10.9  Writecompressedindicearray ............................................................................................................... 229

10.10  Writeunsignedinteger .............................................................................................................................. 230

10.11  Writeinteger ................................................................................................................................................ 230

10.12  Writeintegerwithvariablebitnumber ................................................................................................. 230

10.13  Writeunsignedintegerwithvariablebitnumber ............................................................................... 231

10.14  Writedoublewithvariablebitnumber .................................................................................................. 231

10.15  Writenumberofbitsthenunsignedinteger ......................................................................................... 232

10.16  Writecompressedentitytype .................................................................................................................. 232

10.17  Writedouble ................................................................................................................................................. 233

10.18  Procedure For Writedouble ................................................................................................................... 270

11  Tessellation Compression Support ..................................................................................................... 274

11.1  Genera l ........................................................................................................................................................... 274

11.2  Huffman Algorithm.................................................................................................................................... 275

11.3  Basis Pseudocode ....................................................................................................................................... 277

Annex A (informative) Example: Triangle ....................................................................................................... 281

Annex B (informative) List of figures and tables ........................................................................................... 283

Bibliography .............................................................................................................................................................. 284

iv © ISO 2014 – All rights reserved
---------------------- Page: 4 ----------------------
ISO 14739-1:2014
Foreword

ISO (the International Organization for Standardization) is a worldwide federation of national

standards bodies (ISO member bodies). The work of preparing International Standards is normally

carried out through ISO technical committees. Each member body interested in a subject for which a

technical committee has been established has the right to be represented on that committee.

International organizations, governmental and non‐governmental, in liaison with ISO, also take part in

the work. ISO collaborates closely with the International Electrotechnical Commission (IEC) on all

matters of electrotechnical standardization.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the

different types of ISO documents should be noted. This document was drafted in accordance with the

editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of

any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation on the meaning of ISO specific terms and expressions related to conformity

assessment, as well as information about ISO's adherence to the WTO principles in the Technical

Barriers to Trade (TBT) see the following URL: Foreword ‐ Supplementary information

The committee responsible for this document is ISO/TC 171, Document management applications,

Subcommittee SC 2, Application issues.
© ISO 2014 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO 14739-1:2014
Introduction

The data representations in PRC allows 3D design data, typically created in CAD and PLM systems, to be

viewed and interrogated by visualization applications and to be integrated into complex documents.

This document specifies a wide range of data forms. The wide range is necessary to:

 Achieve a high fidelity, visually equivalent representation of 3D design data produced by an

advanced CAD or PLM system without requiring the original application.
 Allow applications to compute high accuracy product shape measurements.

PRC is intended to complement native or open standard CAD and PLM formats as a compact, concise

binary form for visualization and documentation. PRC is not intended as a data format for CAD

interoperability or use in factory automation systems, e.g. automated manufacturing and inspection

systems, which is addressed by the ISO 10303 standards.
vi © ISO 2014 – All rights reserved
---------------------- Page: 6 ----------------------
INTERNATIONAL STANDARD ISO 14739-1:2014
Document management — 3D use of Product Representation
Compact (PRC) format —
Part 1:
PRC 10001
1 Scope

This International Standard describes PRC 10001 of a product representation compact (PRC) file format

for three dimensional (3D) content data. This format is designed to be included in PDF (ISO 32000) and

other similar document formats for the purpose of 3D visualization and exchange. It can be used for

creating, viewing, and distributing 3D data in document exchange workflows. It is optimized to store,

load, and display various kinds of 3D data, especially that coming from computer aided design (CAD)

systems.
This International Standard does not apply to:
 Method of electronic distribution
 Converting CAD system generated datasets to the PRC format

 Specific technical design, user interface, implementation, or operational details of rendering

 Required computer hardware and/or operating systems
2 Normative references

The following referenced documents are indispensable for the application of this document. For dated

references, only the edition cited applies. For undated references, the latest edition of the referenced

document (including any amendments) applies.
ISO 12651:1999, Electronic imaging — Vocabulary

ISO 24517‐1:2008, Document management — Engineering document format using PDF — Part 1: Use of

PDF 1.6 (PDF/E-1)
ISO 32000, Document management — Portable document format
IEEE 754, Floating-Point Arithmetic

The OpenGL Graphics System, A Specification, Version 4.1 (Core Profile), July 25, 2010

Available at http://www.opengl.org/registry/doc/glspec41.core.20100725.pdf
© ISO 2014 – All rights reserved 1
---------------------- Page: 7 ----------------------
ISO 14739-1:2014
3 Terms and definitions

For the purposes of this document, the terms and definitions given in ISO 32000‐1, ISO 24517‐1 and

ISO 12651 and the following apply.
3.1
PRC File Writer
software application which writes a particular PRC file
3.2
PRC File Reader
software application which reads a particular PRC file
3.3
byte
group of eight bits processed as a single unit of data
4 Document syntax conventions
4.1 Conventions

The following conventions are used within this document to describe data within a PRC File.

Terms highlighted in bold within this document signify field names in the description of entity types.

Entity types are denoted in italic.

A table with three columns is used to describe the data within a contiguous portion of the file.

The first column indicates the name of the field. Field names are not unique and can be considered to

have a scope limited to the data class.
The second column describes the type of the data. This might be
 A simple data type such as a Boolean, UnsignedInteger, or Double

 A simple class of data such as PRC_TYPE_TOPO_Body or PtrTopology where the name of the

class is used to define the data stored for that class

 An Array[] which indicates an array of data of the specified class. An array

has elements. Elements of an array are referenced beginning at 0.

The third column indicates if the field is required or optional. If the field is optional a condition is

described when the field is present. The field may also be described.
4.2 Example Structure
2 © ISO 2014 – All rights reserved
---------------------- Page: 8 ----------------------
ISO 14739-1:2014
Table 1 — PRC file structure example
Name Type Value
flag1 Boolean (Required) describe flag1
data_field1 (Optional; if flag1 is TRUE) describe data_field1
data_field2 (Optional; if flag1 is FALSE) describe data_field2

topological_body_data PRC_TYPE_TOPO_Body (Required) describe topological_body_data

data_type or Integer (Required) describe data_type
data_of_type3 (Optional; if data_type is 1) describe data_type3
data_of_type4 (Optional; if data_type is 2) describe data_type4
Size UnsignedInteger (Required) describe size

array_of_type5 Array[size] (Required) describe the array of

5 PRC file concepts
5.1 The PRC file

A PRC File is a sequential binary file, written in a way to make the file portable across machine

architectures and operating systems.

PRC is optimized to store various kinds of 3D data, especially those coming from computer‐aided design

(CAD) systems. Most of the main constructs of CAD systems are supported within the PRC File Format:

— Assemblies and parts
— Trees of 3D entities (coordinate systems, wireframes, surfaces, and solids)
— Exact geometry representation for curves, surfaces
— Tessellated (triangulated) representation
— Markup data

PRC is meant to be multipurpose. There are two ways to store exact geometry and tessellation

depending on the usage of the file and on the original information:

— Regular compression is used to directly represent CAD data without loss or transformation from

the originating CAD system.

— High compression is used to store very small files, which have a specified physical tolerance from

the originating shape. The tolerance is typically 0,001 mm for exact geometric data and 0,01 mm for

tessellation data.

Each PRC File corresponds to a single model file (see 8.3.3) which defines the root product occurrences

within the FileStructures of the PRC File. A PRC File is a collection of FileStructures which are

independent from each other and can come from various authoring PRC File Writers. A FileStructure is

the representation of an independent physical file denoting an independent 3D part, assembly, etc.

within a PRC file. Hence, there is one header for each FileStructure with specific information and one

global header for the model file which contains information about the PRC File Writer that assembled

all these individual FileStructures into the final PRC File. Header sections gather primarily information

on file version, FileStructure ids and offsets for reading / skipping sections.
© ISO 2014 – All rights reserved 3
---------------------- Page: 9 ----------------------
ISO 14739-1:2014

Each FileStructure contains one or more product occurrences (see 8.3.10.2). The product occurrences

denote the assembly hierarchy of the FileStructure. A product occurrence can have child nodes, which

are also product occurrences. There is exactly one root product occurrence in each FileStructure. The

root product occurrence is the only entry point to the FileStructure. (refer to Figure 1 below)

In parallel to the FileStructures, the model file also contains an array of root product occurrences that

comprise the starting point for the entire assembly description. A product occurrence may refer to a

corresponding part definition (see 8.3.11) which in turn contains:
— Geometrical data stored in a tree of representation items (see 8.6.3)

— An optional tree of part markups, grouped into annotation entities and views (see 8.7.2)

A product occurrence can contain:
— A tree of product markups

— Filters used to redefine the loading and presentation of data defined in the child product

occurrences or in the part definition (see 8.3.12)

The representation items are defined through a combination of tessellation or topology and geometry

data, which may be highly compressed. The markups are defined by tessellation data.

F.S. Nut
P.O. Nut P.D. Nut
F.S. Bolt
P.O. Nut
P.O. Bolt
P.O. Washer
F.S. Washer
F.S. Tire
P.O. Washer P.D. Washer
P.O. Nuts
P.O. Bolts
P.O. Washers
P.O. Tire P.O. Nuts
Model File
P.O. Bolts
P.O. Washers
Key:
= Prototype
P.O. Rim
F.S. Rim
= Son Object
P.O.
= Product Occurrence
P.O. Rim P.D. Rim P.D. = Product De�inition
F.S. = File Structure
Figure 1 —Tessellation data

To optimize reading, a PRC File is arranged so that referenced entities are read before being referenced.

Therefore, the FileStructures are ordered using parts, then subassemblies, and finally, the top (root)

assembly.

A PRC File is composed of one header section, which starts with uncompressed data, one or more

FileStructures, and one model file (PRC_TYPE_ASM_ModelFile) data section at the end, each individually

compressed. Refer to 8.3.10 for more information about the PRC file structure.
4 © ISO 2014 – All rights reserved
---------------------- Page: 10 ----------------------
ISO 14739-1:2014
Table 2 — PRC file structure
Section Sub Sections Compression Description
FileHeader Uncompressed Defines originating author of the
file; specifies start, and possibly
end, location of other sections in file

File Structure 1 FileStructureHeader Uncompressed Identifiers of other File Structures

referenced from within this
FileStructure;
Schema Compressed Description of changes between
minimal version and authoring
version of the FileStructure within
the PRC File Format Specification
Globals Compressed Referenced FileStructures and
colors, line styles, and coordinate
systems for each tree entity of the
FileStructure
Tree Compressed a description of the tree of items
(product occurrences, part
definitions, representation items,
and markup)
Tesselation Compressed All tessellated (triangulated) data in
the leaf entities of the tree
(representation items and
markups).
Geometry Compressed All exact geometry and topology
data of the leaf entities of the
tree(representation items)
Extra Geometry Compressed Geometry summary data, which
allow for partial loading of the
FileStructure without loading the
entire geometry
Additional FileStructure sections in
the PRC File
File Structure N Compressed Last FileStructure section in the
PRC File
Schema ModelFile Schema Compressed Description of changes between
minimal version and authoring
version of the ModelFile Section of
the PRC File Format Specification
Model File Data PRC_TYPE_ASM_ModelFile Compressed
5.2 Versioning

A file format version number is used to define the particular version of this international standard that

a PRC File Reader or PRC File Writer conforms to.

Version numbers consist of the year modulo 2000 followed by three digits representing the day of the

year. This international standard shall have the version 10001, corresponding to the 1st day of the year

2010.
© ISO 2014 – All rights reserved 5
---------------------- Page: 11 ----------------------
ISO 14739-1:2014

The current_version is the maximum version number that a PRC File Reader or PRC File Writer

conforms to.

Each FileStructure and the FileHeader are independent and can be copied around or written by PRC File

Writers of different versions. Each of them have their own authoring_version and

minimal_version_for_read version numbers. The authoring_version represents the version of the

international standard that the PRC File Writer conformed to at the time the FileHeader or the

FileStructure was written. The minimal_version_for_read represents the version of the international

standard that a PRC File Reader shall conform to to successfully read the FileHeader or the

FileStructure. If the current_version of the PRC File Reader is less than the

minimal_version_for_read, then the PRC File Reader shall not continue to process the file and report

an error.

If minimal_version_for_read is lower than authoring_version, the PRC File Writer shall write a

schema description in the PRC File providing the differences between the two versions of this

international standard. This description will enable a PRC File Reader to read and skip new information,

since these new data cannot be interpreted as they are from a newer version.

A PRC File schema contains a description of new fields or new entity types added between the

minimal_version_for_read and the authoring_version. See 6.3 for a description of a schema.

A PRC File Reader uses the information in the schema to read and skip new information:

— After reading each entity type, the schema information is queried and new data are skipped

accordingly, following the tokens.

— Each time an entity type is read, if the type is unknown, the schema is searched and its data is

skipped.
5.3 Unique identifiers
5.3.1 General

A PRC File reader/writer shall generate (writer) or interprete (reader) unique identifiers for

information within the PRC File. Each FileStructure within a PRC File has an identifier (UUID) which

uniquely identifies this particular FileStructure among all of the FileStructures within the PRC File.

Within each FileStructure, unique identifiers for referenceable entities are generated using the order

that they are first encountered in the FileStructure. Thus, the first referenceable entity in the

FileStructure has the number 1 as its identifier. Subsequent identifiers of referenceable entities are

incremented by 1.
5.3.2 File structure

A PRC FileStructure is identified by an identifier (see UncompressedUniqueId) which is unique among all

of the FileStructures within a single PRC File.

The method to calculate a unique identifier for a given FileStructure is not part of this international

standard.

This approach offers an advantage, for example, such as when there is some intent to repurpose

FileStructures inside other PRC files without entirely rewriting them.
5.3.3 Base entities

The PRC format provides support for referencing entities. See Entity Types in 8.2.1 for a list of entity

types whose entities are referenceable.

The purpose of using references on entities is to enable an interpreter to handle the same entity several

times without any duplication of data, either by any other program, or by another structure in the same

or another PRC file.
6 © ISO 2014 – All righ
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.