Geometric constraints natively in Rhino?!


I am searching through Internet and i cannot figure out why geometric constraints which are fundamentals for 3D Cad is not native part of Rhino?

I read comments on this from a McNeel developer back from 2016. He described it as something unneccessary and losing strategy to involve something in the program which other applications already have. Plus he mentioned that Rhino is used in design fields where this is not importnat. Why should 3D CAD be limited to some design field. It should get as flexible as possible. I find it kind of an excuse.

This is in my opinion absolutely not true. Once it has been developed it costs fraction of what it would cost it it had to be developed from scratch. I think it is a losing strategy not to involve such a fundamental tool in 3D Cad.

I would love to convince company management to migrate to Rhinoceros because its otherwise very nice software + with grasshopper it can be used for so many things.
But geometric constraints are ESSENTIAL IN ENGINEERING field and absolutely missing in Rhino. In our case its bridges or buildings.
I need to have construction planes which are parrallel and for example tangent to 3d curve etc.
There are billions reasons why to include such a universally demanded feature like geometric constraints.

OK i get it rhino is open for any plugins which would do this but there are NONE currently doing this job. It is a thing which exists in other programs just take/buy the code and implement it for good sake.

Thank you

1 Like

“Geometric constraints” as in “assembly constraints” typically found in in parametric solid modelers?
I would agree they are essential in parametric solid modeling, but of limited use in Industrial design surface modeling and product styling.

What problem does would this solve for you?

Thank you for the response.

It is not neccesserily parametric solid modelers.

It can be found in general cads like Autocad (which i am not fan of) or Microstation.
Revit from drawing capabilities perspective has it too but Rhino is not direct competitor but many architects and engineers use Rhino.

It would solve for examply bridge geometry which is a viaduct derived from any 3d curve but must by polygonized so that every bridge segment is in straight line not curve.

To construct such polygon i have to find a line which is some length and in some other complicated geometrical relationships to input 3d curve. This can not be solved without geometrical constraints.

I need to be able to construct for example a plane which is always perpendicular to horizontal plane at the same time parralel with a line and tangental to curve. If i move the curve this plane would behave according to its constraints. This is not possible with static approach step by step moddeling only with parametric approach.
Grasshopper is not solution to this because constraint solver is a thing on its own.

1 Like

Rhino is geometry modeller, it deals with geometry. Constraints are a way how to deal with geometry and its relationships in euclidian space in its purest form. From my point of view its a huge thing/benefit for relatively little effort to implement something already existing.

If i want to draw a line which is tangental to two circles. I draw line select constraint tangent and select objects to which it should be tangent. If I move ne circle line change its position according to constraint. Its something else than history record but history record is also part of the equation…

It’s fairly simple. Constraints imply parametrics - the objects have to have a “memory” of the objects they are related to and the constraint relationships - and as Rhino is not parametric, this doesn’t happen, even in 2D (in native Rhino in any case). I thought Kangaroo 2 had constraints though…

1 Like

yes supposedly in the past there used to be plugins such as rhinoworks or rhinoparametrics which could do this kind of stuff but are not available anymore. it is sad that as time passses funcionality is getting worse. parametric modelling with grashopper would be super powerful tool. for now its nearly impossible to create parametric constrainted cross section swept along two curves so that two points of the crossection are following those curves and crossection is behaving according to given constraints (for example walls of the box girder are always parallel to each other with given thickness … very useful in bridge design thogh

There is a plugin available before

But later acquired by Bricsys and then ceased the development. I just wonder why McNeel not implement something like that.


Because Rhino was made for the situations where parametrics get in the way. To paraphrase a guy who did work on power tools where the engineers ultimately needed everything done in Catia…“it’s not parametric but it doesn’t matter because you can re build the whole thing ten times in the time it takes to create a good feature tree.” Sometimes that’s not true, sometimes it is.

These 3rd-party attempts to turn Rhino into a Solidworks clone always fail because…why even bother? I doubt there are enough Rhino Mac users to even really justify its existence, let alone this task. Of course Grasshopper is all parameters all the time and all of Architectural education is now a Grasshopper workshop but that’s a different sort of thing…


How would you compare Rhino and Cobalt?

I really don’t get why people want Rhino to become a parametric CAD program by whining about it endlessly on the forum.
If one needs parametric feature modeling, why not go the easy way and - doh! - buy one of the many MCAD programs available?


I do this with Rhino and Grasshopper almost daily for bridge designs, there’s no rocket science in this.

1 Like

my 2c on this.
Geometric constraints means that the database has been built for relatioships between objects,evolution and history , developed in a deep way. If this is not done from the begin adding it means a deep rethinking of the kernel and all the tools developed in years of hard work. The question then becomes, will our customer base grow and get benefit of all this ?
I love Rhino for how it is, but I count for one.

Hello Rasmus Sainmaa

how do you do this? With a Grasshopper Plugin? It would be very helpful if you could show us some tricks… :slight_smile:

i am curious too because constraints themselves are pretty complex stuff which cannot be replaced by anything simple. i can imagine tens of conditions definining parametric cross section. replicating complex contraints without constraint functionality can be a bit awkward. I am sure its doable in GH but more elegant way is to create 2d sketch and constraint it instead of building all the logic inside GH.

Just come across the RhinoWIP changelog and I read that now this feature it is supported? Can somebody confirm this?

Features and enhancements being worked on:


  • Refit Trims
  • Surface Fillets
  • SubD tools to work with symmetry
  • Connections (constraints)

Constraints are being worked on, but it is not quite ready yet for users to test and provide feedback. We will make an announcement here on discourse when the feature is ready for testing.

We will also add links to announcement posts on that page when they become available.


Wonderful news. I am waiting for this for ages now. Hopefully they will be at least at the level of the DrivingDimensions mentioned in a post above. Will be very useful to be able to change the dimensions of different parts in an assembly by changing only one dimension like presented in this video: Integrated Part and Assembly Design

1 Like

Hi -

Just to manage expectations - what is currently being worked on is creating constrained 2D sketches. When you work with history active, changing a constrained value of the input curves will update surfaces that are created with commands that support history.



You can read more about constraints in Rhino here as well as a few examples.