Problem with Creating Floor with Polycurves

Hello Everyone. I am new to dynamo and I have problem in creating floor from polycurves. So I have the geometry imported from rhino using rhynamo and I created the floor outlines by trimming planes with the building. However I have trouble when I was about to create the floor as the following warning appears

Warning: Floor.ByOutlineTypeAndLevel operation failed.
The multiplicities of other interior knots must be at most degree - 2.
Parameter name: knots

I tried to follow the solution from this topic. The solution works however the floor outline are just straight lines connecting each points and not following the curved building profile as it can be seen here


I tried to increase the sequence however the result is not much different. I am unable to upload the files because i am a new member. I hope any of you can guide me to solve the problem. Thank you in advance for your attention.

I replied in the other thread and did not see you already incremented the codeblock sequence. Could you show us the outputs of the nodes please? Just click ok the bottom right corner of the nodes and pin them

Hi greg, I hope this is what do you want to see.

You are starting with 288 nurbscurve but end up with only 288points. Try setting the level of the curve input in the curve.pointatparameter node to L2 (click on the Little Arrow next to curve).
Before doing however try reducing that#400 otherwkse you Will have 400*288points i think,slowing down your machine

You need to set the lacing on cross product on the Curve.PointAtParameter node

http://primer.dynamobim.org/en/06_Designing-with-Lists/6-1_whats-a-list.html

Thank you so much, now it seems that I am closer to the solution. what I need to do is to remove these unnecessary lines. do you have any suggestion?

You need to set the lacing on longest on the node Polycuves.ByPoints (and on the nodes Wall.ByCurves and Floor.ByOutline) like in the graph provided.

I changed the lacing on polycurves.bypoints into longest however it does not work. Anyway now I can upload the dynamo file and the rhino file. Maybe you might want to check and correct my mistakes Transfer.dyn (115.9 KB) Sucker 2.3dm (1.1 MB). (sorry about the file name I was frustrated).

In addition to this method I also tried to import just the geometry into a conceptual massing and I encounter another problem. I’ve made another thread if you’re interested.

Hello,

It has been a year since the first time I posted this question and I have just recently found the solution. I thought of sharing the solution here in case someone came accross similar situation and curious on how to solve the problem. To begin with, I will start with addressing the issue.

I was first start all the conceptual modelling in Rhino and then transfer the whole model to dynamo with Rhynamo plugin and then I was going to start the process of creating the floor and envelope. However I got stuck when it comes to deconstruct the mass that I transferred from Grasshopper. As I have previously written at the start of the thread, the trouble that I came accross are:

  1. when I try to join all the nurbscurve to create the floor it shows Warning: Floor.ByOutlineTypeAndLevel operation failed.
    The multiplicities of other interior knots must be at most degree - 2.
    Parameter name: knots

  2. When I used curve.pointatparameter and create the polycurve using polycurve.bypoints, It create uneccesary lines within the profile.

Thus, I started the modelling from scratch in Dynamo, followed the exact process and encountered the same problem when I try to create polycurves from nurbscurve that I got from intersecting the mass from sets of plane. at this point, I figured out that:

1. The geometry is not smooth enough due to the profile of the mass is not continuous and so many breaks between curve in it.

2. It takes more than polycurve.bypoints to recreate the floor profiles, I need to extract particular point from the list and create.

In general, the solution to this problem is to recreate the footprint from scratch, ensure that all the curves connected continuously with virtually no breaks. I will show later in this post what I mean with continuous curve and broken curves. In case the you are already settled with the design and think it is really a production to start over with the curve, I also came across with a solution how to redraw the curve.

I will start with showing in detail the solution to problem #1: the curve. I am going to use my finalized design as the case study which is completely different building with what I had modelled in this topic. nevertheless, the solution I believe will be applicable.

Instead to start over in Grasshopper, I modelled everything from scratch in Dynamo. The motivation of modelling the profiles in Dynamo instead of manually sketching it in Revit then move it to dynamo is to create a parametric profile that is adjustable so that changes can be made in the beginning all throught the end of the phase.

The following image illustrates model of the tower modelled in Rhino that I try to achieve in Revit for more detailed production. The second image illustrate the profile that I used to generate the tower using loft.

Observe this profile that I modelled which is continuous and smooth for case A.

now compare with this curve which is modelled with the similar approach yet slightly not continuous and has few breaks.

The difference between these two cases is in case #1 the profile of the tower was obtained by creating the curve by connecting the main triangle with an arc from tangen points between the circle whereas in case #2 I created arc 3 points from translated midpoint of the triangle and points extracted from the circles. In later stage I found out how important it is to have the curve profile continuous and smooth in which it will save time and prevent us from writing more lengthy script.

Next, I generated tower mass and intersect them with planes in order to obtain the floor profiles for both cases in which both yields the same result of the intersection: nurbscurve. These nurbscurve of both cases are able to be joined using polycurve.byjoined curves with no warning.

However, when I tried to generate the floors using this profiles of joined curves, case #2 shows warning exactly the same with what I have posted in the beginning of thread whereas in case #1 I successfully generate floors in revit without any warning.

.

In conclusion, it is important to create a continuous and smooth profile in order to be able processed by Revit. I had discussion with a colleague in which he said that dynamo has a limitation in generating complex geometry compared to Rhino which were designed for it. I also found an explanation in other thread (Dynamo vs Grasshopper) which explained why I came accross this trouble of creating curves.

What if I do not really to fix the curve and decide to move forward with the broken curve that I have made? the solution to this is to recreate the profile curves of the floor using curve.pointatparameter. I tried this as well yet I used polycurve.bypoints to rejoin all the point and generate all the profile. Turns out I need a bit more lengthy steps to do that.

To start with, I divide the floor profiles into two due to difference of size and number of points required to recreate the curve using arc 3points.

After I recreated the curve from sets of joined arc.3points, I finally be able to create the floor in Revit.

My takeaway on the case #2 is the curve profile resulting from intersection between surface and planes needs to be retraced if “Warning: Floor.ByOutlineTypeAndLevel operation failed.
The multiplicities of other interior knots must be at most degree - 2.
Parameter name: knots” shows up.

I attached the script of case 2 to further examine the process Practice - Urban Mountain - CASE2.dyn (479.9 KB)

I hope this solution helps anyone facing the same issues. Feel free if any of you came accross better solution. I’d be happy to discuss as I am still learning how to utilize the full potential of this powerful tool. Thank you.

2 Likes

Hi @mbyudhistira
Cloud you please tell me where I can find the curves.deconstructpolycurve node ? :grinning:

I’ve found that node in Lunchbox :smile:

1 Like