Rhino3D Reader

The Rhino3D Reader provides full access to the Assembly, B-rep and View & PMI Data stored within a particular Rhino file. A file does not need to have a particular extension to be read correctly by HOOPS Exchange however the file extensions of Rhino3D files that you can expect to be loaded by HOOPS Exchange are:

  • .3DM

Our readers are updated to the latest released version within 90 days of the release of the authoring software. You can see the exact version supported in the current release here.

Assembly

Incremental load is not supported by our Rhino reader. Datum planes and construction geometry are also supported and accessed through the assembly tree.

B-Rep

The Rhino B-rep is pretty simple and only supports geometry in NURBS form. The only types of surface and curve geometry that can be found in a Rhino3D B-rep is:

  • B-spline curves

  • B-spline surfaces

Visualization

The visualization data for this format is generated by the HOOPS Exchange tessellation engine.

Views

This concept is not supported by Rhino3D.

PMI

This concept is not supported by Rhino3D.

Metadata

Starting from HOOPS Exchange 2022 SP1, our reader can read user-data from Rhino files, including:

  • Document user strings, located within the A3DAsmModelFile entity.

  • Layer user data, located within layer A3DAsmProductOccurrence entities, which are children of the root product occurrence.

  • Object user data, provided through their corresponding A3DAsmProductOccurrence entities.

  • Geometry user data, available in their corresponding A3DAsmPartDefinition entities.

[Rhino user data are provided through Generic Attributes](generic_attributes.html). This option is available when reading attributes is enabled from general read parameters:

A3DRWParamsLoadData.m_sGeneral.m_bReadAttributes = A3D_TRUE;

Upon reading generic attributes containing Rhino data, A3DMiscAttributeData::m_pcTitle can be any of:

  • ON_UserData

  • ON_UnknownUserData

  • ON_ObsoleteUserData

  • ON_RdkMaterialInstanceIdObsoleteUserData

  • ON_UserStringList

The data themselves are part of the collection of A3DMiscSingleAttribute objects available through A3DMiscAttributeData::m_asSingleAttributesData. Single attribute names are string where each correspond to a specific constant for convenience:

Constant

Value

kA3DRhinoAttributeName3DMVersion

“3DM version”

kA3DRhinoAttributeNameApplicationUUID

“application UUID”

kA3DRhinoAttributeNameArchiveClassUUID

“archive class UUID”

kA3DRhinoAttributeNameBufferData

“buffer data”

kA3DRhinoAttributeNameModelObjectUUID

“model object UUID”

kA3DRhinoAttributeNameOpenNURBSVersion

“OpenNURBS version number”

kA3DRhinoAttributeNameRDKMaterialInstanceUUID

“RDK material instance UUID”

kA3DRhinoAttributeNameUnknownClassUUID

“unknown class UUID”

kA3DRhinoAttributeNameUserDataCopyCount

“user data copy count”

kA3DRhinoAttributeNameUserDataUUID

“user data UUID”

kA3DRhinoAttributeNameUserDataXForm

“user data xform”

kA3DRhinoAttributeNameDocumentUserStrings

“document user strings”