Hello everyone,
I have an adaptive family with two points, and I would like to use Dynamo to position it on a series of points along a line or curve that I have projected onto a topographic solid using the Surface.ProjectInputOnto command.
Everything works, but the families are inserted vertically and not onto the host as happens when done ‘manually’.
I found this GitHub page “https://github.com/DynamoDS/Dynamo/issues/255“ where it seems that my problem is solved, but I can’t find where to find and install that node.
Can anyone help me? Or do you have other solutions?
What you are after is certainly achievable, but how will depend on how you have built the adaptive component and what data you are working with.
Can you share some screenshots in Revit showing what you have to start with, what you get via the user interface, and what you’re getting via the adaptive components?
Yes, of course. I am attaching screenshots of the family and the Dynamo file.
In the first photo on the left, I have the family positioned with Dynamo, and on the right, the family positioned manually.
In the second photo there is the 2 adaptive points family.
The other photos are the dynamo script.
I would like the Dynamo family to be positioned as the manual one.
I can’t upload more than one image at a time, so I’ll put them in reply.
Photo of 2 points adaptive family
The manual one appears to be ’hosting’ the family instance to the terrain, is that correct?
Are you working in the project environment, massing environment, or family environment for this?
That’s right, the “manual family” is hosted on the topographic solid, as Revit does automatically.
I am working in a project environment.
In the future you may want to try exporting your canvas as an image. It’s the button on the up right just out side the workspace extents. That will get every node on canvas as the current zoom level and resolution packed onto one image with no background.
I think you’ll have to step into the API then, as I do not believe this method is directly exposed via a node just yet. I’m giving a workshop the rest of the week so I won’t have time to dig into it, but you might be able to built it with Python yourself, or perhaps with the help of the Dynamo agent if you’re using a newer build and register for the alpha.
Thank you, I’ll try that. Unfortunately, I first need to resolve some issues with compiling Dynamo Core.
If I find a solution, I’ll post it here.
Hello, have you tried this :
Thank you Francois, I’ll try to do that now.
Hello, the block works and positions the families as I want.
The problem is converting my XYZ coordinates into UV coordinates correctly.
I am using the ‘Surface.UVParameterAtPoint’ block to convert the coordinates of some points projected onto a surface, but once converted, they are somewhere else entirely.
Could the problem be that the surface is a complex toposolid? I generated it using a .csv file.
You’ll need to convert the points to UVs relative to the selected face - the issue here is I doubt that you want both points on the same subsurface, which is why I think you’ll need a custom node still. The source code for this node is likely readily suitable as the basis for the custom code though. If you try it via visual studio no need to use the full ‘build Dynamo’ instructions. Jump directly to the zero touch section of the primer.
I have a problem that I think is well known.
I read here on the forum and on GitHub that when the surface is complex, it is not possible to assign the correct positioning to the UV points on the surface.
My surface is a solid surface, and I would like the element to be positioned in series on the contact points that you see on the surface.
Instead, it imports it where you see the selected object.