Floor by Points

Hey all, I’ve been working on a definition that will create a structural floor based on point data from excel. I have xyz’s for each corner point of the floor. The problem I’m having is that the floors make up a large catwalk and they slope up and and down as they go around the path of the catwalk. So far I haven’t been able to find a way to get the floors to come in sloped, as the corner point xyz’s will all be different depending on where they fall along the catwalk (some points will be the same where the floor edges meet).

I’ve had some other Dynamo users in my company looking into it and it seems we can make it apply to one floor at a time. But with almost a mile of catwalk, being able to do all the floors at once is important. Has anyone ever tried this before? Is it possible to accomplish?

Hi Nick. The Revit API is not very flexible when it comes to floor creation. My suggestion to you is to project each floor’s points to a horizontal plane, connect them into closed PolyCurves, create the floors and then use the original points to apply the slope. You can do that with Clockwork’s “RoofOrFloor.SlabShapeByPoints” node.

Thanks for the reply, Dimitar. I am able to get the points project down and turned into polycurves. I feed those into a floor by polycurve outline node and I get my flat floors. From there I made a second definition to apply the slopes to the floors. If I select one floor and run, the slope is properly applied to the floor. If I select all of the floors nothing happens and the RoofOrFloor.SlabShapeByPoints node reports “null.”

floorpoints

1 Like

Morning Nick,

Creating the flat floors was the hard part. Because the “RoofOrFloor.SlabShapeByPoints” isn’t meant to for use with multiple floors by default, we’ll need to augment it slightly with a “List.Combine” node. Create two pairs of lists, one with the floors and one with the original elevated points and try the following:
2015-07-25_08-06-52

2015-07-25_08-08-57

Thanks so much, Dimitar! That got it working.

Hi There Dimitar,

I am most interested in this post some time ago.

I was wondering if you can help.

I have a slab I have to create in Revit for a as built from survey data (2000pts).

I have an excel file xyz, from what I have read you have managed to create this.

Do you happen to have the full sample file? or image that was uploaded? I am very new to Dynamo and have learnt a lot on a day or so.

I appreciate any help.

Regards

Allan

Hi Al,

I don’t believe I saved that graph, but what you see is pretty much all of it. The only missing part was the “All Elements of Category” that selects all the floors and a code block that extracts the end points and translates them up by a fixed distance.

There are a ton of examples on how to convert an excel file to points. Have a look on the forum.

If it’s just a single floor, you don’t need to use anything as complex as the “list.combine” node. Simply select the floor with “Select Model Element”, feed it into “RoofOrFloor.SlabShapeByPoints”, generate the points from excel and feed them into the “points” input of the node.

Dimitar,

I have tried what you are doing here and it is nearly working… however it doesn’t work on all the points only a couple of them would it be posible to have a look at the file it is up loaded below

Floor test123

 

Would be very grateful of any help.

 

Tom

having re read your last post to Al, it seems that it might be to do with the code block that does the translation of the points…

Nick,

I know this is old, but where can I find the “FileStream.ReadStream” and “#PointFromString2” nodes? I assume they are from custom packages but I can’t seem to locate them…any help would be fantastic, thanks!

Garrett

Garrett,

Sorry for the late reply. “FileStream.ReadStream” is a node that comes with (came with?) Dynamo. I use that for reading *.csv files since that’s what my engineers kick out of Rhino. I assume it would work with the regular Excel read node but I haven’t tried it. The point from string node is one produced in house but it’s fairly simple as it just pulls out and splits a string of point data into xyz’s (below). You would just need to adjust the nodes to suit how your Excel data is stored.