# Rhino Inside Revit - Direct Shape Update Existing vs Create New Geometry after Modification

**URL:** <https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561>\
**Category:** Revit\
**Created:** [May 21, 2019, 1:58pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561 "2019-05-21T13:58:50Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![schmid.matt](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/schmid.matt/32/489513_2.png) [@schmid.matt](https://discourse.mcneel.com/u/schmid.matt)\
**Post date:** [May 21, 2019, 1:58pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/1 "2019-05-21T13:58:50Z")

</div>

I’m using the AddDirectShape.ByGeometry component in grasshopper to translate geometry from Rhino to Revit. When I modify the geometry in Rhino it creates new geometry in Revit, and leaves the old geometry in place. In the past I use plugins like Lyrebird, Hummingbird etc. which did a decent job at updating existing geometry rather than fully replacing, or creating new geometry.

Full replacing would be one step in the right direction, but modifying the geometry while retaining tags, dimensions, etc would be even better.

P.S.  
Rhino inside is amazing, the potential is incredible! Keep up the great work everyone!

---

<div class="post-metadata">

**Author:** ![Evan\_Troxel](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/evan_troxel/32/646792_2.png) [@Evan\_Troxel](https://discourse.mcneel.com/u/Evan_Troxel)\
**Post date:** [May 21, 2019, 4:32pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/2 "2019-05-21T16:32:34Z")

</div>

Which version of Revit are you doing this in?

---

<div class="post-metadata">

**Author:** ![schmid.matt](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/schmid.matt/32/489513_2.png) [@schmid.matt](https://discourse.mcneel.com/u/schmid.matt)\
**Post date:** [May 21, 2019, 5:12pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/3 "2019-05-21T17:12:05Z")

</div>

2019

---

<div class="post-metadata">

**Author:** ![Evan\_Troxel](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/evan_troxel/32/646792_2.png) [@Evan\_Troxel](https://discourse.mcneel.com/u/Evan_Troxel)\
**Post date:** [May 22, 2019, 3:57pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/4 "2019-05-22T15:57:32Z")

</div>

I saw that behavior in 2018 but it doesn’t seem to be happening in 2019. Sorry I don’t know more. I just know that it worked better in 2019.

---

<div class="post-metadata">

**Author:** ![kike](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/kike/32/608657_2.png) [@kike](https://discourse.mcneel.com/u/kike)\
**Post date:** [May 30, 2019, 5:37pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/5 "2019-05-30T17:37:44Z")

</div>

This is the behaviour I have here, but you know, things always work in the developer PC 🙃.  
Could you please share a gh and a 3dm file that shows the problem, please?

 ![DirectShape-Update-Existing](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/7/3/7337cf3c0b5e61387c56c530b6e16745210d4e2d.gif)

---

<div class="post-metadata">

**Author:** ![Evan\_Troxel](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/evan_troxel/32/646792_2.png) [@Evan\_Troxel](https://discourse.mcneel.com/u/Evan_Troxel)\
**Post date:** [June 3, 2019, 9:14pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/6 "2019-06-03T21:14:18Z")

</div>

It looks like if we close Revit, and then re-open, the connection of model elements is lost. So if you update the geometry in Rhino, it just adds geometry in Revit, it does not replace it.

---

<div class="post-metadata">

**Author:** ![kike](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/kike/32/608657_2.png) [@kike](https://discourse.mcneel.com/u/kike)\
**Post date:** [June 11, 2019, 3:06am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/7 "2019-06-11T03:06:31Z")

</div>

I see, this should be fixed.

---

<div class="post-metadata">

**Author:** ![y.schindel](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/y.schindel/32/155607_2.png) [@y.schindel](https://discourse.mcneel.com/u/y.schindel)\
**Post date:** [September 13, 2019, 10:17am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/8 "2019-09-13T10:17:15Z")

</div>

I think the same behavoir is true for walls and floors and presumably other elements, but I haven’t checked further.

I’d love to see them updating 👍

---

<div class="post-metadata">

**Author:** ![Czaja](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/czaja/32/472252_2.png) [@Czaja](https://discourse.mcneel.com/u/Czaja)\
**Post date:** [September 20, 2019, 2:21pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/9 "2019-09-20T14:21:12Z")

</div>

+1 on that  
Things get messy pretty quickly.

_sorry for a bit long video, reopening RIR takes some time_

[https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/0/7/07aa06e5063f11b6e3f5269a8a7c7e265711be3b.mp4](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/0/7/07aa06e5063f11b6e3f5269a8a7c7e265711be3b.mp4)

---

<div class="post-metadata">

**Author:** ![andrew.go](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/andrew.go/32/503213_2.png) [@andrew.go](https://discourse.mcneel.com/u/andrew.go)\
**Post date:** [November 6, 2019, 8:49pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/10 "2019-11-06T20:49:11Z")

</div>

Consistent connection between Grasshopper and Revit elements after reopening programs is one of the most important functions for me.

---

<div class="post-metadata">

**Author:** ![kai.aurelien.zhu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/kai.aurelien.zhu/32/686784_2.png) [@kai.aurelien.zhu](https://discourse.mcneel.com/u/kai.aurelien.zhu)\
**Post date:** [November 13, 2019, 5:28am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/11 "2019-11-13T05:28:32Z")

</div>

I agree, it would be extremely helpful if the rhino/grasshopper connection to Revit can be maintained even when Revit or RiR have been closed & reopened.

I believe this is stemming from the way the GUID’s are being assigned or read (haven’t had the time to dig deep into the source code). In the same session, all id’s are maintained hence Revit/RiR understands what to update vs model from scratch.

Not sure how this could be fixed or if there is a workaround as guids are automatically assigned and cannot be reassigned programmatically (to my knowledge).

can @kike shed some light on this?

---

<div class="post-metadata">

**Author:** ![kai.aurelien.zhu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/kai.aurelien.zhu/32/686784_2.png) [@kai.aurelien.zhu](https://discourse.mcneel.com/u/kai.aurelien.zhu)\
**Post date:** [November 13, 2019, 6:52am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/12 "2019-11-13T06:52:09Z")

</div>

I have done some additional research and Dynamo seems to successfully maintain guid’s using element bindings. Would it be possible for RiR to implement this or have an equivalent?

Dynamo forum post explaining element bindings in detail.

> **[Element Binding in Revit](https://forum.dynamobim.com/t/element-binding-in-revit/31612)**
>
> Element binding is the name given to the process which Dynamo manage to ‘track’ the items created in non-Dynamo files. In this case, I’m going to focus entirely on element binding as it refers to Dynamo for Revit, but the mechanism exists to allow...

---

<div class="post-metadata">

**Author:** ![wlsgmlk17](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/wlsgmlk17/32/187444_2.png) [@wlsgmlk17](https://discourse.mcneel.com/u/wlsgmlk17)\
**Post date:** [November 17, 2019, 11:43am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/14 "2019-11-17T11:43:18Z")

</div>

How can I solve this problem?

 ![Clipboard%20image%20-%202019%EB%85%84%2011%EC%9B%94%2017%EC%9D%BC%20PM%208%EC%8B%9C%2021%EB%B6%84](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/d/1/d13b608764ea639fb212609bcaf53c775c2ffd55.png)

---

<div class="post-metadata">

**Author:** ![scottd](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/scottd/32/494002_2.png) [@scottd](https://discourse.mcneel.com/u/scottd)\
**Post date:** [November 18, 2019, 6:18am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/15 "2019-11-18T06:18:46Z")

</div>

In Revit an object must be added to the database before it can be read. This means that sometimes the object cannot be accessed until a second iteration of grasshopper script. A couple strategies to deal with this is to:

1. Use rhino geometry to make the actual calculations and simply set the Revit elements at the end. This is my preferred method.
2. Set a timer on a component in grasshopper to fire off a second of third recalculation on the grasshopper definition to push thru all the Revit updates needed. The timer component can help.

---

<div class="post-metadata">

**Author:** ![wlsgmlk17](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/wlsgmlk17/32/187444_2.png) [@wlsgmlk17](https://discourse.mcneel.com/u/wlsgmlk17)\
**Post date:** [November 18, 2019, 12:41pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/16 "2019-11-18T12:41:42Z")

</div>

Thank you so much!! May you be blessed with all things good.

---

<div class="post-metadata">

**Author:** ![bguarino01](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/bguarino01/32/160306_2.png) [@bguarino01](https://discourse.mcneel.com/u/bguarino01)\
**Post date:** [July 27, 2020, 7:21pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/17 "2020-07-27T19:21:07Z")

</div>

When adding multiple Rhino Breps by direct shape as shown in Wlsgmlk17’s post; is there a way to then edit those objects in Revit individually? Because when you click on them in Revit they are one grouping. The Breps I have are columns in a building and I would like to adjust there location directly in Revit. Thanks.

---

<div class="post-metadata">

**Author:** ![Rickson](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/rickson/32/690545_2.png) [@Rickson](https://discourse.mcneel.com/u/Rickson)\
**Post date:** [July 27, 2020, 7:43pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/18 "2020-07-27T19:43:43Z")

</div>

Each Column would need to be it’s own direct shape, or better yet, a family.

---

<div class="post-metadata">

**Author:** ![scottd](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/scottd/32/494002_2.png) [@scottd](https://discourse.mcneel.com/u/scottd)\
**Post date:** [July 27, 2020, 10:28pm UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/19 "2020-07-27T22:28:42Z")

</div>

Does this address each column being its own Family?

So this guide shows how I might approach this problem.

[https://www.rhino3d.com/inside/revit/beta/discover/column-family-along-curve](https://www.rhino3d.com/inside/revit/beta/discover/column-family-along-curve)

Here the Column, footing and bracket happen to be placed in a family as Brep forms. It is a Column family. Then a series of instances are placed along a path. The result is a model that can be edited in the Revit Family editor. Limited editing by dragging the handles.

If one column is edited, all the columns update. And the graphic properties as section line and hatch can be edited in Revit for that specific Family/Type.

Even if you have one object that only appears once in the project it still might be worth creating a Family and inserting it as an instance. Then you can edit the form a little in the Revit Family editor if you want.

---

<div class="post-metadata">

**Author:** ![SashankPs](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/sashankps/32/689627_2.png) [@SashankPs](https://discourse.mcneel.com/u/SashankPs)\
**Post date:** [July 29, 2020, 11:40am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/20 "2020-07-29T11:40:34Z")

</div>

**Graft** the Geometry while inputting it from the _Brep_ component. This will let you select each geometry individually.

 ![Screenshot 2020-07-29 at 5.09.25 PM](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/c/0/c084273f030e1f8e8f6cdd57c13b128ff76cba64.png)

---

<div class="post-metadata">

**Author:** ![b.moldoveanu](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/b.moldoveanu/32/302585_2.png) [@b.moldoveanu](https://discourse.mcneel.com/u/b.moldoveanu)\
**Post date:** [May 5, 2021, 11:47am UTC](https://discourse.mcneel.com/t/rhino-inside-revit-direct-shape-update-existing-vs-create-new-geometry-after-modification/83561/21 "2021-05-05T11:47:18Z")

</div>

The video is invalid. Can you please repost?
