# Components not updating

**URL:** <https://discourse.mcneel.com/t/components-not-updating/98384>\
**Category:** Grasshopper Developer\
**Created:** [March 19, 2020, 3:33pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384 "2020-03-19T15:33:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![rvdven](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rvdven/32/208355_2.png) [@rvdven](https://discourse.mcneel.com/u/rvdven)\
**Post date:** [March 19, 2020, 3:33pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384/1 "2020-03-19T15:33:49Z")

</div>

while developing(C#) a plugin I will often change the components input, output and or behaviour.  
It seems that Grasshopper is not always updating existing components ?  
see screenshot:  
 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/2/7/27fb4066b383a9b9c860d6ec06fda65c6578c137.png)

---

<div class="post-metadata">

**Author:** ![Dani\_Abalde](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dani_abalde/32/759411_2.png) [@Dani\_Abalde](https://discourse.mcneel.com/u/Dani_Abalde)\
**Post date:** [March 19, 2020, 4:09pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384/2 "2020-03-19T16:09:41Z")

</div>

> [@rvdven](#):
>
> It seems that Grasshopper is not always updating existing components ?

It never does, you have to replace the components manually in the document. The document has saved the component with the parameters with which it has been saved. In order for it to be automatically updated, it would have to include a kind of parameter validation every time you add a component to the canvas, which is unnecessary, because of what I explain below.

> [@rvdven](#):
>
> I will often change the components input, output

Actually, you shouldn’t do that, it’s not good practice. If you change the inputs or outputs, you should create a new component, with another ID, and mark the other one as obsolete.

---

<div class="post-metadata">

**Author:** ![rvdven](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rvdven/32/208355_2.png) [@rvdven](https://discourse.mcneel.com/u/rvdven)\
**Post date:** [March 19, 2020, 4:40pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384/3 "2020-03-19T16:40:16Z")

</div>

And if I only change the behaviour of the components SolveInstance method ?

---

<div class="post-metadata">

**Author:** ![Dani\_Abalde](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dani_abalde/32/759411_2.png) [@Dani\_Abalde](https://discourse.mcneel.com/u/Dani_Abalde)\
**Post date:** [March 19, 2020, 4:45pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384/4 "2020-03-19T16:45:10Z")

</div>

Not in that case. Think of it this way. The identity of an operation is not only defined by its usefulness, you can change the internal process and for practical purposes is the same operation, only performed differently, as a black box it doesn’t matter what it have inside. But if you change the parameters, it is another different implementation, a variation of the operation, because it no longer relates in the same way to the other components, it has another identity.

---

<div class="post-metadata">

**Author:** ![rvdven](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rvdven/32/208355_2.png) [@rvdven](https://discourse.mcneel.com/u/rvdven)\
**Post date:** [March 19, 2020, 6:53pm UTC](https://discourse.mcneel.com/t/components-not-updating/98384/5 "2020-03-19T18:53:58Z")

</div>

Ok that clears it up.  
Thanks
