# FISH Function for Getting/Setting Joint Plane Contact Extra in 3DEC

**URL:** <https://forum.itascainternational.com/t/fish-function-for-getting-setting-joint-plane-contact-extra-in-3dec/2108>\
**Category:** Uncategorized\
**Created:** [May 30, 2025, 3:35am UTC](https://forum.itascainternational.com/t/fish-function-for-getting-setting-joint-plane-contact-extra-in-3dec/2108 "2025-05-30T03:35:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mahdi.S](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mahdi.S](https://forum.itascainternational.com/u/Mahdi.S)\
**Post date:** [May 30, 2025, 3:35am UTC](https://forum.itascainternational.com/t/fish-function-for-getting-setting-joint-plane-contact-extra-in-3dec/2108/1 "2025-05-30T03:35:51Z")

</div>

Hi everyone,

Does anyone know the appropriate FISH function to **get/set the “extra” values for Joint Plane contacts** in 3DEC?

This data can be visualized in the plot as **“Joint Plane Contact Extra”** , but I can’t find a corresponding FISH function for accessing it.

I’m aware of the following functions:

- `block.contact.extra`
- `block.subcontact.extra`
- `block.face.extra`
- `block.gp.extra`
- `block.zone.extra`

However, none of these seem to correspond to the **joint plane contact extras**.

Any guidance would be appreciated!

 ![Screenshot 2025-05-30 132447](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/d/db9bd086eaed81e92b37440a884ff2d9dec6e44d.png)

 ![Screenshot 2025-05-30 133443](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/5/53efde54645d8d587fdc31b0b1785144d1dbfcfd.png)

---

<div class="post-metadata">

**Author:** ![Theophile](https://yyz1.discourse-cdn.com/flex031/user_avatar/forum.itascainternational.com/theophile/32/299_2.png) [@Theophile](https://forum.itascainternational.com/u/Theophile)\
**Post date:** [June 2, 2025, 8:04am UTC](https://forum.itascainternational.com/t/fish-function-for-getting-setting-joint-plane-contact-extra-in-3dec/2108/2 "2025-06-02T08:04:57Z")

</div>

Hi!

`block.contact.extra` and `block.subcontact.extra` are indeed what you are looking for.

Running the small script below:

```auto
model new

block create brick test
block cut joint-set
block zone gen edgelength 0.5

fish define set_extra
    loop foreach local cpnt block.contact.list
        block.contact.extra(cpnt, 1) = math.mag(block.contact.pos(cpnt))
        loop foreach local cxpnt block.contact.subcontactlist(cpnt)
            block.subcontact.extra(cxpnt, 1) = math.mag(block.subcontact.pos(cxpnt))
        end_loop
    end_loop
end

[set_extra]

```

Gives you the following contours for contact and subcontact extras, respectively.

 ![image](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/b/b970cec6bb95ec4705f16fe5d345c249aa580327.png)

 ![image](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/2/2150bafa72712d73dad068f6978e3be438fa6a84.png)

Cheers!

Theophile
