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:
-
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
-
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.