Checks the currently open Rhino file for errors.

When the Audit command detects a database error, it prints a detailed description of the error.

Information displays when something is wrong with objects and their relationship to layers.

Rhinoceros Audit Audit for errors

Diagnostics > Audit

Rhinoceros Menu2 Audit for errors

Analyze > Diagnostics > Audit

Rhinoceros Gray Book Open Audit for errors Related topics…


Checks any Rhino model file for errors.


  • In the Open Rhinoceros File dialog box, select a file to audit.


  • Checks files and reports any problems.

  • If files are large, damaged, or will not open, the Audit3dmFile command might be able to diagnose the problem.


Rhinoceros Audit3dmFile Audit for errors

Diagnostics > Audit 3dm file

Rhinoceros Menu2 Audit for errors

Analyze > Diagnostics > Audit 3DM File

Rhinoceros Gray Book Open Audit for errors Related topics…


Recovers data from damaged Rhino files.

The Open
, Import
, and Insert
commands will not read all the data from a damaged file.

Files can be damaged if they are stored on flawed media (such as a hard disk with a bad sector) or information is garbled in transmission (such as a noisy ftp transfer or a bad USB port).

The Rescue3dmFile command can be used on good files to see how it works.


  1. Select a file.

  2. Click an option.



A detailed description of the file’s contents. Search for the word ERROR in this section to see where the file is broken. 


====== FILENAME: C:\RhinoFiles\BadFile.3dm
====== VERSION: 3

====== CHUNKS:
108272: 10000013 TCODE_OBJECT_TABLE: length = 103075 bytes

211347: FFFFFFFF TCODE_ENDOFTABLE: value = 0 (00000000)
211355: 10000017 TCODE_USER_TABLE: length = 55 bytes

214045: 00007FFF TCODE_ENDOFFILE: length = 4 bytes
current position = 214057 stored size = 214057
====== FINISHED:


Lists all of the openNURBS objects in the file that might be recoverable. If an object is not listed, there is no hope for recovery.


Healthy file:

To find damaged parts of the file, search for the word “ERROR” in the following list.

Object[35] 16722 bytes at offset 125176. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)

Object[36] 257 bytes at offset 142052. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve)

Object[37] 257 bytes at offset 142463. class id CF33BE2A-09B4-11d4-BFFB-0010830122F0 (ON_ArcCurve)

Object[38] 333 bytes at offset 142874. class id 5EAF1119-0B51-11d4-BFFE-0010830122F0 (TL_NurbsCurve)

Object[39] 569 bytes at offset 144079. class id 4ED7D4E6-E947-11d3-BFE5-0010830122F0 (ON_PolylineCurve)

Object[40] 15828 bytes at offset 145161. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)

Object[41] 16775 bytes at offset 161143. class id F06FC243-A32A-4608-9DD8-A7D2C4CE2A36 (TL_Brep)


Damaged file:

If the file is damaged, the word “ERROR” will appear something like

** ERROR near offset 78931 ** Rogue chunk in openNURBS class record.

Generally, there will be several “ERROR” lines because the reader tries to get past the error so it can analyze the remainder of the file.


Attempts to automatically recover all available objects in the file. Only the basic geometry is recovered. All attribute information, including layers, render materials, names, and so on is not recovered.

The Recover option acts like the Import
command, in that it adds the objects from the file being rescued and preserves objects in the current session.


Reads items one at a time.


Specifies the number of items to read.


If ReadAll fails, then print the file created by the List option and use the Read option to read in items one at a time. After each successful read save the result in a new 3dm file with a different name (so you do not destroy the file you are working on). When you run into an object that cannot be read, mark that object on your printed list and start over. The next time you get to that object use the Skip option to skip it and move on to the next.


Skips objects that cannot be read.


Specifies the number of items to skip.


Ends the command.

CRC Error

Cyclic redundancy check (CRC) error means the file has been damaged since it was written.

A CRC is a number calculated on a chunk of data by running all of its byte values through a formula. The formula is designed so that if a byte value changes, there is a high probability that the number generated by the CRC formula will change.

Rhino uses CRCs to validate data integrity in files. When a file is written, the CRC of each object’s data is calculated and stored in the file. When the file is read, the CRC is calculated again and compared with the CRC value saved in the file. If the two CRC values match, then it is almost certain that the information written to the file is exactly the same as the information read from the file. If the CRC values are different, then it is absolutely certain that the information written to the file is not the same as the information read. In short, if the CRC values are different, then at least one byte in the file has changed since it was saved.

Common causes of file damage are mechanical failure in the disk platter, mechanical failure in the head armature, head wear, external magnetic fields corrupting the orientating of the iron atoms on the hard disk, and garbled transmission (happens when files are copied to removable media like floppies, CDs, jumpdrives, ftp-ed over noisy lines, etc.).

Rhino is one of the few programs that includes CRC validation in its file and tells the user when something is not right.

If a user is constantly getting corrupt files, a bad disk or a malicious virus should be suspected. If the problem regularly happens on more than on computer a large magnetic field; perhaps from a large unshielded electric motor (elevator, industrial vacuum, air conditioner compressor, damaged industrial sized microwave) should be suspected.

So, what should be done? The fact the CRC error was reported means that the information read from the disk is not the same as the information that was saved. If the file still reads in, inspect the model and see if everything looks OK. If so, the damage was probably to some portion of the file that does not matter or the reader was able to automatically detect the problem and repair the damage during the reading process.

If the file will no longer read in, try using the Rescue3DMFile command to recover as much of the data as possible.

Rhinoceros Rescue3dmFile Audit for errors

Tools > Rescue 3dm file

Diagnostics > Rescue 3dm file

Utilities > Rescue 3dm file

Rhinoceros Menu2 Audit for errors

Tools > File Utilities > Rescue .3DM File

Rhinoceros Gray Book Open Audit for errors Related topics…


Audit for errors