# FAQ: How ProE/Creo family tables, flexible components and boolean operations are handled by HOOPS?

**URL:** <https://forum.techsoft3d.com/t/faq-how-proe-creo-family-tables-flexible-components-and-boolean-operations-are-handled-by-hoops/1554>\
**Category:** HOOPS Exchange\
**Tags:** knowledge-base, faq, import, export\
**Created:** [July 18, 2022, 4:00am UTC](https://forum.techsoft3d.com/t/faq-how-proe-creo-family-tables-flexible-components-and-boolean-operations-are-handled-by-hoops/1554 "2022-07-18T04:00:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![gabriel.peragine](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.techsoft3d.com/gabriel.peragine/32/1535_2.png) [@gabriel.peragine](https://forum.techsoft3d.com/u/gabriel.peragine)\
**Post date:** [July 18, 2022, 4:00am UTC](https://forum.techsoft3d.com/t/faq-how-proe-creo-family-tables-flexible-components-and-boolean-operations-are-handled-by-hoops/1554/1 "2022-07-18T04:00:00Z")

</div>

It is possible to specify several ProE/Creo specific options (in [A3DRWParamsCreoData](https://docs.techsoft3d.com/hoops/exchange/api/c/structures/A3DRWParamsCreoData.html)) while importing such CAD files with the HOOPS Exchange API, including the following ones:

**Table of Contents**

- Family tables (m\_eFamilyTables):
- Flexible components (m\_bFlexCompUseGenericIfNoTess) :
- Boolean operations (m\_bBoolOpUseGenericIfNoTess):
- Recommendations

# **Family tables** ([m\_eFamilyTables](https://docs.techsoft3d.com/hoops/exchange/api/c/structures/A3DRWParamsCreoData.html#c.A3DRWParamsCreoData.m_eFamilyTables)):

A family table represents a component with a variable representation

For example a Screw can be part of a family table: that means for the same component, Creo has a variety of representations where the screw length and/or diameter change.

A component from a family table always has a generic representation (i.e. the default model), but the designer will usually use an element with specific parameters.

This is what it looks like in Creo:

 ![image-20221011-143148](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/3c34acad9e95e854aee3ca2f2e68e6d14e2314c8.jpeg)

A family table for screws

 ![f05e75d1-9348-4545-8093-ca10ecaee03d](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/0dedc4b2b7ef05808feb570822596972409cb07b.png)

Generic representation 20mm

 ![image-20221011-143337](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/8c10afecf6dd2955f54f5605914176eccf2fa867.png)

10mm variation

 ![image-20221011-143526](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/30e7b00b5b4c1b5e7e717bc0c1ec41d0c36b74a0.png)

100mm variation

HOOPS Exchange supports of Family Tables depends on what data are available in the native Creo file.  
Depending on the model, the representation of the family table components can be:

- Stored as a tessellated body.
- Stored in a Creo accelerator files (.xpr, .xas), provided with the model files by the model designer. BRep may be available.
- Not available (no tessellation, no accelerator file). In this case the generic representation is used by HOOPS Exchange to represent the component.

A family table import option impacts the behavior of HOOPS Exchange.

- [**A3DCreoFamTabAcceleratorFileOnly**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabAcceleratorFileOnly): Only use accelerator files. If none are available then no tessellation nor generic parts will be loaded.
- [**A3DCreoFamTabOrUseTessellation**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabOrUseTessellation): Will try to use the accelerator files first when possible. otherwise will load the tessellation instead.
- [**A3DCreoFamTabOrUseWireAndGeneric**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabOrUseWireAndGeneric): If no accelerator files nor tessellation are available, will use generic/wire representation.

Further information regarding accelerator files and their generation from Creo software can be found on the [PTC Help Center](https://support.ptc.com/help/creo/creo_pma/r12/usascii/index.html#page/fundamentals/fundamentals/About_Instance_Accelerator_Files.html).

# Example

## Creo import options used:

[**A3DCreoFamTabAccelesratorFileOnly**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabAcceleratorFileOnly)

## Result:

 ![image-20221011-145657](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/36fbcbc8d6db87df02afdc2cb5576acd9d1faaf4.png)

If accelerator files are provided, the correct component is used

 ![image-20221011-145743](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/422f8be1ba1a0c6690b904c5e5763440b4b7e09a.png)

If no accelerator file is found, nothing is loaded

## Creo import options used:

[**A3DCreoFamTabOrUseTessellation**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabOrUseTessellation)

## Result:

 ![image-20221011-145657](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/36fbcbc8d6db87df02afdc2cb5576acd9d1faaf4.png)

If accelerator files are provided, the correct component is loaded

 ![image-20221011-145657](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/36fbcbc8d6db87df02afdc2cb5576acd9d1faaf4.png)

If no accelerator file is available, the tessellated representation is displayed (if available)

 ![image-20221011-145743](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/422f8be1ba1a0c6690b904c5e5763440b4b7e09a.png)

If no accelerator file is available and no tessellation is stored, nothing is loaded

## Creo import options used:

[**A3DCreoFamTabOrUseWireAndGeneric**](https://docs.techsoft3d.com/hoops/exchange/api/c/enums/A3DECreoFamilyTables.html#c.kA3DCreoFamTabOrUseWireAndGeneric)

 ![image-20221011-150539](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/0f10c8fee32c69ba9853d181952552a8443fd9f4.png)

If no accelerator file is provided and no tessellation is stored, HOOPS Exchange fall back to the generic representation (tessellated)

# **Flexible components** ([m\_bFlexCompUseGenericIfNoTess](https://docs.techsoft3d.com/hoops/exchange/api/c/structures/A3DRWParamsCreoData.html#c.A3DRWParamsCreoData.m_bFlexCompUseGenericIfNoTess)):

In Creo, a flexible is a part that can have several states, with a variety of dimensions, tolerances or materials. For example, a spring can be represented as a flexible component.

 ![image-20221011-132103](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/8f277c52cb3cd0221493ed64c6b792cd658a7fdb.png)

A flexible component in Creo

In HOOPS Exchange, flexible components are not fully supported. A flexible component can be loaded only in the state it was saved in Creo, and it depends on the data stored in the native file.

- If the tessellation of the flexible component is stored, it will be loaded by default
  - The tessellation is the representation of the flexible component in the state it was saved in Creo.

- If no tessellation is available the setting m\_bFlexCompUseGenericIfNoTess adapts HOOPS Exchange behavior:
  - If the value is set to `true` a generic representation is loaded.
  - If the value is set to `false` , no representation is loaded. The component won’t be displayed.

_Note: if the tessellation is stored in the file, m\_bFlexCompUseGenericIfNoTess won’t have any effect._

# Example

## Situation:

Model saved in Creo

## Result:

 ![image-20221011-132955](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/a29853f76bb9a2af07bf9c70a3276242951b7e2e.png)

## Situation

The tessellation is stored in the Creo file

## Result:

 ![image-20221011-133046](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/079273459dd4fe4c22bd681116931b08a16fb9e6.jpeg)

Tessellated body corresponding to Creo

## Situation

The tessellation is NOT stored in the Creo file

_m\_bFlexCompUseGenericIfNoTess_ is `true`

## Result:

 ![image-20221011-133046](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/079273459dd4fe4c22bd681116931b08a16fb9e6.jpeg)

Tessellated body corresponding to the generic state. (no compression on the spring)

## Situation

The tessellation is NOT stored in the Creo file

_m\_bFlexCompUseGenericIfNoTess_ is `false`

## Result:

 ![image-20221011-133225 (1)](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/c4b5724868f14bbf574296d1e77694cb79b1cfd6.png)

No body loaded

# **Boolean operations** ([m\_bBoolOpUseGenericIfNoTess](https://docs.techsoft3d.com/hoops/exchange/api/c/structures/A3DRWParamsCreoData.html#c.A3DRWParamsCreoData.m_bBoolOpUseGenericIfNoTess)):

In CAD software, boolean operations are a way to define geometrical elements by performing unions or ,intersections or difference of 2 or more sub-elements.

For example, here is the result of a boolean intersection between a cube and a sphere:

 ![Creo_BooleanOperation_Creo](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/115b25b85d6d6ff9672dbc97239c1a48017320ee.png)

Depending on the Creo version used, boolean operations may not be fully supported by HOOPS Exchange

- For older versions, only the tessellation generated by Creo will be loaded if available
- If no tessellation is available, the setting m\_bBoolOpUseGenericIfNoTess adapts HOOPS Exchange behavior:
  - If the value is set to `true` a generic representation is loaded.
  - If the value is set to `false` , no representation is loaded. The component won’t be displayed.

_Note: if the Creo version used is too recent, or if the tessellation is stored in the file then m\_bBoolOpUseGenericIfNoTess won’t have any effect._

# Example

## Situation
Model saved in Creo
## Result

 ![2022-10-12 15_26_47-BOOLEANOPERATION (Active) - Creo Parametric](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/ecb0e3826349462215a88f9867655f6027cd8b83.png)

## Situation

The tessellation is stored in the Creo file

## Result

 ![2022-10-12 15_27_16-BOOLEANOPERATION (Active) - Creo Parametric](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/8a8ac401ea07e35457161ce37b6424cf1a3b83e8.png)  
Tessellated body corresponding to Creo

## Situation

The tessellation is NOT stored in the Creo file

m\_bBoolOpUseGenericIfNoTess is `true`

## Result

 ![2022-10-12 15_28_12-HOOPS Demo Viewer 2022 SP2](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/7ad97e0b0a75b6e9837537261c6a16fee3509568.png)  
Tessellated body corresponding to the generic state. (the base cube without cropped corners)

## Situation

The tessellation is NOT stored in the Creo file

m\_bBoolOpUseGenericIfNoTess is `false`

## Result

 ![image-20221011-133225 (1)](https://us1.discourse-cdn.com/flex020/uploads/techsoft3d/original/1X/c4b5724868f14bbf574296d1e77694cb79b1cfd6.png)  
No body loaded

# Recommendations

- When a model has a defect in HOOPS Exchange, we recommend to resave the file in Creo, and if possible in a more recent version of Creo.
- We recommend trying to work as much as possible with models more recent than Creo 4 for the best results in HOOPS Exchange. If possible, resave the file in a recent version of Creo to upgrade the model.

---

<div class="post-metadata">

**Author:** ![rtadlock](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.techsoft3d.com/rtadlock/32/14_2.png) [@rtadlock](https://forum.techsoft3d.com/u/rtadlock)\
**Post date:** [May 31, 2024, 7:58pm UTC](https://forum.techsoft3d.com/t/faq-how-proe-creo-family-tables-flexible-components-and-boolean-operations-are-handled-by-hoops/1554/2 "2024-05-31T19:58:23Z")

</div>

Great post @gabriel.peragine ! @beau.trifiro and I just found this as we had a few questions about family tables in Creo and this was super helpful. Thanks for the detailed info. I also wanted to share a link to the Creo support site that has a fair bit of information about how family tables work in Creo which might also help better understand how and why we support them in a given way in HOOPS Exchange - [PTC Help Center](https://support.ptc.com/help/creo/creo_pma/r11.0/usascii/index.html#page/fundamentals/fundamentals/About_Family_Tables_1.html)
