Rhino inside PointClouds

Hey Kike,


I have been trying out the Rhino inside for revit and it works great. However, the functions to import a point cloud from revit (even partially) would be really helpfull.

I’ve been implementing it myself but no luck so far.

Mvg,

Hi Maarten,

Could you share a model that contains a point cloud with me?
What kind of integration are you trying to achieve?

Un saludo,
Kike

I coded a first component and it works now. I will push the code to the main repository for you to check and improve. Unfortunately, Revit limits the number of points to 1000000 since they use a third party engine.

Currently im working on a second component that performs a per object segmentation. Do you take care of the icons and stuff? :slight_smile:

Right now I recommend you to use the C# Script components to prototype your code.
This way you don’t need to do any icon :wink:

PointCloud.GetPoints.gh (14.1 KB)

Hello,

I need to import Points of a PointCloud into Grasshopper and tried to use this script in Revit 2022. Actually my final goal is to import only the Points that lie within some BoundingBoxes

After opening the definition I need to change some File Paths:

It needed some searching in Explorer but finally I found these files and linked them.

Then I connected my PointCloud-Element as shown and it gives 4 error messages…

  1. Error (CS1061): ‘Rhino.Geometry.Plane’ enthält keine Definition für ‘Scale’, und es konnte keine Erweiterungsmethode ‘Scale’ gefunden werden, die ein erstes Argument vom Typ ‘Rhino.Geometry.Plane’ akzeptiert (Fehlt eine Using-Direktive oder ein Assemblyverweis?). (line 60)
  2. Error (CS0117): ‘RhinoInside.Revit.Revit’ enthält keine Definition für ‘ModelUnits’. (line 60)
  3. Error (CS0411): Die Typargumente der ‘System.Linq.Enumerable.ToList(System.Collections.Generic.IEnumerable)’-Methode können nicht per Rückschluss aus der Syntax abgeleitet werden. Geben Sie die Typargumente explizit an. (line 61)
  4. Error (CS0117): ‘RhinoInside.Revit.Revit’ enthält keine Definition für ‘ModelUnits’. (line 63)

Sorry I have a german Windows version…
PointCloud_Revit.gh (9.6 KB)

Can somebody take a look over that?
Thanks in advance!

Here an updated version.

Keep in mind that values on this definition are on mm.

PointCloud_Revit.ghx (137.9 KB)

Hello Kike,

sorry for some reason this reply didn’t show up before I sent You the message…

it’s amazing - it works perfectly!

Thank You so much!!

There is just one Warning but I believe this can be ignored:

  1. Warning (CS1701): Es wird angenommen, dass der Assemblyverweis ‘RhinoCommon, Version=7.9.21222.15000, Culture=neutral, PublicKeyToken=552281e97c755530’ mit ‘RhinoCommon, Version=7.17.22102.5001, Culture=neutral, PublicKeyToken=552281e97c755530’ übereinstimmt. Möglicherweise müssen Sie eine Laufzeitrichtlinie bereitstellen.

Best Regards

Hi Kike,

First of all this is amazing work and thank you for sharing. I’m working on a very large building that has around 20 separate point clouds per floor. Can I use your node on several point clouds? It seems that the result is a flattened list and even if I graft the distance and number of point parameters it still gives me one list which screws up the colors and order. I should mention that my end result is to isolate the floor and underfloor points so I can mesh them and bring back to revit as directshape floors because the structure is not flat and has sags all over the place (its a 1800s building). Thanks again

@kike Nevermind the previous post. There were just too many points and lost track of the data tree…

What I’m actually struggling with is how to extract the maximum total number of points inside the point cloud. It seems to cap after a certain amount regardless of how small the average distance parameter is set to. Anyway that I could edit the script?

Thank you!

you can try to downsample the cloud with volvo x.
works on some point clouds for me. others it give Id problems.

is there a new version of the PointCloud_Revit.ghx for Revit 2023?

Hi @borja,

Latest Daily build includes ‘Query Cloud Points’ component to replace the old scripted one.

As the ‘Query Elements’ component it has a ‘Limit’ input and a ‘Count’ output.
If you remove the ‘Points’ and ‘Colours’ outputs the component just counts how many points are there on that volume, so if you ‘Limit’ it to 1 is a performant way of determine if there is a clash between the point cloud and your volume.

Here a query on points inside a sphere.

PointCloud_Revit.ghx (217.2 KB)

‘Clipping Planes’ and ‘Planes’ will form a convex volume, so normals should point inside.

Thank you so much Kike!

I changed it a bit to accept directly Plane, Box and Convex Meshes as Filter.

If there is a need we can add other geometric filters like:

  • Intersection Point-Sphere-Ellipsoid.
  • Intersection Line-Capsule-Cylinder.
  • Levels Filter.
  • Visible In View Filter.
  • Maybe others…

Hi Kike,
Is there anyway to increase the Point Limit?
I was able to increase to a million(from 50,000), but as you guessed , we need more. We have a very detailed scan of a building and we are asked to drill holes only between the stones in the wall, that’s why we need more points.

thank you so much again!

Hi @borja ,
This is the limitation of Revit API, not Rhino.Inside.
If I remember correctly, Revit is using some open-source libraries to access point clouds, and those libraries have limited number of points within a single point cloud it can access. That one million seems to be the limit.

thanks for the quick response and the explanation

1 Like