Friday, 16 August 2013

[No]des (it's a real word that I just made up)


First of all, I'm sorry. No really, it's been ages since my last post - but that's not to say that I haven't been active with this - just that I haven't found the time to get all my ducks in a row. Let's spend some quality time together, I'll put on that dress you like.

Aaaaanyway, this is a discussion about nodes, or rather, the lack of them. Or rather, the hack of them. Ha! See what I did there? Yea. So, adaptive components love nodes, but what happens when there are no nodes? Oh noes! What causes this? How do you snap adaptive points with any confidence of their behavior? Will the earth spin off its axis and collide with the sun? First, let’s look at a nice example of a mass surface with all nodes present and correct: 

 

In this simple example they are easy to manage and snap to – you can intersect the grid as you like and get amongst. However, when cutting a mass with a void, as the second diagram above shows, we are left without a stable interface.

With this very simple void manipulation, and despite the facts that the surface being cut is continuous, and no changes have been made with the intersections, the node points along the cut edge don’t/won’t generate. In order to get the surface to function, you need to create your own nodes, and this isn’t as hard as you might think – you’re about to get intimate with point elements. The first order of business is to isolate the surface that you’re dealing with, so that you can get your points to snap to the right edges/elements/surfaces. You might also want to include any levels or reference planes that you’re using/think you'll use to intersect the surface. It’s important here to think of point elements as an abstract entity – they’re not simply an x,y,z location in space, but an actual entity that has attributes and an identity of it's own damn it.


The next thing is to make sure that you understand how your adaptive component is going to snap/adhere to this surface – and this is really just to make sure that you’re not making things unnecessarily complicated for yourself – in all honesty, the fewer NOdes you have to fabricate the better. In a bit I'll show a pretty simple 4pt adaptive component just to give a feel for what’s going on. In a later post I’ll make it more complicated to illustrate how point elements need to be treated in this context.

Begin by selecting point element from your ribbon and then move it over your surface. This is where the isolation of the surface is important, because you want the point to be snapping to the right plane – I’ll explain that shortly. You want it to snap to the edge of the plane, so hit ‘Tab’ if you need to get it to cycle through, and then place the point.


It’s now hosted to the edge of your plane, huzzah! But don’t rest on your laurels just yet, because there’s mischief afoot. Not only will your adaptive component not enjoy this point as it is, but it’s not even in a logical location along that edge. Let’s deal with the latter first.
You can manipulate this point location in two main ways:

  1. Move it manually to align with your surface grid. Inaccurate but quick (and really, your adaptive component should have some flex in it – especially if you’re doing a quick study) or;
  1. Host Point by Intersection. This takes a little more setup from the beginning – basically you need to have a level or reference plane that your surface is going to use as an ‘intersect’. This is actually reasonably logical for an architecture project. Let’s discuss.
We’re going to place another 2 levels (besides the base system default one) in this example and then intersect the surface plane with them so that we can snap our point elements at their intersection. Confused? Would pictures help?

Step 1 - Unhide everything and select the system default  ‘Level 1’ plane
Step 2 - Hold down shift+ctrl and drag it upwards
Step 3 – Repeat

 
Step 4 - Now select the surface, drop down ‘intersects’ on your ribbon and select  regular flavor
Step 5 - Holding down ctrl, select both planes. Hit finish
Step 6 - Oh yea, I know what you’re trying to say girl


So now there are flexible lines included in the grid, which is where the planes are intersecting the surface. But more importantly, we now have a logic in the surface that we can exploit with the hosted point element. Let’s do that. Select the hosted point, and then locate the Host by Point Intersection button underneath the main ribbon dado. It’s important to note that the Level planes are what you’re going to intersect with, so that’s what you should select. Hosted! Perfect.


The point element will now move with the plane and surface together. Repeat these steps as necessary for your surface. I created only 4 NOdes to use in this example.


Now I'm going to go back to the “I’ll explain that shortly.” (van der Veen. "NOdes." digital blog. Web. about 5min ago.) and elaborate on why selecting the correct plane/surface edges is important. From this point on, you’re going to remove most of the flexible behavior in the NOdes you’ve just created – so it’s a good idea to have them in the right spot – and also realize that if you need to change things later, they will need to be recreated.

In the previous images, the selected NOdes exhibit a hosted relationship with the surface edge – that is, they display a perpendicular axis (the little blue square when selected), and that’s not much help for an adaptive component as the snappy adaptive points want to behave in certain ways. So, now that the NOdes are in the right place, we have to go through a process of disassociating them from the surface. If this sounds counterproductive, don’t worry - remember, this is a hack!

Step 1 – select the NOdes
Step 2 – on the Host drop down menu on your ribbon, select <not associated> (at this stage, the NOdes will become little fatties)
Step 3 – once this is done, on that same drop down menu, select one of the Level planes – it really doesn’t matter which – the important thing is that you want the NOdes to reference to something logical, like a ground or floor plane.


The points of doing this twice is to initially disassociate the point from the mass/plane/edge, and then re-associate it to a known surface that will operate predictably. Now when selected, the NOdes display a logical x,y,z adjuster. Let’s test with the previously mentioned simple 4pt adaptive component, and place it on the surface with our NOdes. Simple right?
 


Well, things get more complex according to how your adaptive component works – more specifically, how your adaptive point orientation is operating. Basically, you can get around this by rotating your point-element-turned-NOde in its properties to get the adaptive points to face in a direction that is consistent with the way its built. As the builder of the component, you should have some idea of what it needs.

This is most prevalent when dealing with angular or non-linear surface planes – just keep rotating as you need to to get it to work. You'll find that the adaptive component will exhibit weird orientation behavior or just fail completely until you get the NOde/s facing the right way. Hopefully this last part makes sense once you’ve been through the process – I’m working on a more complicated set of components to illustrate this at a later date.