Announcements

Announcement: We’re aware of an issue affecting starting a new topic from category pages and creating new blog posts. New topics can still be started directly from the relevant board. Learn more here.

NurbSpline Creation Error

NurbSpline Creation Error

Anonymous
Not applicable
1,080 Views
2 Replies
Message 1 of 3

NurbSpline Creation Error

Anonymous
Not applicable

I'm working on a Revit plugin that in part accepts curves from Rhino that can be used to create a beam in Revit.
My code works well, when controlpoints of curve are greater than or equal to four. But with three control points arises a problem.
How can I draw three control points curve in Revit API?

 

List<XYZ> ctrPoints = new List<XYZ>();

ctrPoints.Add(new XYZ(Utils.mmToFeet(72500.017337), Utils.mmToFeet(-5072.522765), Utils.mmToFeet(0)));
ctrPoints.Add(new XYZ(Utils.mmToFeet(105082.371745), Utils.mmToFeet(-748.798009), tils.mmToFeet(0)));
ctrPoints.Add(new XYZ(Utils.mmToFeet(117899.12727), Utils.mmToFeet(-15572.997171), Utils.mmToFeet(0)));

List<double> weights = new List<double>();
weights.Add(1);
weights.Add(1);
weights.Add(1);

List<double> knots = new List<double>();
knots.Add(0);
knots.Add(0);
knots.Add(0);
knots.Add(52464.568605);
knots.Add(52464.568605);
knots.Add(52464.568605);

NurbSpline detailNurbSpline = NurbSpline.Create(ctrPoints, weights, knots, 3, false, true);

 

0 Likes
1,081 Views
2 Replies
Replies (2)
Message 2 of 3

jeremytammik
Autodesk
Autodesk

Dear Anarchyfree,

 

Congratulations on your interesting project!

 

I am glad to hear that it is working well.

 

Would you like to share some of it here? I am sure there would be a lot of interest in that.

 

To answer your question:

 

The exception thrown when this code is run explains that there must be at least degree + 1 control points.  

 

Since the degree passed in is 3, this code violates that rule.   

 

Revit’s version of creating splines is NurbSpline.Create(<<control points>>, <<weights>>).  

 

It automatically sets the degree based on the number of points as described in this internal comment:

 

// Use degree 1 for two CPs, degree 2 for three CPs, and degree 3 for four or more CPs.

 

Best regards,

 

Jeremy

 

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

0 Likes
Message 3 of 3

Anonymous
Not applicable

Thank you for your answer!

I wanted to represent a curve of 3 Control points such arch. then an error message was generated. Please see the attached pictures.

0 Likes