Move a point and keep lines and faces connected to it

Thanks for your fast reply! Yeah thats what I meant. All points are known and the nurbs surfaces are created. Now if i would like to change the z-value of a specific point i need to change in the list. I can not drag the point in the 3d View as the z-Value comes not from a number slider. If I could set the known z-Values as a default values for number sliders it should work, shouldn’t it? But how do i set a default value for a number slider?

How many points are you dealing with?

And what is the ‘end goal’ on the effort?

Some screen grabs or illustrations would help. :slight_smile:


So I would like to be able to directly manipulate the height of each point of each surface. At the moment I would need to set new z-values via a list. But if a point is created with a number slider it can be directly manipulated in the 3D View. My goal is that the code creates the model and afterwards i want to change the z-Value of each point directly in the 3D View and then recreate the surfaces depending on those manipulated points . I thougt of making a number slider between the code blocks and the point.bycoordinates nodes. But unfortunately the number slider is not able to handle preset values except for min and max. Each surface as seen above consists of 400 (20x20) points.

Here the code which creates the surfaces as I wasn’t able to upload two pictures in one post.

Do you have the raw data which you can post as well?

One idea would be to take the existing Z values and use the number sliders to adjust the values by adding to them - that is if the current Z value is 126, and you add -18 (or 18) you’d get 108 (or 144).

1 Like

I am a new user and therefore i can’t upload files except pictures at the moment. The thing with the slider is, that it can’t be preset to a specific value and i don’t want to adjust all the z-values of 400 points for the first creation of the model. Your ideo sounds good to me. I will test it and let you know if it worked for me.

O.K. I could change the height of all points of a surface by the same value but I still couldn’t move the points in the 3D View like you did in this gif:

I could share a drive link and you could look in my file this way if you want to. Thanks for your help so far! :slight_smile:

1 Like

My man! Sometimes we tend to see everything as a nail when we have the hammer. This is certainly the case here if I’m not mistaken. From what I can tell from your image it looks like borehole data is used to create some sort of geological solid model. The ability you will have in dynamo to create these models does not come without risk, since you would have to explicitely define all aspects around transistion zones, what mathemtical formulas that should be used to guide curvature etc. Not saying you’re not in complete control of all of this, of course! :wink: But I would really consider using a purpose built tool for this, wise from old battlescars… Have you considered using ie Leapfrog for these kinds of tasks?

1 Like

Thank you for your advice @jostein_olsen,
but unfortunately I will not easily get around it as working with dynamo is the main task in my master’s thesis. I already have Leapfrog Works on my agenda, as I am going to compare them. Another tool I am going to include in this comparison is Grasshopper (Rhinoceros). My first impression of Leapfrog Works was, that it already contains everything needed regarding to their ‘Getting Started’ video. But I think there should be a way to solve this problem in dynamo, as you can move points like in the package ‘DynaShape’ and I hope I will figure out how to get this working in my code or how i can properly use the DynaShape-Package for solving my problem.
For now I am frustrated, as I can’t move points that are generated from a list in 3D view. Moving each of the points via the number slider works, but thats not what I want. Only if a point is not created from a list it can be dragged and creating the points one by one and not from lists is no option for me. Also if I convert a point.bycoordinates node to code, which beforehand could be dragged, is afterwards fixed in its position.

Are you building a geological data set with real numbers as the base, or are you doing a form finding exercise? If the later you may want to check out the Dynashape package which has a greater capacity to drive geometry in the preview window.

AND mouse interaction as pointed out in post #2 to this question.

@jacob.small

At the moment I have fictional terrain points and fictional boreholes which are used to create the model that i shared above. The terrain consists of 400 points and each one of the 5 boreholes has 5 layers. To create the surfaces between the layers, each point on the terrain is moved in the z-direction depending on the surrounding boreholes and the depth of its layers. Right now I am working on moving the points in each layer via number sliders. The first slider lets you select the layer(surface), the second the column, the third the row and the last one the value which should be added to the current z-value of the selected point. This should work but is not handy to use as you need to know in which column and row your point is that you want to lift up or down.

@Marcel_Rijsmus

Do you know if its possible to hand over existing (surface) points to ‘DynaShape’ as the origin for the mesh? Because if this is possible, then it should be no problem to set the points in the borholes as anchors and then drag the points how I want to, stop the execution and fast display to get the geometry from the mesh.

I’m really thankful for all of your suggestions and I hope that I don’t annoy you with my questions. :grimacing:
I am just working since four weeks with dynamo, so please have mercy on me. :pray:

Why not add a new data source for the Z value adjustment? That is a 2nd Z value for ‘Z Offset’ which defaults to 0 but the designer can adjust before creating the geometry.

The point manipulation via dynashapes should be doable, but you will have to experiment with it. Be sure to follow the installation instructions exactly you you won’t ever get started.

1 Like

First off, here a blogpost on how @MaartenVroegindeweij did it with flat layers of soil.

Second, the installtion instructions for DynaShape are found here

1 Like

@jacob.small

Thats better yes. I think I got stuck on these number sliders as they can be used to drag singlehanded created points. Nevertheless its still just a workaround, but thats at least a little step in the right direction. I already have it installed and the example files are running, so I think the installation process went all good. Only the example files which rely on the ‘LunchBox’ package do not work as this package no longer supports dynamo.

@Marcel_Rijsmus

Thanks for the links. Thats exactly the link I used to install the package :+1:

1 Like

Another thought: as you likely don’t want a massive offset on one point’s shit, maybe use an attractor point (or multiple points) to move stuff by proximity to the intervention, and scale accordingly.

1 Like

Thats definitely something I want to include. Not every point should be draggable and the ones that are should influence the sourrouding ones depending on the distances but be themselves not influenced by other draggable points. I played around with the DynaShape package and I can lay the grid on a surface by assigning the points of the mesh to the points of my surface. Then I can change the position of the points in the mesh by dragging them and afterwards get the new positions of the points and the new surface from these points.
I have attached the dynamo file so you get a better insight into my progress.
I am thankful for any kind of comment/suggestion/advice on my dynamo file. :+1: :slightly_smiling_face:
DynaShapeTesting.dyn (208.5 KB)

1 Like

Another way I am working on is to replace some points of the surfaces with movable points. That way I am not dependent on packages. The only struggle with this is to preset the number slider value to the z-value of the point that is going to be replaced, but I am working on a solution or workaround.

As an example to understand what I am talking about, see the little attached dynamo file:

ReplacePointAtIndexWithHandlePoint.dyn (32.2 KB)

@jacob.small

As I am new to this forum I would like to ask you if it would be better to start, create or move my questions to a new topic, as I am kind of hijacking this topic.

I would start a new topic now. Include your DYN, and all source files (ie: a sample surface in your integration of choice), and clearly start the question. Link to any relevant posts here as you see fit. :slight_smile:

For what it is worth: I have personally found this is a fools errand and you will spend more time rebuilding the wheel than if you either teach users to get the package they need or ensure the packages are pushed out. Hopefully your effort will be more fruitful than my attempt way way way back in the day.

1 Like