Wednesday 25 May 2011

Urban infill subdivision - lot grading on steep terrain with Civil3d

For those that were at the New Zealand Civil3d event and those that weren’t here are my notes and presentation 

Introduction

I started using Civil3d and grading in 2007 doing earthwork plans for lots created for urban infill housing, rural lifestyle or bush blocks. These sites typically have steep terrain
and numerous site constraints such as existing services, height to boundary limitations,streams/watercourses setbacks and slope stability issues. While working at our Howick office in Auckland between 2007 and 2009, I worked on over 125 jobs with Civil3d along these lines which I would call small to medium in size, below I have selected what I feel are six of the more interesting examples to discuss.

Some would say that Civil3d is not designed for this sort work and with its past suspect grading performance not the most user friendly program. I have however been able to refine my workflow to achieve some good results
with no or limited issues with the program.

So lets look at some real world New Zealand examples of lot grading, overview my work flow and step thru an example in Civil3d to see how I achieved the required grading.

EXAMPLES

1. Chateau Rise (C3D 2008)

58 Chehau  

Featureline Model

58 Chehau2

2.Whitford Park (C3D 2008)

frisken

Featureline Model

Whitford Road Featurelines

3. PointView (C3D 2009)

338 Point View Drive2

Featurelines

338 Point View Drive featurelines

4. Moeraki (C3D 2010)

moeraki

Featurelines and Corridors Model

moeraki sf 

5.Evelyn Road (C3D2007)

47 Evelyn Road

Closeup

47 Evelyn Road 2

6. Renlee (C3D 2009)

Renelee

Featureline Model

Renelee Featurelines

Prerequisite

Whether you are familiar with the grading tools in Civil3d or not I would recommend you look at the first grading video presented
by an Autodesk Civil3d programmer working on grading back on 13 May 2006 here or the latest one (if you can download it from the new Autodesk site, I just tried and failed).
This will give you an insight into how they were thinking about grading when they were programming it into Civil3d and as the grading interface has not changed since then
also the basic run down if you are new to grading.  

My Recipe to Successful Grading

Tip 1 Good Drawing House Keeping (try and keep the drawing as simple as possible while grading)
Tip 2 Use Layer Filters, to reduce displayed data
Tip 3 Use Layer States, to save your grading layers
Tip 4 Use POINTS or a TIN to build your surface. (Contours introduce more vertices and triangles into the surface and therefore more math requiring more memory = Issues)
Tip 5 Save before each critical action. (Like a lawyer don’t ask the question if you don’t know the answer, don’t grade without saving unless you know the answer)
Tip 6 Use Featurelines and infill grading
Tip 7 Always delete grading by using the special “Delete Grading” command that appears on the right click menu when a  grading is selected.
Tip 8 Avoid attached grading to corridors in large jobs (or be prepared for a slow drawing as there is no way to stop grading from auto calculating
         so on opening the grading’s is re calculated and anytime the corridor is amended also)
Tip 9 Do not create surfaces automatically

Before we begin the live example
I need to explain a number of Ribbon Modifications,Layer Filters, Command Alias’s and LSP commands I will be using in the example so you can follow me.

Layer Filters
If you use the shipped NCS layer naming convention like us for Civil3d objects, then to boost your productivity you really need to get into layer filters and

1. Understand the NCS Layer Naming Convention. The US military standard here gives a good overview

image
2. Know what Civil3d Objects and Object sub components are on what layer.
Use your filters to become familiar with this by reading the layer description column. Note you can drag the
description column.

 image
3. Be able to use the power of layer filters to categorise and sort layers quickly into relative groups.

If you have not been using layer filters up to now and to save you typing in your own standard NCS layer filters you can download my from here 
Now to get the download filters into your template we have to restore a couple of buttons to the layer manager that we use to have in the 2008 (which should be in the 2012).

The two buttons were “Load Filter Groups” and “Save Filter Groups” and were along the top of the layer Manager Dialog

image image

To get these buttons back and import the filters you need to add a registry entry to your computer as explained here
 

Ribbon Modifications
Now if you have limited desktop space or prefer to not have the layer manager open all the time but what to access your filters quickly
you can add a drop down to the ribbon and also a layer drop down to the quick access bar as shown here

image 

Command Alias’s
I use the following command alias’s in my workflow

LSM = LayerStateManager
IO = Isolate Objects
HOO = Hidden Objects On
OV = Object Viewer

I have explained how to setup command Alias’s here

LSP
Before having two monitors and the introduction of the right click “select Similar”  command I wrote these lsp commands
to select grading or featureline entities and jump to the object viewer using OV above quickly to visually check my model.

SG = Select Grading
SF = Select Featureline
SFL = Select Featureline Label

I have explained the lsp code and given a link to download the code here 

Workflow Video

Uploading to Youtube

Grading Part 1

Grading Part 2

Workflow Script

Featurelines and Grading 

  1. Obtain the site surface data from the client or survey team
  2. Obtain a copy of the Architects drawings
  3. Start a new grading drawing from your template
  4. In the grading drawing build an E-gl (Existing Ground Level) surface from points, tin or 3dfaces (preferably not contours)
  5. Open or Print out the Architects plan drawing
    • Look at how you can surround the site (or areas of the site) with one continuous featureline, with under laying features supplied by the architect.
      Here for example on the Chateau Rise Job I determined I need featurelines as per the following  markup
    • Chateau Rise arc test
    • To produce a cut/fill plan like this
    • Chateau Rise arc 2
    • Turn off all the layers except the ones you want to xref into the grading drawing.
    • Create LayerState’s in the xref of the key grade feature information you may want to refer too.
  6. Go to your grading drawing and add to a new layer x-“Name of Architects Drawing” make this layer current.
    • We do this so we can filter and freeze all of the xref’s at once or independently
  7. Attached the Architects drawing prepared in step 5 as an xref underlay to the grading drawing.
  8. Pull in the copies of the line work of key physical features to be used as the base for grading featurelines
    • use the ncopy command as well as from labs website the xref offset command obtainable here
      • ncopy does not use a fence or window select so you have to select one item at a time to add it to your selection set.
      • Command is an old lsp that came with express tools could modify if good at lsp to use window selection
  9. Join the imported line work of key physical features to form continuous enclosed polyline entity where possible for infill grading
  10. Create Featurelines from your imported linework.
  11. Assign elevations to your featurelines, Using Quick ElevationEdit or the Elevation Editor
    • Slope, Height, etc how to do things
    • You can generate a point group from vertices on the featurelines from existing ground surface or
    • Get the levels from a dumpy or existing surface.
  12. Now

either

Work outside from your perimeter featureline back to existing ground.

    • I usually start here as grading back to existing ground, is typically where the trouble or issues occur and can be the most time consuming part on the job.
    • You can attach grading to the Full length or part of length of the featureline and use transitioning between sections of grading
    • Forming Retaining walls, used 0.1:1 using anything less than 0.1 causes errors in daylight extending to far
    • Fill any areas enclosed by featurelines with infill grading objects

Or

Work Inside from this perimeter featureline

  • Add building platforms as enclosed feature lines with infill grading, kerb lines etc

Tips
Once you have the correct elevations assigned to your featureline. Set the osnapz variable to 1 to grip edit the plan position of a featureline vertice to only the xp snap position of a selected point.
The last drawn featureline overrides previous elevations and inserts a level point at crossing points of existing featurelines
You can daisy chain gradings together to make swales channel,etc
Curves in featurelines and adding elevation points has caused me issues in the past.

Adding Corridors

Shared driveways usually easier to model with corridors
Can extract featurelines from Corridors and add grading to them
Attaching grading to corridors good but no good as slows everything down re calculating all the time
Corridors surrounding a block of land can create enclosed featurelines
Issues with Grading infills between a corridor featureline and other featurelines will disppear, on code set change and other things

Plan Presentation

Point Setout Table
Rather than adding pointless additional points to the drawing to generate a setout table.

  • Add segment labels to your featurelines that look like points and then use a Parcels Segment table
    to generate the Northing and Eastings,

clip_image002

  • The benefit of this method is the Point levels and co-ordinates are not detached from each other.
  • The floors in this method is that the segment label can not be attached to the end of start of the segment and dragged independently
  • Two the parcel segment table can not extract the featureline start and end z elevations to add them to the table.

Cut/Fill Surface

  • Create a Cut/Fill Surface
  • Add a zero cut/fill line using Userdefined contours in the surface style making sure the style is set to display the Userdefined Contour sub component
  • Add Cut Fill surface labels using a spot elevation surface label with Expressions as explained here
  • Again rather than adding and other surface to your drawing. Mask out Existing ground Contours under the new surface. By turning on Elevations in the surface style and then using 1 elevation and making its colour pure white 255,255,255. This will mask out the underlying existing ground surface contours if the display or of the objects has your proposed ground at the front. Note: You can also use this method to display hatches of different colours to represent the staging of a projects earthworks and the benefit over a combined surface is the area of proposed work has can have contours of a different colour.
  • Add silt fences Diversion Bunds, rather than drawing a line use the surface data extraction to get the surface bund and offset that line as your silt fence or bund

Setup Plan Views
Use your layer filters to setup your production drawings. Some people may prefer to use a Civil3d No_Display Style, No_plot Style to control the visibility of Civil3d
objects during there drawing and plan production process. I found that during plan production you may want to have an
object on one viewport and not another. Now a Civil3d object can not have two Civil3d Styles so layers still have to be used
to display or hide the objects if on a separate layer.

What if things go wrong

Recover,Audit, Couple of tools at “Being Civil” blog for checking featurelines

Wishes

Grading Styles Hatch worked.
QTO attached to grading infill objects  of different grading styles i.e Building Platform Style give area, etc 

Issues I have found

Jumping of contours at corners of retaining walls and pools.
Sometimes infill disappear when you move featurelines.
Definitely if you change featureline styles to no display sometimes between corridors a featureline representing the berm the grading goes.
Transitions can struggle

Conclusions
One day GPS on a digger will be as common as a radio in a car or GPS in a phone, so start making great models now in preparation for the future.

Don’t give up and good luck!

14 comments:

  1. The XREF offset plug doesn't work in C3D 2012 due to .NET framework issues. In my experience no dll that requires NETLOAD has worked in 2012 even though it was fine in 2011

    ReplyDelete
  2. Neil,
    Your experience with .net DLLs seems strange. I've tested the OffsetInXref, Clipboard, and DrawOrderByLayer ADN plugins and each works fine in 12. I've even tested a dozen or so custom inhouse DLLs and they too work fine in 12.

    Depending on how the DLLs were written could determine whether or not a DLL will run in different versions (managed vs COM). Having said that though, OffsetInXref was written to be compatible going forward.

    ReplyDelete
  3. This is the text that the command window shows (which is similar to all dll's that worked in 2011 that now don't work in 2012)

    Command: NETLOAD
    Cannot load assembly. Error details: System.IO.FileLoadException: Could not
    load file or assembly
    'file:///C:\AutoLisp\OffsetInXref\x64\ADNPlugin-OffsetInXref.dll' or one of its
    dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
    File name: 'file:///C:\AutoLisp\OffsetInXref\x64\ADNPlugin-OffsetInXref.dll'
    ---> System.NotSupportedException: An attempt was made to load an assembly from
    a network location which would have caused the assembly to be sandboxed in
    previous versions of the .NET Framework. This release of the .NET Framework
    does not enable CAS policy by default, so this load may be dangerous. If this
    load is not intended to sandbox the assembly, please enable the
    loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569
    for more information.
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String
    codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
    StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
    forIntrospection, Boolean suppressSecurityChecks)
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
    assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
    forIntrospection, Boolean suppressSecurityChecks)
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile,
    Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm
    hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks,
    StackCrawlMark& stackMark)
    at System.Reflection.Assembly.LoadFrom(String assemblyFile)
    at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
    at loadmgd()

    ReplyDelete
  4. Command: NETLOAD
    Cannot load assembly. Error details: System.IO.FileLoadException: Could not
    load file or assembly
    'file:///C:\AutoLisp\OffsetInXref\x64\ADNPlugin-OffsetInXref.dll' or one of its
    dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
    File name: 'file:///C:\AutoLisp\OffsetInXref\x64\ADNPlugin-OffsetInXref.dll'
    ---> System.NotSupportedException: An attempt was made to load an assembly from
    a network location which would have caused the assembly to be sandboxed in
    previous versions of the .NET Framework. This release of the .NET Framework
    does not enable CAS policy by default, so this load may be dangerous. If this
    load is not intended to sandbox the assembly, please enable the
    loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569
    for more information.
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String
    codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
    StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
    forIntrospection, Boolean suppressSecurityChecks)
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
    assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
    forIntrospection, Boolean suppressSecurityChecks)
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile,
    Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm
    hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks,
    StackCrawlMark& stackMark)
    at System.Reflection.Assembly.LoadFrom(String assemblyFile)
    at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
    at loadmgd()

    ReplyDelete
  5. Nice examples J.
    Also agree that drawing out by hand a rough path of where you want your gradings to go helps in the long run.

    I hope the conference went well for you.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Nathan

    Thanks, conference was good, nice to meet people in NZ using the same product and see what they are doing.

    Justin

    ReplyDelete
  8. A fix for the NETLOAD problem is to edit acad.exe.config to include

    ReplyDelete
  9. Hi Justin, is there any chance to get the job files?
    Regards.

    Omar

    ReplyDelete
    Replies
    1. Omar

      If you send me an email at ralstogj at gmail, I can send you a link to data load otherwise you could try the AU site from last year and see if you can download the files if it is working at this link.

      http://au.autodesk.com/au-online/classes-on-demand/class-catalog/2012/autocad-civil-3d/urban-infill-subdivisions-lot-grading-on-restricted-and-steep-terrain

      Delete
  10. Hi Justin, excellent post. Is there any change to get this drawing files?
    Regards

    ReplyDelete
  11. Hi Justin. The link on AU is broken. I'll try to send you an email. Thanks a lot!

    ReplyDelete
  12. Can you explain some of your layer filters? In particular, the Basic Layers: they come in as five lines in the definition. Under Name, I see [~C- on line 1. Then V- and EX- on lines 2 and 3. Line 4 is PR-]* and finally line 5 is LAYER*. The open and closed brackets [ ] divided over four lines seems very odd.

    ReplyDelete
  13. Charles
    Yes the filter is a bit out it should be just two lines one with
    [~C-,V-,EX-,PR-]* this excludes all layers starting with these characters from the filter
    and the other with just the Layer* so if you create a new layer while the filter is applied it does not disappear.

    Any filters with , in them seem to get messed up if you use the layer filter import and export button which I use a lot to transfer my filters to other drawing usually started by others. I think this is because AutoCAD just exports a , separated file to do the transfer.

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...