> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.sayduck.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Mesh Replacement

**Mesh replacement** is a condition you can add to a **Variant** that changes a **Mesh** in the 3D scene to another while the Variant is selected. 

**Source**: Selected **Mesh** that will be removed/changed
**Replacement**: Source Mesh will be changed to the selected **Mesh** (leave empty to remove Source mesh)
**Add replacement**: Will add the replacement condition to the **Variant**.

### How to use?

Learn how to Mesh Replacement, check out this video.

${youtube}[](vB1Ppr8MHsc)

###### Replacement to remove a Mesh

Sometimes you will need a variant in another configuration to remove a mesh while active.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-19-at-14152_1adf5fj.png)

To remove the Armchair Mesh, simply add **Mesh replacement**: [armrest -> nothing] and the mesh will be removed.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-19-at-14210_prh6sp.png) 

###### Replace incorrect Mesh with correct one

After removing the armrest, we notice that our legs mesh is not correct. They are cut to fit the armrest.

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-19-at-14354_1valfry.png)

To fix this, we can add another **Mesh replacement**: [legs -> legs no armrest] 

![](https://storage.crisp.chat/users/helpdesk/website/cae6f284ce714800/screenshot-2022-08-19-at-14373_1t7dg27.png)

### Mesh replacement logic restrictions

**Variant product**

* Replacing A to B and B to C and C to A is not allowed, this causes a cycle reference.
* Replacing A to B and A to C is not allowed, the same mesh can’t be replaced twice.
* Replacing A to A is not allowed, a mesh can’t replace itself.
* Existing products with this issue will fail to publish. The platform does show a message when this occurs, you can therefore check it by loading each variant, one at the time - or multiple configurations at the time by selecting them.

**Configurator product:**

* The viewer calculates this rules on runtime and will determine the replacement mesh.
* Replacing A to B and B to C and C to A will render an error message.
* Replacing A to A will render an error message.
* Replacing A to B and A to C the behaviour is not allowed and the rendered mesh is not reliable, no message is displayed.
