# HOOPS Exchange Plugin

## Overview

HOOPS Exchange is the leading CAD import library. It can import over 30 CAD file formats into your application with the HOOPS Exchange SDK for CAD data translation including CATIA®, SOLIDWORKS®, Inventor™, Revit™, Creo®, NX™, Solid Edge®.

The HOOPS Exchange plugin utilizes the full HOOPS Exchange SDK and provides tessellated model data from the supported CAD files. See the list of supported formats at: https://docs.techsoft3d.com/exchange/latest/start/supported-formats.html

The plugin will provide

- Tessellated parts
- Edges
- Part colors
- Part transparency
- Part names

To use the HOOPS Exchange data provider plugin, you need your own version of the HOOPS Exchange libraries and a HOOPS license key with Exchange support. The license key and HOOPS Exchange library path must be set before opening a CAD file. For both EnvisionWeb and EnvisionDesktop, you can specify the CEW_TECH_SOFT_LICENSE_CODE and HOOPS_LIBRARY_PATH environment variables for this purpose.

Alternatively, for EnvisionDesktop, use the `cee::imp::cae::ReaderSettings::addDataProviderSettings()` to specify these options before opening a file.

Note

The HOOPS Exchange plugin is built using HOOPS Exchange 2023 SP1. You must use a binary compatible version!

HOOPS Exchange Data Provider Plugin has been developed using Data Provider Framework.

## Use in HOOPS Envision for Desktop

Load the HOOPS Exchange data provider plugin using `loadDataProviderPlugin()` or load multiple plugins at once using `loadDataProviderPluginsFromWildcard()`.

Use the `ReaderSettings::addDataProviderSettings()` to specify the necessary options before opening a file.

The following options are supported by the HOOPS Exchange Data Provider:

Name | Type | Description
HOOPS_LICENSE | string | HOOPS Exchange license key string
HOOPS_LIBRARY_PATH | string | Path to folder containing HOOPS Exchange libraries (A3DLIBS.[dll|so]). If left empty, the data provider plugin will look for the HOOPS Exchange libraries in the executable folder and in the PATH.

Example:

    for (size_t i = 0; i < cee::imp::cae::DataSourceCae::readerSettings().dataProviderSettingsCount(); ++i)
    {
        cee::imp::cae::ReaderSettingsDataProvider& settings = cee::imp::cae::DataSourceCae::readerSettings().dataProviderSettings(i);

        if (settings.providerIdString() == "ExchangeProvider")
        {
            settings.setStringValue("HOOPS_LIBRARY_PATH", "C:\\HOOPS_Exchange_Publish_2023_U1\\bin\\win64_v142");
            settings.setStringValue("HOOPS_LICENSE", "MyLicenseString");
        }
    }

## Use in Envision Demo Analyzer Desktop

To use your data provider with HOOPS Demo Analyzer Desktop. When installed, the data provider plugins are in the DataProviders folder below the Analyzer executable. You can change this location by defining the environment variable CEE_DATA_PROVIDERS_FOLDER to point to the folder where your cdp_ExchangePlugin is located. Envision Demo Analyzer will load the data providers from the specified folder.

Envision Demo Analyzer expects the HOOPS Exchange binaries to be in the PATH or in the same folder as the Analyzer executable. To specify another location, set the environment variable CEE_HOOPS_EXCHANGE_FOLDER and specify the folder path to the HOOPS Exchange libraries (A3DLIBS.[dll|so]).

## Use in HOOPS Envision for Web

Data providers can be used with the RemoteModel server (UgServer). To load your data provider, set the CEW_UG_DATA_PROVIDER_FOLDER environment variable to point to the folder with your data provider. The UgServer will load all data providers in the specified folder. The data provider needs to comply to the following naming scheme:

> cdp_ExchangePlugin.[dll|so|dylib]

Example:

> cdp_ExchangePlugin.dll (Windows), cdp_ExchangePlugin.so (Linux)

The server will list the registered HOOPS Exchange data provider plugin when a file is opened.

Lastly, use the CEW_TECH_SOFT_LICENSE_CODE and HOOPS_LIBRARY_PATH environment variables for your UgServer to specify the license string and the path to a folder containing HOOPS Exchange libraries. An alternative to the CEW_TECH_SOFT_LICENSE_CODE variable is to specify a CEW_TECH_SOFT_LICENSE_FILE environment variable which points to a file containing the license string.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Envision for Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Envision for Desktop?
What are the latest release notes for HOOPS Envision for Desktop?
How do I start evaluating HOOPS Envision for Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...