Civil 3d coordinates by user pick

Get XYZ by user picking?
This must be a duplicate post - I apologize. I couldnt find any post for this question.
I just want to let the user pick a point in the ciurret space as coordinate input.
How is that done in Dynamo?
Thanks for your patience.

There is a “pick point” node in the Civil 3D Toolkit from @Paolo_Emilio_Serra1. I recommend grabbing the version which was released last week as it has a bug fix for this particular node. :slight_smile:


Thank You : )

1 Like

Hi … sorry to be a pain … I am very new to Dynamo … is there any chance you can provide a working sample DYN that includes pick point - just a simple one … like draw a line between 2 picked points.
I have a sample DWG I am woking on , with simple CAD data in model space.
Thanks for your patience…

Pwahahaha!!! Silly me!!! this is not a program its a designer tool … designer will need to use the Dynamo interface input to provide … err… input … I got it now … huge apology!!!
… this helped me …

I’m stuck in an airport for the day due to an issue with a connecting flight, so I can’t produce this at the moment. However I’ll outline some steps for you to try this on your own.

  1. Place two Pick Point nodes, and select two points in the DWG.
  2. Place a Line.ByStartPointEndPoint node, and wire the Pick Point nodes into the respective Start and End inputs.
  3. Build a range in design script by double clicking to start a code block, and type 0..1..#10;
  4. Place a Curve.CoordinateSystemAtParameter node, and wire the line into the Curve input, and the range into the Parameter input.
  5. Place a Document.Current node somewhere above
  6. Place a Document.BlockByName node ont he canvas, and wire the document current node into it.
  7. Place a String node on canvas, and type the name of a basic block (nothing annotation or dynamic or with crazy properties… like a dumb rectangle - make it from scratch if you must) and wire the string into the name input of the BlockByName node.
  8. Place a String node on canvas and a type “From Dynamo” in it.
  9. Place a Document.ModelSpace node on canvas near the Document.Current node, and wire the Document.Current into the Document input.
  10. Place a BlockReference.ByCoordinateSystem node on canvas. Wire the Block (#7) into the SourceBlock input, the list of coordinate systems (#4) into the coordinateSystem input, wire the String with “From Dynamo” ‘into the layer input, and the Document.ModelSpace node into the block input.
  11. Check Civil 3D to see the blocks arrayed between the two points. That is assuming I typed this all correctly enough from memory. :slight_smile:
1 Like

THANK YOU!!! a few minutes after posting I had a Eureka moment and now … I undertand Dynamo…
You are AMAZING! Thank you for setting aside time to explain step by step.

1 Like

Happy to help. :slight_smile:

You might want to go though the Dynamo Primer (new version here: to learn more of the basics, and hopefully trigger a few more eurekas. :slight_smile:

I am back again … this is not urgent … when you have time … please provide more text with step 3… that step looks really useful, I dont quite execute it correctly …Code Block is not accepting the text 0…1…#10; … meanwhile I will use the key words you provided here, to see if I can solve it … thx again …

Two dots, not three.

1 Like