Setting Rotation along a path


#1

I’ve been trying to follow the below attached Archi-Lab link to what I am trying to do. I’ve had to change tactics slightly because some nodes seem to have changed in the short time since the post was written. I’ve had partial success so far but am having trouble after getting the different angles between vectors. Please excuse the extra geo lines. They were there to help understand if my script was behaving as expected.

 

15-11-03 rotation on curve problem


Perpendicular to the tangent of a curve by points
#2

Hi Blair,

Have you tried “Instance.paremeter.cross sectionRotation” custom node. Read this post http://dynamobim.com/forums/topic/structural-beams-rotation-around-own-axis/


#3

Sorry the forums were down yesterday but I did have a chance to try your suggestion and sadly I must report it was even less effective than how I had the script originally set up. Columns don’t appear to have a cross-section rotation parameter and to redo the script with vertical beams… while I rather try some other approuches before return to this option. Interestingly. in total I’ve found 3 ways of rotating families but still the process to align columns to the curve eludes me. I’ll keep trying.


#4

Are you looking for this.


#5

Looks promising. A whole other way to rotate elements to align with a path I haven’t seen before. Might have some trouble with the large code block but I will try this approuch soon.


#6

To save your time here is the dyn file Click on Rotate on your left. Rotate


#7

I finally had time to take apart the small family and and study the family.

gs=(am.X-as.X)(ae.Y-as.Y)-(am.Y-as.Y)(ae.X-as.X); dr=gs>0?-1:(gs<0?1:0);

The above code seems to be were the actual angle calculation takes place but I can’t make heads or tails of it. Even when trying to break it on purpose the code string appears far too delicate - any change breaks it - pointing to it’s importance and complexity. How the above variables feed into it makes sense but how does the “.” in “am.X” or “ae.X” function? Or, for example, “ar.SweepAngle”, “cr.Length” or “ar.PointbyParameter”?


#8

^bump^

I’m still curious to learn how to do this but perhaps I’ve stepped too far into unknown territory?


#9

gs = graham scan

Dimitar had brought this out in a discussion (that I’m unable to trace right now) some time ago.


#10

EPIC. More than enough to get someone like me going. Thanks!


#11

The discussion:

http://dynamobim.com/forums/topic/rebuild-list-from-boolean-value/


#12

I have used the above graham scan algorithm for placing generic sheet piles and rotating them right to multiple model lines from revit and setting a length parameter to a rock surface. I’ll upload a pic of it here for future reference and if anyone sees possibilities for improvement. 750 sheet piles in less than 15 seconds compared to former 8 minutes using adaptive components with a 3pt rig in dynamo. Math is awesome, thanks Kulkul!


#13

Glad to hear your sheet piling placement went smoothly. Don’t use many of them in Calgary. Had to ask the office what they were. :wink:


#14

I see the great potential of Dynamo for doing those things that are not possible with the default Revit tool, but what is the advantage of doing a routine in Dynamo for something that the software already does? I would appreciate an explanation of this. I see some tendency to model in Dynamo things that can be done with the default tools. What’s the point? What I am missing to understand? Thanks for your help.


#15

Speaking for myself, I see no upside to doing something in dynamo if the exact same is possible in native Revit. Maybe I’m far out here, but as far as my understanding goes, none of the above can be done natively in Revit? Please be free to add any native Revit solution as well, we’re all here to learn! :slight_smile:


#16

A bit off topic but there is a very important point in your question to be understood. For myself - and the reasons which motivated me to accept Dynamo as an important industry tool - lies in sophisticated and recondite arguments about the nature of knowledge and complex systems. My position is probably better summarized in a blog post so please excuse the brevity and necessary abstraction of my answer.

Complex systems have many attributes, of importance to building design is 1) comprehension of the system and 2) the manipulation of said system. Graphical and computational approaches address each of these points individually. Basically, graphical representation tends to be much stronger at structuring complex data for human consumption. At the end of the day however, alpha-numeric input is much better suited for the manipulation of complex systems, especially as 1) the precision required increases and 2) the number of variables increase. There is no reason to believe a random post on the internet and I would encourage readers to look into software development project management where many of the behaviors described above are studied in detail and, indeed, leveraged daily to manage the software which runs the internet.

Returning to your question, the same analogy applies to REVIT and Dynamo. REVIT has become a powerful tool to graphically represent a complex system to a host of multi-disciplinary actors. But to efficiently manipulate such a complex system, which I do submit a modern building project is, a computational approach can be very valuable at certain points in a project. I harbor no ill will toward anyone wishing to model in REVIT but, for myself, I have every intention of building a lot in my life and to that end - I think it can be reasonably established - Dynamo has many advantages. As a side note, Dynamo is considered a visual programming language and I’m very grateful for this fact. Dynamo, for me, has reduced the intimidation of learning to program, as now I find it much easier to visually understand a complex program.

Computational Architecture = Rock n’ Roll.

 

(edit:spelling!!)


#17

Thank you for the replies. The rotation of the section of the column along the path can be done by making the column repeat along a divided path created on a curve. If the rotation is constant, that is all it takes. If the rotation is progressive, it requires a couple of adaptive points in the repeater and a formula to determine the pattern. This could probably be done in less time than the Dynamo workflow. Having said that, don’t get me wrong, I do see the great benefit of Dynamo when it is used to overcome the limitations of Revit. I asked the question in hope that there was something else that I was missing.

 

2015-12-10_12-13-22


#18

Alfredo,

I understand what you mean, that confusion happens to beginners in Dynamo. Probably you can do it in less time with just one curve, but if you have twenty or thirty curves?.. Dynamo it’s all about optimizing workflows. You can create a definition once and use it many times, instead of doing the same task over and over again. That´s the power of programming.

Regards.

 


#19

There you go, that is a good reason for using Dynamo for something like this. Thank you very much.