Dynamo
Primer for v2.0
English
English
  • About
  • Introduction
    • What is Dynamo & How Does It Work?
    • Primer User Guide, Dynamo Community & Platform
  • Setup for Dynamo
  • User Interface
    • Workspace
    • Library
  • Nodes and Wires
  • Essential Nodes & Concepts
    • Index of Nodes
    • Geometry for Computational Design
      • Geometry Overview
      • Vector, Plane & Coordinate System
      • Points
      • Curves
      • Surfaces
      • Solids
      • Meshes
    • The Building Blocks of Programs
      • Data
      • Math
      • Logic
      • Strings
      • Color
    • Designing with Lists
      • What's a List
      • Working with Lists
      • Lists of Lists
      • n-Dimensional Lists
    • Dictionaries in Dynamo
      • What is a Dictionary
      • Dictionary Nodes
      • Dictionaries in Code Blocks
      • Revit Use-Cases
  • Custom Nodes & Packages
    • Custom Nodes
      • Custom Node Introduction
      • Creating a Custom Node
      • Publishing to Your Library
    • Packages
      • Package Introduction
      • Package Case Study - Mesh Toolkit
      • Developing a Package
      • Publishing a Package
      • Zero-Touch Importing
  • Dynamo for Revit
    • The Revit Connection
    • Selecting
    • Editing
    • Creating
    • Customizing
    • Documenting
  • Dynamo for Civil 3D
    • The Civil 3D Connection
    • Getting Started
    • Node Library
    • Sample Workflows
      • Roads
        • Light Pole Placement
      • Land
        • Service Placement
      • Utilities
        • Rename Structures
      • Rail
        • Clearance Envelope
      • Surveying
        • Point Group Management
    • Advanced Topics
      • Object Binding
      • Python and Civil 3D
    • Dynamo Player
    • Useful Packages
    • Resources
  • Dynamo in Forma Beta
    • Set Up Dynamo Player in Forma
    • Add and Share Graphs in Dynamo Player
    • Run Graphs in Dynamo Player
    • Dynamo compute service differences with Desktop Dynamo
  • Coding in Dynamo
    • Code Blocks and DesignScript
      • What's a Code Block
      • DesignScript Syntax
      • Shorthand
      • Functions
    • Geometry with DesignScript
      • DesignScript Geometry Basics
      • Geometric Primitives
      • Vector Math
      • Curves: Interpolated and Control Points
      • Translation, Rotation, and Other Transformations
      • Surfaces: Interpolated, Control Points, Loft, Revolve
      • Geometric Parameterization
      • Intersection and Trim
      • Geometric Booleans
      • Python Point Generators
    • Python
      • Python Nodes
      • Python and Revit
      • Setup Your Own Python Template
    • Language Changes
  • Best Practices
    • Graph Strategies
    • Scripting Strategies
    • Scripting Reference
    • Managing Your Program
    • Efficiently Working With Large Data Sets In Dynamo
  • Sample Workflows
    • Getting Started Workflows
      • Parametric Vase
      • Attractor Points
    • Concept Index
  • Developer Primer
    • Build Dynamo from Source
      • Build DynamoRevit from Source
      • Managing and Updating Dependencies in Dynamo
    • Developing for Dynamo
      • Getting Started
      • Zero-Touch Case Study - Grid Node
      • Executing Python Scripts in Zero-Touch Nodes (C#)
      • Going Further with Zero-Touch
      • Advanced Dynamo Node Customization
      • Using COM (interop) types in Dynamo Packages
      • NodeModel Case Study - Custom UI
      • Updating your Packages and Dynamo Libraries for Dynamo 2.x
      • Updating your Packages and Dynamo Libraries for Dynamo 3.x
      • Extensions
      • Defining Custom Package Organization for Dynamo 2.0+
      • Dynamo Command Line Interface
      • Dynamo Integration
      • Developing For Dynamo For Revit
      • Publish a Package
      • Build a Package from Visual Studio
      • Extensions as Packages
    • Pull Requests
    • Testing Expectations
    • Examples
  • Appendix
    • Frequently Asked Questions
    • Visual Programming and Dynamo
    • Resources
    • Release Notes
    • Useful Packages
    • Example Files
    • Host Integration Map
    • Download PDF
    • Dynamo Keyboard Shortcuts
Powered by GitBook
On this page
  • Goal
  • Key Concepts
  • Version Compatibility
  • Dataset
  • Solution
  • Get COGO Points
  • Group Points by Description
  • Create Point Groups
  • Output Summary
  • Result
  • Ideas
Edit on GitHub
Export as PDF
  1. Dynamo for Civil 3D
  2. Sample Workflows
  3. Surveying

Point Group Management

PreviousSurveyingNextAdvanced Topics

Last updated 1 year ago

Working with COGO Points and Point Groups in Civil 3D is a core element of many field-to-finish processes. Dynamo really shines when it comes to data management, and we'll demonstrate one potential use case in this example.

Goal

Key Concepts

  • Working with Lists

  • Grouping similar objects with the List.GroupByKey node

  • Showing custom output in Dynamo Player

Version Compatibility

This graph will run on Civil 3D 2020 and above.

Dataset

Start by downloading the sample files below and then opening the DWG file and Dynamo graph.

Solution

Here's an overview of the logic in this graph.

  1. Get all of the COGO Points in the Document

  2. Group the COGO Points by description

  3. Create Point Groups

  4. Output a summary to Dynamo Player

Let's go!

Get COGO Points

Our first step to get all of the Point Groups in the Document, then get all of the COGO Points within each group. This will give us a nested list or "list of lists," which will be easier to work with later if we flatten everything down to a single list with the List.Flatten node.

If you're new to working with Lists, take a look at the Working with Lists section.

Group Points by Description

Now that we have all the COGO Points, we need to separate them into groups based on their descriptions. This is exactly what the List.GroupByKey node does. It essentially groups together any items that share the same key.

Create Point Groups

The hard work is done! The final step is to create new Civil 3D Point Groups from the grouped COGO Points.

Output Summary

When you run the graph, there's nothing to see in the Dynamo background preview because we aren't working with any geometry. So the only way to see if the graph executed properly is to check the Toolspace, or to look at the node output previews. However, if we run the graph using Dynamo Player, then we can provide more feedback about the graph's results by outputting a summary of the Point Groups that were created. All you have to do is right-click on a node and set it to Is Output. In this case, we use a renamed Watch node to view the results.

Result

Here's an example of running the graph using Dynamo Player.

If Dynamo Player is new to you, take a look at the Dynamo Player section.

Ideas

Here are some ideas for how you could expand the capabilities of this graph.

Modify the point grouping to be based on full description instead of raw description.

Group the points by some other pre-defined categories that you choose (e.g., "Ground shots," "Monuments," etc.)

Automatically create TIN Surfaces for points in certain groups.

Create a Point Group for each unique COGO Point description.

Mission accomplished!

🎯
🎉
34KB
Survey_CreatePointGroups.dyn
1MB
Survey_CreatePointGroups.dwg
Get all Point Groups and COGO Points
Grouping the COGO Points by description
Create new Point Groups
Setting a node to Is Output will display its contents in the Dynamo Player output
Running the graph using Dynamo Player and seeing the results in the Toolspace