Tuesday, 29 November 2011

Using Parcel’s to calculate Open Channel Flow

A couple of years ago I developed a number of parcel styles and labels to calculate the capacity of basic open channels when you have limited data to do a full model.

Yesterday I had to use the styles again for the first time in a while and it took me a while to remember want to do, so I have made a quick screen capture of the process for future reference and others to review.

The label styles make use of expressions and user defined properties in the parcels. The process is not fully automatic but you can slide the parcel line representing the water level up and down to adjust the calculations and manually update the water surface length to get the correct wetted perimeter. Someone out there may have a clever idea on how this could be automated.

Also the Slide Direction tool does not seem to hold the bearing when moving from one segment of the road frontage (aka stream bed) to the next unless this is by design.

There is a link to the full screen movie here seeing the image below is a bit small.

Unable to display content. Adobe Flash is required.

Thursday, 24 November 2011

Creating Surfaces from LINZ NZTopo50 maps

In rural New Zealand there is generally a lack of Lidar information to build 3d surfaces within Civil3d. However Land Information New Zealand (LINZ) have made available on their website shp file versions of their NZTopo50 series maps that contains contour information at 20m intervals. You can use these contours to create surfaces and define catchments automatically in Civil3d.

To build a surface is Civil3d:-
1. Goto the LINZ website and choose a map of your area of interest
at the bottom of the particular map you will see the shp file download option. Download and unzip the shp files.

2.  Now you have to import the shp data into a new drawing using MAP and assign the object data elevation to the Z value of the polylines that represent the contour lines. There are a couple of tutorials on the web how to do this already here and here.
Note the shp files downloaded are in NZTM co-ordinate system so you may have to do a co-ordinate transformation on import as well.

3. Now that you have the contours with the correct elevation you can build a surface in Civil 3d in the normal way and define catchments and flow paths using the built in Civil3d’s tools.

Saturday, 19 November 2011

Mapping Pipe XYZ now as easy as ABC

I have been doing a bit of research recently into the technologies available for the as built mapping of recently built and historic underground services. In relation particularly to Low Pressure and Small Diameter Gravity Sewers (design examples)laid to the ground surface contour by mole plough or similar techniques.
I come across this good presentation on the different types of mapping systems
and with a little more research found a specific system specification for a product out of Belgium which looks promising for the application I have in mind.

Only problem Civil3d pipes does not deal with pipes as a 3D string format , polyline format. I have commented on this before and Autodesk should be addressing it sooner rather than later. Currently the piping tools of Civil3d cannot deal with modern construction materials and techniques.
In the near future I foresee modern technology removing the need to run pipes in straight lines between  structures as long as all segments of length dx within a pipe of length x achieve the minimum hydraulic requirements water will in fact flow down hill and achieve the required result at a cheaper cost.
See you in the future Mcfly.

Wednesday, 16 November 2011

Map Book Template Location

Just looking into mapbook for a project the shipped templates are in the following folder on my vista machine


Heres the link to the online help discussing the version templates


Thursday, 10 November 2011

Wow over 100 posts

Just noticed the other day that I did my 100 th post. Here is a snap shot of my blog stats. Seem to be getting around 1800 page views a month and alot of viewers from all over the world. Surprisingly the most popular posts have been my intro to vb.net, lot grading and  keyboard wizard posts. The last few posts have been a bit basic and tongue and cheek. So I will look at some thing a bit more complex in the next few posts.

Comment below and let me know what you guys and girls want to see more posts on VB.net? Daily Gotcha’s? Just doing things differently?


Tuesday, 8 November 2011

Crash Boom Bang

This drawing seems to crash because a grading object hang off a corridor does not play nice with a grading hang off a separate featureline go figurer.


Tuesday, 1 November 2011

Model that SSA


Bounded Volumes Table

In last day or so Autodesk have announced the release of the new Volume Dashboard add on for Civil3d 2012 subscription users.

About a month or so ago a I bolted together a number of pieces of code off the net from here, here and here. To make my own utility to generate a bounded volumes table for a project. The routine uses polylines for stage boundaries and a single bounded volume surface, here is a quick video of the code in action and the code I developed for those users that want to use it in previous versions of Civil3d. The code may also be useful to dump the results of the stages volumes into a standard Autocad table a functionality that is lacking in the new tool.

I did plan to develop the code further to remember the stage boundaries polylines by attaching the handle of the staging polylines to the volume table as xdata to enable a table refresh at a later date.

Instead I will continue to focus on cleaning up XPac a collection of code routines I have written over the last 5 to 6 years for Civil3d. Here is a compiled version of XPac with the command XP_BoundedVolumeTable command as always use the code at your on risk. Unable to display content. Adobe Flash is required.

Here is the code.

<CommandMethod("XP_BoundedVolumeTable")> _
Public Sub Bounded_Surface_Volumes()

'Prompt the user if the they want to create a new bounded volumes table or refresh an existing one

'If new then get the user to
'Select the volume surface

Dim ObjTypetoSelect(0) As Type
0) = GetType(TinVolumeSurface)

Dim surfaceId As ObjectId = PromptForTinSurface(ObjTypetoSelect, "Select a TIN Volume Surface: ", "The selected object is not a TIN Surface.")
If ObjectId.Null = surfaceId Then
& "No TIN Surface object was selected.")
' We don't have a surface; we can't continue.
End If

'Create a selectionset of the polylines to be used the bounded polylines
Dim acSSet As SelectionSet = GetSelectionSet()

'check selectionset not null
If acSSet.Count = Nothing Then
Exit Sub
End If

'Define the and size an array to sort the volume data for use later
Dim VolumeData As String(,) = New String(acSSet.Count + 1, 3) {}

Dim polylinenum As Integer = 2
'for each polyline in the selection
'create an array of vertice co-ords to pass to volume function
For Each acSSetObj As SelectedObject In acSSet

Dim dObjId As ObjectId
= acSSetObj.ObjectId

If (dObjId.IsNull) Then
"No Bounding Polylines have been selected")
End If

'not sure if you can get bounded volumes in .net yet therefore
'from the ObjectID get a com surface object to use the boundedvolumes method
Using tr As Transaction = startTransaction()
'get the bounding polyline for read
Dim oPolyline As Polyline = tr.GetObject(dObjId, OpenMode.ForRead)

'Determine the volumes in the polylines area
Dim oCutFillSurface1 As AeccTinVolumeSurface = tr.GetObject(surfaceId, OpenMode.ForRead).AcadObject
Dim oCut As Double = 0
Dim oFill As Double = 0
Dim oNet As Double = 0

Dim oArray As New List(Of Double)
= ArrayOfPolylineCoords(oPolyline)
Dim xx As Object
= oArray.ToArray

oCutFillSurface1.Statistics.BoundedVolumes(xx, oCut, oFill, oNet)

'ReDim VolumeData (1,2) Perserve

1, 0) = "Stage"
1, 1) = "Cut"
1, 2) = "Fill"
1, 3) = "Net"
0) = polylinenum - 1
1) = Math.Round(oCut, 2).ToString
2) = Math.Round(oFill, 2).ToString
3) = Math.Round(oNet, 2).ToString

= polylinenum + 1

End Using

Catch ex As System.Exception
MsgBox("Error in calculating volumes from polyline" & Err.Description & " - " & Err.Number & Convert.ToChar(10))
End Try



'add volume data to an array


'Insert a table into the drawing of the volumes.

End Sub
Related Posts Plugin for WordPress, Blogger...