Rhino <> Revit for landscape architecture

Having done a bit more testing, it’d be awesome if all hosted families kept their link to the toposurface at import. Currently this relationship gets broken.

#1 Initial setup: topo comes from Rhino as a mesh, trees are native Revit families hosted on the toposurface:

#2 Updated mesh from Rhino imported to Revit with the ‘update’ option. Note that the toposurface material gets reset to ‘By category’ and the trees are now hosted to Level 1.
image
image

It would be awesome if the ‘Update’ option kept all previous hosted elements.

EDIT:

Hey @AlanRynne, please correct me if I’m wrong, but it seems that currently Revit topography is created by only providing points and letting Revit take care of the triangulation:

This approach can lead to the resulting geometry being different than the input. Revit will simply run a delaunay triangulation over the points and make a best guess about how to connect individual points. In civil engineering/landscape architecture we spend a lot of time tweaking these connections to better match the design intent.

Here is a good explanation using Civil 3d as an example but the concept is universal:

The Revit API has an override to the Create method, which takes in a List of Faces. This should make sure that the resulting topo always matches the input:
https://www.revitapidocs.com/2022/5fa47ddd-7dbd-ae8a-69bc-9e260ec56d99.htm

Would it be possible to switch to this method?
Thanks!

1 Like

Speckle deletes the old topography and creates a new one. That’s why they are not hosted anymore. But there should be a workaround to keep them hosted tho. Same thing is true for any host based element in Revit.

I know that editing existing boundaries (for floors, walls etc.) became available with Revit 2022 and I am not really sure if same is true for Topography editing (since editing topography is not same as editing floor boundary). But I believe we can implement this for 2022 and onwards. @teocomi

1 Like

Would be great @gokermu ! Alternatively, before deleting the old topography, maybe we could keep track of the material and what is hosted on it, and reestablish the relationships with the newly pasted one?

What about the other issue related to triangulation? I’d imagine this would require some changes to the Speckle Topography class, but it would be of huge value to us. The way topo is imported into Revit now, unfortunately doesn’t guarantee consistency between packages.

Thanks!

Definitely. As first step we can play with keeping hosted elements. At some point, we will implement preserving what users changed in the model (maybe you changed type or edited the material etc. But it takes a bit of time :slight_smile: )

Maybe @teocomi can help you with your triangulation issue? I am not an expert on that :blush:

1 Like

Thanks for the detailed feedback @mariuszhermansdorfer ! Our Mesh class already has a faces property so this shouldn’t be too difficult of a change in our Revit conversions - I’ll go ahead and swap out the method now :slight_smile:

1 Like

Awesome @clrkng! Here is a good example of geometry that doesn’t properly translate from Rhino to Revit with the current approach:

Rhino:

Revit:

Note how Revit creates its own edges trying to satisfy the delaunay constraints. I’ll keep this file to test it again once you’ve swapped to the method using mesh faces.

Thanks!

1 Like

Released a Revit 2.6.1-beta if you’d like to confirm the meshing update now, but keep in mind that constructor is only available in Revit 2022 & 2023. The beta release may contain other unstable changes, everything will be properly integrated in our upcoming 2.7.0 release!

I checked and it seems to be possible to edit a topography element, even in earlier versions.
I’ll add an issue and we’ll get to it soon :slight_smile:

https://www.revitapidocs.com/2020.1/7fc4cad4-e8a7-5956-d961-ca42f33d9236.htm

2 Likes

Thanks for the heads up @teocomi!
I’m on Revit 2021 and can’t see the beta update, but it seems that this method is available starting from 2020:
image

https://www.revitapidocs.com/2019/5fa47ddd-7dbd-ae8a-69bc-9e260ec56d99.htm

Ah yes you’re correct - just updated to add the new method to all our supported versions (except 2019)!

Thanks @clrkng! Is there an updated beta version, or should I just use the one from yesterday?
image

A 2.6.1 release should be out shortly - you’ll be able to test it on that one for Revit 2021

2 Likes

Awesome! I can confirm that with the newest 2.6.1 release topo correctly preserves triangulation from Rhino:
Here is the result in Revit

Thanks a lot for a blazing fast turnaround @clrkng!

4 Likes

Looked into updating the topography and it turns out it’s not possible via the API:

The topography surface created by facet cannot modify its triangle points and facets.

I was also thinking that if one just deleted the old points and subsequently added the new ones, all the facet connections would be lost. Probably the best way of updating topography is by creating a new one and restoring all properties of the previous one.

2 Likes

I think you’re right @mariuszhermansdorfer, this sounds like a more solid approach as there’s no way for us to know “which points changed” and “how their connections changed with them” without having to do some heavy mesh comparisons.

1 Like

@mariuszhermansdorfer hi Mariusz, can yo usend me a copy of that Revit file where things didn’t work? I’m seeing the same problem in the other direction in Revit 2020 and want to do some tests - unless someone can tell me now that it won’t work.

We’re Revit geometry → Rhino for renderings.

@DuncanNZ, here is the 2021 version. I saved the geometry both as a generic family and topography for you to play with.


Project1.rvt (404 KB)

@AlanRynne,
I’ve just realized that once topography is imported into Revit, it can’t be edited. Could this be unlocked?

2 Likes

Hi @mariuszhermansdorfer,

If you want to preserve the triangles, you can’t edit the created topography. In case you want your Topography to be editable, then it probably won’t preserve the triangles in Rhino. That’s a choice you have to :slight_smile:

I guess we need to add another button for creating editable topography @clrkng.

Btw, you can easily do it through Grasshopper/Dynamo.
We have a Dynamo tutorial on this for Sketchup. You can easily implement it for Rhino.

If you wanna do it through Grasshopper, that’s pretty simple as well. Just connect the mesh and you’ll end up with an editable Topography in Revit.
image

image

2 Likes