############
Fundamentals
############

This guide provides insight into the fundamental components that drive HOOPS Exchange's programming interface, delves into specific functional components of HOOPS Exchange for streamlined development, and examines data structures representing entities, properties, and configurations within the CAD environment.

HOOPS Exchange is a robust SDK tailored for crafting 3D engineering applications.
It is essential for accessing and repurposing 3D data from **CAD** and **BIM** design software from over **30 native and standard formats**.

As detailed in the :doc:`Technical Overview </start/technical-overview>`, HOOPS Exchange facilitates the **Import**, **Adaptation**, and **Export** of 3D data, **seamlessly integrating into various applications in different markets**.

**PRC is the ISO-standard** underlying format behind 3D PDF.
PRC is the native model format for HOOPS Exchange.
Implementing HOOPS Exchange simply involves mapping PRC over to your application's format.
If you want to learn more deeply about PRC itself, please refer to the :download:`PRC Format Specification document</_assets/SC2N570-PRC-WD.pdf>`.

Most developers use HOOPS Exchange to import data.
However, it is also able to export to a number of different supported formats.
These exports can be used to speed the integration of HOOPS Exchange into your application.

HOOPS Exchange collaborates seamlessly with third-party libraries such as geometric kernels (Parasolid, ACIS, OpenCascade) or Mesh Repairs API (Polygonica) and address a variety of needs and workflows.
For example, a Parasolid licensee might use HOOPS Exchange to convert a CATIA V5 file to Parasolid and then simply bring that Parasolid file into their application.

HOOPS Exchange integrates with powerful graphics engines such as HOOPS Visualize (Desktop & Mobile), HOOPS Communicator (Web), OpenGL, DirectX, Vulkan, Unity, Unreal and more.

HOOPS Exchange also offers an advanced set of functions to address different needs:

Import Data
-----------

HOOPS Exchange enables the loading of 3D data from more than 30 native and standard formats in the MCAD and AEC/BIM space.

* Geometry
* Tessellation
* Tree structure
* Attributes
* Product and Manufacturing Information (PMI)
* Properties
* Materials
* Colors
* Transformations
* Bounding box
* Units
* Features
* Publications
* Rigid components
* Shattered loading
* High performances
* Extreme accuracy

Adapt Data
----------

Perform various adaptations and conversions of CAD data with HOOPS Exchange to suit your use case.

* Convert B-rep to nurbs
* Adapt and replace B-rep
* Approximate curves and surfaces as analytics
* Sew B-rep
* Compute section B-rep

Examine Data
------------

Use HOOPS Exchange to closely inspect, analyze, and retrieve the CAD data suitable for your needs.

* Get curve length of B-rep
* Calculate physical properties (volume, surface, center of gravity...) 
* Compare models
* Static clash/collision
* Project point clouds
* Feature trees
* Publications
* Building Information Modeling (BIM)

Connect Data
------------

Pair HOOPS Exchange with third-party libraries such as geometrical kernels or mesh repairs API to boost your workflow.

* Parasolid
* ACIS
* OpenCascade
* Polygonica
* ODA

Create Data
-----------

Use HOOPS Exchange to create your own data for you your application needs.

* Geometry
* Tessellation
* Tree structure
* Attributes
* Product and Manufacturing Information (PMI)
* Properties
* Materials
* Colors
* Transformations
* Bounding box
* Units

Export Data
-----------

Transfer data from one software environment to another for data collaboration.

* Geometry
* Tessellation
* Tree structure
* Attributes
* Product and Manufacturing Information (PMI)
* Properties
* Materials
* Colors
* Transformations
* Bounding box
* Units
* Compress data
* High performances
* Extreme accuracy
