Friday, December 23, 2011

Map 3D and You

If you aren’t using the Map capabilities in Civil 3D then you should be. Especially if you are required to show vicinity A Practical Guide to AutoCAD Map 3D 2012maps on your plans. By using queries to data it makes it easy to create and label the streets. If you need to create maps showing zoning, sewer lines, and other information then Map 3D is something you should look into.

If you are looking to learn Map 3D you might want to take a class or purchase a book. One such book, I received from Cadapult Software Solutions, Inc. (for free), is A Practical Guide to AutoCAD Map 3D 2012.

I just happened to have projects to perform a sewer studies. As part of the study I needed to determine the flow of sewer flowing in the existing sewer lines in front of the projects. A great source of data was provided free (and some at a low cost) from the County of Los Angeles. I used the book as a reference guide to display the relevant information in order to perform the analysis for the sewer flow calculations.

The book covers both using Object Data and an FDO connection, which I used on this project. It covers the basics to allow me to label both types of data and explains the difference between the two ways to access the data. By using the book I was able to perform the basic tasks I needed to do to display the data. Once I had the data displayed I was able to determine the zoning type of the parcels that discharge into the sewer system allowing me to determine if the sewer has adequate capacity.

The book breaks possible tasks into Chapters with each having a similar structure of Introduction, Key Concepts, Objectives, and then a discussion of topic at hand. This makes it easy to pick up anywhere in the book for the concept you are to learning. The book covers the basic, so if you are looking for the book to hold your hand through every conceivable task, then you might be disappointed. Since Map 3D’s user interface is quite daunting I would think a book that was able to do that would be hard to find.

The book is large in size and has a spiral binding to lay flat. I usually dislike spiral binding since it’s hard to spot the title of the book on a book shelf (for you printers out there please develop a way to print the name of the book and the end of the pages of the book to fix this problem). But for using the book in a coffee shop while traveling it made it easy to take advantage of the sometimes small space available. I thought the book could use an expanded index, but the table of contents helped find topics if the word I was looking for wasn’t in the index. Overall I thought the book was great.

If you are looking to have a sewer study completed in the State of California or need a workflow developed to create vicinity maps utilizing Civil 3D or Map 3D. Then Email me for more information.

Tuesday, December 20, 2011

Mass MLeader Renumber

I wrote this code a while back that changes all of the MLeaders found in a drawing’s model space from an existing number to a new one. I’m just putting it here for a reminder later for when I may need it.

Sub ChangeMLeaderNumber()

Dim oAcadObject As AcadObject
Dim sOriginalNumber As String
Dim sChangedNumber As String
Dim oMLeader As AcadMLeader
Dim oAttDef As AcadAttribute

sOriginalNumber = ThisDrawing.Utility.GetString(1, "Enter existing MLeader Number to change: ")
sChangedNumber = ThisDrawing.Utility.GetString(1, "Enter new MLeader Number: ")

For Each oAcadObject In ThisDrawing.ModelSpace

If (TypeOf oAcadObject Is AcadMLeader) Then
Set oMLeader = oAcadObject

Dim sBlock As String
sBlock = oMLeader.ContentBlockName

Dim oEnt As AcadEntity
For Each oEnt In ThisDrawing.Blocks(sBlock)
If oEnt.ObjectName = "AcDbAttributeDefinition" Then
Set oAttDef = oEnt
If oAttDef.TagString = "CIRCLE" And oAttDef.TextString = sOriginalNumber Then
oMLeader.SetBlockAttributeValue oAttDef.ObjectID, sChangedNumber
End If
End If
End If

End Sub

The code was set up for the MLeader I was working with at the time. It would need to be changed to match the block you are using.

Tuesday, December 13, 2011

Synchro–Explore Options. Manage Solutions

A while back I participated in a demonstration of a software product called Synchro. Synchro is a lot like Navisworks, but built from a scheduling perspective rather than an approach of bringing together different models. From my initial impressions of the product this makes it much more powerful then Navisworks.

By having the schedule be the driver, rather then the models, it makes it easier to assign the objects to the schedule. The product is able to import the most common scheduling formats as well as provide a direct link between them. From talking to the representatives they are actively adding the scheduling formats they don’t have. The schedule items then can be assigned to the objects in the model. For different tasks such as placing forms, rebar, pouring, etc. different colors may be assigned to the objects as they are done. You can even split up the objects to schedule your pours.

From a modeling perspective they are focusing on using solids to bring the models together. Since Civil 3D doesn’t really have a solid model to share, you are able to use their modeling tools inside the product to create a model that would represent the design. While not a perfect solution, it does provide a method to schedule the work. Synchro also provides the ability to split up the model for scheduling purposes. So if you only want to do 250 feet of lane 2 in the first phase you can split it out for scheduling purposes.

If you are worried about the costs of the project, you can assign the costs of the project to the schedule. This would enable you to see what your costs are going to be across the project lifespan. You can determine how much money is expected to be needed. This way you can optimize the schedule to reduce carrying costs.

The product is more focused on the construction industry rather than the design industry, I could see a use for it for designers involved in design-build projects. By using this tool in the proposal process it could be possible to provide savings for the owner by scheduling the project in an efficient manner for cash flow purposes.

If you want to learn more about the product and how it’s being used, Synchro is having an Inaugural User Conference in Orlando, Florida on January 25, 2012. Unfortunately I probably won’t be able to attend, but if you want to see what forward thinking contractor’s are doing I’d check it out.

Saturday, December 03, 2011

Retirement of the Civil 3D Reminders Pack

Today Civil Reminders is announcing the cessation of development of the Civil 3D Reminders Pack. For the past 3 years the Civil 3D Reminders Pack has been provided free to whoever choose to download it. Many of the ideas for the commands contained in the pack came from readers of the blog, questions from the Civil 3D discussion groups, and solving issues to make me more productive.

In the future the commands will be improved with better user interfaces, error catching, and adding more capabilities and incorporated into the SincPac-C3D. The SincPac-C3D is developed by Quux Software. Currently the SincPac-C3D contains the following Civil 3D Reminders Pack commands:

CorridorExtractPolylines - Extract multiple polylines from a Corridor, even through an XREF.

DLLabels - Dynamically link Profile View labels to Profiles and Pipes.

SSMRenumber - Renumbers pages in a Sheet Set.

SwapPipeNetworkParts - Swap multiple network parts at once.

The Swap Parts lets you swap multiple pipes and structures at one time instead of individually as Civil 3D now requires. The swap Pipe Network Parts now includes an option to determine the match point of the swap for pipes. Previously in the Civil 3D Reminders Pack the match point was the center of the pipe.

 SwapPipeNetworkParts Dialog box

I’ve been working on the DLLabels command for quite a long time and it’s finally available. It allows you to link a profile view label to a pipe or a profile. No longer do you have to manually adjust your crossing pipe labels or labels callout out finish grade or existing grade (you  still have to verify the label doesn’t overlap other labels or objects). As an added application for this command you can show the crossing pipe as a block in the profile view label to show a more rounded pipe rather than a tall crossing pipe that may look like like a fat line when printed out. Here’s a short video showing the command updating a profile linked profile view label.

Unable to display content. Adobe Flash is required.

The CorridorExtractPolylines has an added dialog box to allow you to select which feature lines to extract as 3DPolylines from the corridor. This is an added improvement for the command, previously the feature line codes needed to be typed in. The command lets you extract feature lines from a corridor in the drawing or through an Xref.

Select Corridor Featurelines Dialog box

In future versions a dynamic sewer lateral linking command will be included. If you want to adjust pipe laterals to a main line pipe try using the undocumented command DLSewerLaterals in the SincPac. The command is still in development, but will adjust the laterals in one pipe network to the main line pipes in another network. Although it currently won’t dynamically update to changes in the main line pipe. Here’s a short video showing a more complete version in action. Got suggestions for this command? Send me an email at

Unable to display content. Adobe Flash is required.

The SincPac starts out at a reasonable price of $175 for a module and $350 for a full edition. Volume pricing is also available.

A BIM-less Design

I’m back from Autodesk University (AU) and starting on my first project in my return. It’s preparing a model for incorporation into a bid for survey work for a landfill project. To my delight the plans were prepared utilizing Civil 3D,image unfortunately the model is rubbish for extracting the information I’m interested. Essentially the model is just for the showing the top layer of the landfill.

There’s no modeling for the various layers that will make up the impervious layer of the landfill. No swale object to determine the length required to construct and no easy way to determine the differentiation between the perforated pipe and non-perforated pipes. Definitely not a BIM model.

During AU I was fed a constant stream of quotes regarding innovation and disruptive technology. Here are some of the quotes:

Jeff Kowalski, Chief Technology Officer, Autodesk

“The sea of complexity has waves of disruption. We can ride even the biggest wave if we have the right mind set and toolset.”

Carl Bass, President and Chief Executive Officer, Autodesk

“Tools are what amplify our ability.”

“Use infinite computing to achieve optimal designs.”

“Our tools allow you to translate your ideas into a computable model so that you can test how your design reacts and interacts with the environment.”

I think my problem is that I’ve bought into all of the quotes. I want to ride the wave of disruption. I want my computer tools to amplify my ability to design and construct and I want to put my ideas into a computable model. Unfortunately the tools Autodesk have provided for the Civil industry have failed to deliver on the marketing. I can’t ride the wave, since the wave sets aren’t coming in.

While some Land Desktop (LDD) users have been reluctant to move to Civil 3D, they are missing out on a better version of Land Desktop. Essentially Civil 3D is just a better version of LDD. The alignments are editable, there are tools to do our labeling better. Unfortunately the output of our designs are the same. For instance for surfaces, the surface contours are still the main design interaction of designers rather than modeling the project and extracting the contours from the model. The surface is made up of feature lines instead of a clay layer, impervious manmade liner and gravel around the perforated pipes.

During AU I was a lab instructor for Navisworks for executive level users of the product. The architectural models that were being used looked awesome, a far cry from the Civil 3D  models I’ve created in the past. A non-corridor based model comes in as on big green blob. It’s hard to differentiate between the pavement, curb and gutter, landscaping and the like. In the project from above not even the rip rap protection at the bottom of the downslope is modeled. Mainly because it’s hard to model. The tools just aren’t in Civil 3D.

Maybe I should start a company to develop such a product. I have the ideas, but I guess I’m lacking the capital to take the ideas from concept to reality. Until then I’ll be working on improving my experience with the product through customization.

Tuesday, November 29, 2011

3Dconnexion SpaceMouse Pro

Today 3Dconnexion announce a new product called SpaceMouse Pro. The product SpaceMouse Pro_Topfits in the same class of 3D mouse as the SpaceExplorer with some added improvements in ergonomics. The hand rest is full size and soft coated for comfort. The buttons for zoom have been rearranged and the keyboard keys for Esc, Shift, Enter and Ctrl have been made larger and at an easier reach to the hand on the 3D mouse. This should make it so you don’t have to use the keyboard as often with your left hand.

There are four buttons on the top are context sensitive to the open program (although I’m hoping they can be context sensitive to objects in Civil 3D). It also puts what the numbers do up on the monitor, so you know what each button does without looking down at the mouse. This lets you keep your eyes on the monitor while you design. The mouse still has the 3D Navigation with six degree of freedoms to allow easy navigation through a model. Another added benefit is new drivers with a virtual number pad. This allows you to keep your hands on your mice and enter numbers using the regular mouse.

For more information take a look at their website, if you are at Autodesk University this year stop by their booth to test drive it in person.

Wednesday, November 23, 2011

Insert Drawing as Block

The way I’ve found to insert a drawing into another drawing as a block takes a surprisingly lot of code. This function I’ve created takes a file name, inserts a block and returns the ObjectId of the newly inserted block.

    Private Function InsertDwgAsBlock(ByVal fileName As String) As ObjectId
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database

Using tr As Transaction = db.TransactionManager.StartTransaction
Dim blkTable As BlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForRead)

Dim blkTblRec As BlockTableRecord = blkTable(BlockTableRecord.ModelSpace).GetObject(OpenMode.ForWrite)
Dim blkObjId As ObjectId
Using dbInsert As New Database(False, True)
dbInsert.ReadDwgFile(fileName, IO.FileShare.Read, True, "")
blkObjId = db.Insert(Path.GetFileNameWithoutExtension(fileName), dbInsert, True)
End Using

Dim blkRef As New BlockReference(New Point3d(0, 0, 0), blkObjId)

tr.AddNewlyCreatedDBObject(blkRef, True)
Return blkRef.ObjectId
End Using
End Function

The code doesn’t show how to get the filename, but there are plenty of examples on the internet to accomplish the task.

Wednesday, November 16, 2011

Civil 3D Wish List

Want to have a voice on what wishes Autodesk should work on in future versions of Civil 3D? Then check out the AUGI Wish list for Civil 3D. Let your voice be heard.

Monday, November 14, 2011

2d to 3d Polyline

If you’ve ever received contours from a third party source you may find them without elevation. Civil 3D does have a tool to add elevations to them, unfortunately it only lets you select one polyline at a time and then type in the elevation. If you download, or install the UKIE Country Kit, the command is located in the Toolbox of the kit after you install it. The command lets you use a fence to assign the elevations for a range of contours.

You can download the country kit from this link:

There are also third party programs available if you don’t want to download the UKIE country kit.

Wednesday, November 09, 2011

Corridor Compute Materials

Sometimes I’ve found I’m working on a project using sections and find that the section I need hasn’t been created. I get confused because the drawing has the needed surface in it, but the section isn’t showing up in the list when I go to try to compute the materials. It usually happens when I deleted an old surface and then come want to use a new one. To sample the missing surface go into the Toolspace and right click on the Sample Line and choose the properties. Then go into the Sections Tab and press the Sample more sources… button. From the Selection Sources dialog box choose the available source and press the Add button. You can also remove all of the section from this dialog also.


Tuesday, November 08, 2011


Have you ever been working on a drawing and wanted to save it at the current point in time and still work in the current drawing? Well you can perform this task by copying the file using Windows Explorer, but it seems it would be a bit of work that isn’t needed if you knew about the SAVE command.

SAVE – Saves the current drawing in the same manner as Save As, but you are left in the original copy.

QSAVE – Quick save, saves the current drawing.

Now it seems a bit counterintuitive to use the SAVE command to create a copy of the current drawing, but that’s the way it works and I imagine it made sense at the time for the software developers. The QSAVE is the command used to simply save the current drawing.

Monday, November 07, 2011

Autodesk University 2011

After Thanksgiving I’m heading to Autodesk University. At the event I’ll be wearing a bunch of hats.

One of the ways I’ll be participating at Autodesk University (AU) will be as a speaker. I’ve got two sessions of Sanitary Musings, both on Wednesday. “In this unconference session, we will discuss sanitary sewer design using AutoCAD® Civil 3D®. We will evaluate the success of pipe rules; are they effective? We will talk about the best workflow for utility conflict resolution and share Label tips for communicating design intent. We will also talk about what to do when the proposed ends and the new begins. Finally, we will discuss how Boss StormNET® fits into the process.” There should be space available in one or both of the sessions. Now the session won’t be me presenting a lecture, but the audience members doing most of the talking with me facilitating the discussions. If you are planning on attending the session? Let me know I need some help from someone to take notes.

Another way I’ll  be participating is as an Exhibitor. Come by and meet during nearly all of the exhibit hours (I’ll be missing an hour due to a conflict with my Unconference sessions). Learn about all of the great services I can provide.

During AU I’ll also be checking out the media events and I’m sure a few meeting with other exhibitors. Some of the meetings may even end up as blog posts.

If you are also heading to Autodesk University stop by and say hi.

Select All Blocks in a Drawing

Occasionally I might want to get all of the blocks in a drawing using .NET. The way I accomplished this was to use the Selection Set sample code provided by Autodesk and then use the Typed value of “INSERT”. The insert is the start portion of the DxfCode for blocks.

    Private Sub GetBlockIdsBySelection()
'' Get the current document editor
Dim acDocEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
'' Create a TypedValue array to define the filter criteria
Dim acTypValAr(0) As TypedValue
acTypValAr.SetValue(New TypedValue(DxfCode.Start, "INSERT"), 0)
'' Assign the filter criteria to a SelectionFilter object
Dim acSelFtr As SelectionFilter = New SelectionFilter(acTypValAr)
'' Request for objects to be selected in the drawing area
Dim acSSPrompt As PromptSelectionResult
acSSPrompt = acDocEd.GetSelection(acSelFtr)
'' If the prompt status is OK, objects were selected
If acSSPrompt.Status = PromptStatus.OK Then
Dim acSSet As SelectionSet = acSSPrompt.Value
'Application.ShowAlertDialog("Number of objects selected: " & _
' acSSet.Count.ToString())
For Each objId As ObjectId In acSSet.GetObjectIds
End If

End Sub

m_BlockList is a collection of ObjectId’s that I use elsewhere in the code. I use a list so I can remove items from the list or add to it later. There isn’t much flexibility adding or removing items from a SelectionSet.

Thursday, November 03, 2011

Sundt - Construction Technologies

Here’s a video that was sent to me for Sundt’s presentation at the AASHTO Subcommittee on Construction Conference. Eric goes through how Sundt is using the available technology to make models for construction projects through the whole process.

Are you a contractor looking to add this capability to your arsenal of tools? Then contact me to get information on how I can help you implement this work flow.

Monday, October 31, 2011

Civil 3D Reminders Pack 2012

There are going to be some changes in the future regarding the Civil 3D Reminders Pack 2012 edition. Currently the 2012 program is available by request only. To request a copy send an email to me at the link to the right.

Or you can update the references from the 2011 source code and upgrade the pack yourself. A link is to the right.

Wednesday, October 26, 2011

Pipe Slope Label Precision

So here’s the scenario, you have submitted plans for  a sewer line (or profile) and a comment comes back that your pipe slope labels are wrong. You go through and check them and find out that you are getting the same results as the plan checker. You think Civil 3D is stupid it can’t even calculate pipe slopes correctly. Well the real problem is located between the chair on the plans on the plan checker side and between your chair and the computer on your end.

It seems somewhere along the way some of us forgot about significant figures. The basic concept of significant figures is that the resulting number can’t be more accurate than the least accurate number used in the calculation.


The problem usually comes up when the agency requires more significant figures in the slope label then in the Grade Break labels. In this above picture if we calculate the slope based on the grade break information:

(PVIE – PVIE)/(PVIS-PVIS) = slope

The best accuracy we can get from the slope would be -0.33%. If you do the math you will find calculating the slope based on the grade breaks is -0.3284746%. This number is obviously different than the slope Civil 3D is showing.

The only way we should be confirming the accuracy of the Civil 3D label is using this formula:

((PVIS-PVIS) x slope) +PVIE = PVIE

This way we are using the available values to ensure our results meet the requirements of the significant figures provided on the plans.

Once completing this explanation of the issue with the plan checker and they don’t agree. The only accurate solution is to increase the precision of the grade break labels. Creating a label to get the slope label to be correct may cause problems later on. Especially if the contractor builds the project off the slopes provided. For long lengths the ending PVIE will be incorrect value. 

Monday, October 24, 2011

Win a Trip to AU!

Boss won’t pay for you to go to Autodesk University? Then try getting 3DConnexion to pay for your way to AU. Click the image below to enter to win.


Why am I blatantly plugging a 3DConnexion promotion? Because in the past they have provided product for me to conduct product reviews and giveaways to you my readers. They also provided me a great lunch and a sit down with the CEO to check out the latest features of the product at last years AU and yes this is a Government mandated disclaimer.

How to reduce Parcel Area precision to less than 1

Sometimes when you are doing conceptual work you may want convey less accuracy in a parcel label. For instance maybe you want to show the value to the nearest 100 SF of area. This is quite easy to accomplish with expressions.

First create the expression. Next use a formula that will calculate the precision that you are looking for. The expression would be similar to this:


Replace the Area with the expression property. The expression is finding what the hundreds value should be by rounding the area of the parcel by 100. Next we want the area to be the correct value so we multiply 100 to the result to get the correct magnitude of the area value. Make sure to set the expression type to Area to get all of the text component values you are used to.

Got an expression problem you want solved? Send me an email to get a quote on an expression to solve your challenge.

Wednesday, October 19, 2011

Curb Ramps

One of my recent projects was designing some curb ramps. I was quickly affirmed of my belief that Civil 3D is not a BIM software product. Take a look at the image below.


It’s a Caltrans Type F curb ramp, well not really it’s a bunch of feature lines and a Civil 3D surfaces (EG & FG). Can you tell where the curb ends and the asphalt begins? I can’t. Can you tell me what material is between the curb return and the handicap ramp? I can’t. Can you tell that I’m using both curb and gutter and asphalt dike? I can’t.

I don’t know about you but, I’d expect a BIM product to do the basics, like letting you design curbs that are actually curb objects. Feature Lines are an extremely poor substitute for a modeling curbs and curb ramps. I would expect a real BIM Civil software product to allow me to model my design and then let me see the differences of the various materials involved.

If I had a curb object then I could label the curb instead of labeling a surface. In labeling a surface I’m prone to making errors, such as labeling the wrong point on the surface. Whoops did I just label the flowline as the Top of Curb? Yep.

Design changes anyone? Forget it with the current process. What you want to move the curb ramp 90 degrees ? Guess what I’m starting nearly from scratch because of the lack of BIM capabilities of Civil 3D.

Maybe someday Autodesk will have a Civil BIM product, but it definitely isn’t today.

(Note: Most of the rant is extremely affected from sitting through Autodesk Marketing events. Seeing what the architects can do with their products that are BIM provide a vary stark difference.)

Monday, October 10, 2011

vb.NET Insert Block and Attributes

To insert a block into AutoCAD using .NET you may also need to insert the attributes of the block after you insert the block into the drawing. Unlike in VBA, you have to insert the attributes also, they don’t come along for the ride. Below is the code to insert the block into a drawing in the current space.

    Public Function InsertBlock(ByVal blkName As String, ByVal insPt As Point3d, ByVal xBlkScale As Double, _
ByVal yBlkScale As Double, ByVal zBlkScale As Double, ByVal ang As Double) As ObjectId
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim db As Database = doc.Database

Using tr As Transaction = db.TransactionManager.StartTransaction
Dim blkTable As BlockTable = tr.GetObject(db.BlockTableId, OpenMode.ForRead)
Dim blkObjId As ObjectId = GetBlkRefObjIdByName(blkName)

Dim blkRef As BlockReference = New BlockReference(insPt, blkObjId)
blkRef.ScaleFactors = New Scale3d(xBlkScale, yBlkScale, zBlkScale)
blkRef.Rotation = ang

Dim blkTblRec As BlockTableRecord
' Assumes the current space was already changed to.
blkTblRec = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite)

tr.AddNewlyCreatedDBObject(blkRef, True)

' add the attribute definitions.
Dim blkTblR As BlockTableRecord = blkObjId.GetObject(OpenMode.ForRead)
For Each objId As ObjectId In blkTblR
Dim obj As DBObject = objId.GetObject(OpenMode.ForRead)
If TypeOf obj Is AttributeDefinition Then
Dim ad As AttributeDefinition = objId.GetObject(OpenMode.ForRead)
Dim ar As AttributeReference = New AttributeReference()
ar.SetAttributeFromBlock(ad, blkRef.BlockTransform)
ar.Position = ad.Position.TransformBy(blkRef.BlockTransform)
tr.AddNewlyCreatedDBObject(ar, True)
End If

Return blkRef.ObjectId
End Using

End Function

Thursday, September 29, 2011

School Fundraiser–Order Here

It’s that time of the year for school fundraisers. My daughter’s school has chosen the Innisbrook as the service provider for the fundraiser. If you wish to support her quest to collect prizes (she is in 1st grade); order some stuff using the information below. They are offering a plethora of stuff including wrapping paper, make-up, chocolate, magazines, gift bags, tumblers, things for girls on the go, candles, bottle stopper’s, cookies, measuring spoons, brownies, spices, nuts, ribbon, lotion, body wash, birthday cards, brain games, final touches, and more…

Here is the form letter from the fundraiser provider:

My school's annual fundraiser with Innisbrook has begun.  Innisbrook Wraps has beautifully designed gift wrap printed on quality recycled paper, coordinating gift wrap accessories, gourmet foods and fine Helen Grace Chocolates that make great gifts, Time Inc. magazine subscriptions, and more.

For every item that is purchased, Innisbrook donates up to 40% of the purchase price to my school.  I also earn a prize credit for every item purchased.  The more prize credits I earn, the more prizes I win!

Please consider visiting the Innisbrook website and making a purchase on my behalf.  A link is included below. Our sale will be over soon, so don't wait. Place your order today.

Thanks for your help!
Seller: SEDONA  Seller ID#  R285148G
School Number:  102730
Click this link below to visit the site and they will recognize me and my school automatically.
If the above link does not work:
  1.  Click below
  2.  Select Shop the Innisbrook Online Store
  3.  Enter School# 102730 and Select Go
  4.  Select Continue
  5.  Enter Seller ID#  R285148G

Here’s my daughter’s pleading for the opportunity to earn prizes:

Please buy this stuff. They have ones with almonds in it. There is one’s with just chocolate, there are ones with chocolate and blue squirrely lines on them. Daddy I don’t know what those are. And on the top and the inside. Chocolate with funny shapes with nuts or something. A mint I think. Something with yellow stripe, but I don’t know what the filling is. (she then read the description reluctantly and determined they are lemon filled). And then theirs something sprinkled on it, and a filling that I don’t know what is (couldn’t read the description). Chocolate things with pretty diamonds on them. And then I don’t know what these things are, I can’t read the first one. And then I have to turn the page and there are these things.

Definitely a shorter request, we’re going to have to work on her selling skills.

Curb Attachment Points and Flip

So you want to create a curb in Subassembly Composer and let it have multiple attachment points. One way I’ve done it is to create a variable called Flip. The Flip variable will let me adjust the X offset direction. I use the enumeration of this previous post to get the placement the user wants. I then use the enumeration to determine if the Flip value should be positive or negative. I then multiply the X offset value by Flip. This will provide me a way to mirror the curb that I’m creating easily. So I don’t have to build the curb twice depending on the enumeration.

To get the curb in the correct location I use variables called dX and dY. I then use the enumeration again to determine what the dX and dY values should be. I then create my P1 using those values. If it’s the lip of the gutter then I can set dX and dY equal to 0. If it’s back of curb, then I put in the appropriate values to get P1 in the correct location to get the back of curb at the origin when the curb is built in the subassembly composer.

Want an example of how this is done? Then purchase the Caltrans A87A Curbs subassembly from the Civil Reminders App store. It will also show how you can combine all of the curbs and gutters from one agency into one as well as show how the dX, dY and Flip work.

Wednesday, September 28, 2011

Point List Report

So you go to create a report using the Toolbox and the Point List Civil 3D puts out isn’t in order. Well it is in order, the order created, but you want them to be in a more logical numerical order. What to do? Well if you were me you’d do this.

Open the file that controls the report in Notepad (or other text editor), in this case it’s:

C:\ProgramData\Autodesk\C3D 2011\enu\Data\Reports\xsl\pointlist.xsl

Next we need to tell the report to sort the list before it process the points. For this report the location is right below this line:

<xsl:for-each select="//lx:CgPoint[not(@pntRef)]">

A quick internet search for xsl and sort, gives us the information we want. To sort the list we need to add these lines under the above line:

<xsl:sort select="@name"

The report will now run with the point list in order. If we want the list sorted by another field, then change @name to the desired field.


Want to add more information to the report? I can provide services to do just that. Contact me at the email on this page near the top right for more information.

Tuesday, September 20, 2011

SAC-Report Message

When your creating your subassembly in Subassembly Composer you may want to convey to the user imagewhen something went wrong. For instance if the math doesn’t work when modeling your retaining wall and the given design height is less than the modeled dimension height. To send a message utilize the Report Message found under Miscellaneous on the Tool Box.


Fill in the Message for the error. Next provide the level of the warning. There is Error where what went wrong was disastrous, Warning where  something went wrong but was recoverable, and finally Informational where you are just annoying the user with the event viewer.

Wednesday, September 14, 2011

SAC-Output Parameters

When creating a subassembly using Subassembly Composer the hardest intellectual thing is knowing if I should use Output Parameters. It’s not hard in creating them, it’s hard in knowing if another subassembly that you have or haven’t thought of yet will need a value from your subassembly. An output parameter essentially lets you provide information of your subassembly to another subassembly other than the point of attachment. For instance you could provide a slope of the roadway pavement as an output parameter. This might be handy if you wanted to match slopes with a subassembly that does not support superelevation.

To use the output parameters in another subassembly you have to set them from the subassembly properties dialog. Select the parameter you want controlled and then you should be able to select an output parameter of a subassembly within the currently attached Assembly.

Friday, September 02, 2011

GE Power and Water

You never know who you are going to meet when you are out and about. I was recently at a crowded Starbucks and met a representative of GE Power and Water, Kevin Crockford. Kevin was kind enough to let me ask him a few questions for my blog.

ThermoPleat High Temperature Filter Elements
Filter Elements Source: GE

Q1: Many software companies (Bentley, Autodesk) are currently promoting Building Information Modeling (BIM) as part of their products. Does GE Water facilitate the inclusion of GE Water products into the design software? 

A1: To my knowledge, GE does not include our water products into design software.  Water treatment presents a unique process design and equipment selection challenge since the raw water to be treated can vary considerably from one location to the next.  If one assumes the client is starting with US EPA safe drinking water, you can more broadly apply an silver impregnated point of use activated carbon adsorption device for the removal of chlorine and residual amounts of soluble organics and an ultrafiltration membrane for fine particulate removal.

Q2: What type of cost savings can an water purveyor expect to save by using a single source for equipment, components and technical services? 

A2: The range of cost savings will vary depending on the size, complexity  of the treatment system required and volume.  I estimate a water purveyor could save anywhere from 10%- 20% by using a single source for equipment, components and technical services for CAPEX and another 10%-20% for OPEX over the useful life of the equipment.   On industrial water treatment systems I estimate the customer could save 10%-15% on the total installed cost of the system by using pre-engineered process equipment components and eliminating the competitive bid specification process.

Q3: Is the purification process of water more or less complicated then concentrating valuable products or materials. 

A3: Due to varying raw water quality, I would suspect the process of treating water to be more complicated.

ZeeWeed Source: GE

Q4: What’s the largest installation of GE water equipment in the world? 

A4: In terms of volume, our ZeeWeed  immersed hollow fiber ultrafiltration membrane technology  is used in drinking water treatment plants (e.g. San Diego, Toronto) with an average volume of  100 – 110 million gallons per day (MGD).  The largest municipal wastewater treatment application is 36 MGD in the state of Washington. 

For the designers of water and wastewater systems it would be beneficial for the inclusion of equipment process within the design process. After working on a wastewater treatment facility design and seeing all of the duplicated work that was required a single stream workflow would definitely provide efficiency. I guess the question would be how would manufacturers benefit from including their products in design software. The manufacturer’s would miss out on being able to interact with engineers and not really be given an opportunity to distinguish their system from their competitors. We’ll see how it shapes up in coming years.

Wednesday, August 31, 2011

Curbs–Caltrans A87A Curbs Subassembly

Today Civil Reminders is announcing the release of a new Caltrans Curbs Subassembly. The Subassemblyimage released today is the Caltrans A87A Subassembly. The subassembly may be used to facilitate accurate designs based on the Caltrans Standard Plan. The subassembly utilizes the dimensions of the Standard Plan so you don’t have to type them in.

More information on the subassembly may be found on it’s help page and on the Civil Reminders Apps page.

Did you find your way here through Google and didn’t see the subassembly you were looking for? If so send me an email and we can discuss getting your subassembly added to the Civil Reminders Apps Store.

Monday, August 29, 2011

SAC-Combining Strings

Sometimes when building subassemblies you may want to use a conditional statement to determine what codes should be used. For instance I'm currently creating a subassembly to model both the curb and sidewalk as one subassembly. Now I don’t want to duplicate points, since more points means more work by Civil 3D, I want one point to be labeled with the correct point codes.


For this case if just the curb is to be built I want the point code to be “Back”; if there is sidewalk to go along with it I want the point codes to be “Back,Sidewalk_In”. To accomplish this task I use a “&” to join the string values.


Pt_SWIn is a defined variable with the Type of String. So now I’m able to have one point and assign the appropriate point codes. Make sure you utilize a Define Variable to combine the string, using this method in the Point Codes place will not work.

Friday, August 26, 2011

Hot Mix Asphalt Dikes–Caltrans A87B Types A,C,D,E,&F

Today Civil Reminders is announcing the release of a new Caltrans Hot Mix Asphalt Subassembly. The Subassembly released today is the Caltrans A87B Subassembly. The subassembly may be used to facilitateimage_thumb accurate designs based on the Caltrans Standard Plan. The subassembly utilizes the dimensions of the Standard Plan so you don’t have to type them in.

More information on the subassembly may be found on it’s help page and on the Civil Reminders Apps page.

Did you find your way here through Google and didn’t see the subassembly you were looking for? If so send me an email and we can discuss getting your subassembly added to the Civil Reminders Apps Store.

SAC–Left or Right?

So you’ve created you first subassembly and imported it into Civil 3D. You notice something wrong in AutoCAD Properties in that there is no Side Option. You look in Subassembly Composer and see it in the Input/Output Parameters list, so shouldn’t it show up in Civil 3D?

Well I wish it did, but in order to get the Left/Right option to show up you must give it a default value other then None.


Retaining Wall–Caltrans B3-3 (Type 1A)

Today Civil Reminders is announcing the release of a new Caltrans Retaining Wall Subassembly. The Subassembly released today is the Caltrans B3-3 (Type 1A) Subassembly. The subassembly may be used to facilitate B3-3BackFacingaccurate designs based on the Caltrans Standard Plan. The subassembly utilizes the dimensions of the Standard Plan so you don’t have to type them in.

In addition the subassembly utilizes a profile for Design Wall Height to provide the ability to control the design wall height using a profile, eliminating the hassle of multiple regions with an out of the box subassembly.

More information on the subassembly may be found on it’s help page and on the Civil Reminders Apps page.

Did you find your way here through Google and didn’t see the subassembly you were looking for? If so send me an email and we can discuss getting your subassembly added to the Civil Reminders Apps Store.

Thursday, August 25, 2011


As of this post date, if you download the Enumeration Example on Autodesk’s WikiHelp page you will find that it doesn’t work when used in Civil 3D. It does show correctly in the Subassembly Composer (SAC). Unfortunately Civil 3D is unable to convert the enumeration value to a string when used in a decision or switch. To overcome this deficiency a variable needs to defined that converts the value and then use the value in the switch or decision.

To create a variable use the Define Variable under Miscellaneous in SAC.


Next use a series of If/Then statements to convert the enumeration to string values.


Then change the switch value from what it was to the new variable name, in this case BarrierTypeString.

Now the subassembly will behave as expected.

Wednesday, August 24, 2011

Can the same point be in multiple point groups?

A Civil 3D Point can be in multiple point groups. It can be in each of the point groups contained with in a drawing. All Civil 3D points belong to the _All Points Point Group.

Now when you start using Civil 3D you may be confused on how Civil 3D decides on how the point style and point label should be displayed. If left to it’s own devices the Point will be displayed based on the settings contained in _All Points. As additional point groups are added to the drawing and said point gets added to other point groups, the point decides how to get shown by the Point Group priority list. The Point Group Priority list may be found by right clicking on Point Groups in Prospector. The dialog box that comes up lets you rearrange winning point group.


This provides some power in that you can turn on and off points (and labels) from showing in the drawing by adjusting the position of the point group. You can also override this ability by modifying the Point’s style or label style in AutoCAD Properties.

Friday, August 19, 2011

Stanford University - CIFE

I recently bartered with a research project at Stanford’s Center for Integrated Facility Engineering (CIFE) for a Caltrans B3-1 (Type 1) Retaining Wall subassembly. In exchange for the subassembly I’d get a tour of the CIFE facility.

”The CIFE mission is to be the world's premier academic research center for Virtual Design and Construction of Architecture - Engineering - Construction (AEC) industry projects ... to support exceptionally reliable engineering and management practices to plan, design, construct and operate sustainable facilities.”

The research project the subassembly is going to be used on is a study of using a model based approach in the heavy construction domain. The project the study is using is the West Merced Overhead Project on State Route 99, the link points to a Wiki page providing information regarding the study.100_1506

Walking around Stanford University is an interesting experience compared to my experiences attending a state University. For one there wasn’t a large ornate church in the middle of the campus. Based on the ornate artwork and fancy roof structure, you can tell Mr. Stanford was a very rich and generous person to establish the University. The more modern buildings have familiar names of William Gates, Jerry Yang, and NVIDIA.100_1511

Forest Peterson, a Research Assistant, headed the tour with my wife, two daughters and Forest’s daughter. We checked out the a new construction project adjacent to the CIFE building. While the two older children seamed interested in watching the construction equipment move around some aggregate the younger was complaining of the mild heat. The company doing the work is owned by Mr. Bill Gates (not affiliated with Microsoft) and is called Top Grade Construction. Though I think some people on campus do think the more famous Bill Gates owns the company, though I can see the confusion.

After 100_1512checking out the construction site we went over to the Mechanical Engineering building. At the bottom floor they had Google’s first server. It has been rumored that it was decorated with Lego’s, but I after seeing it in person the rumors are not true. The blocks decorating the server actually are DUPLO type blocks. It has a nice new case compared to the old display case.

Later in the afternoon we met with representatives of Synchro and a member of McCarthy. Since Synchro is a 4D scheduling company the topic of discussion was scheduling, 3D modeling and how they are used in the construction industry. It was interesting to hear perspectives from people in the construction industry and how hard it is for the new software tools to become accepted in industry.

Instead of using BIM it sounded more favorable to use Virtual Design and Construction (VDC) to describe the process of modeling before actually performing the construction. The topics of 4D scheduling focused on being able to visualize a schedule and by using Syncro’s products it’s possible to not only visualize the project through the schedule, but also assign other attributes to the schedule to analyze projects to include funding, energy use or impacts to others. I look forward to trying out a 10 day trial of the software to see how it can use Civil 3D models.

While 100_1507we were discussing the scheduling topics the younger members of the tour were busy playing with the interactive smart boards lining the room. They thoroughly enjoyed drawing on them.

The McCarthy member explained how he is using laser scanning, Civil 3D and Revit to verify the geometry during construction. As the building is being constructed the steel members are scanned and checked against the model. The floors are also scanned before and after concrete is poured. After scanning the data is brought into Civil 3D so a surface may be created to see the high/low points in the surface. The concrete surface then can be analyzed for potential problems before flooring materials are applied. Low or high points can be fixed.

The tour was great, I got to meet some interesting and knowledgeable people. If invited back, I’d definitely take them up on the offer.

Stanford University–Manhole Cover

Just a manhole cover from Stanford University. You can tell they have lots of money by the elaborateness of the design. These don’t look cheap.


AUGI Salary Survey

The AUGI Salary Survey is almost closed (tonight is the deadline). If you haven’t already take the survey. More information may be found here.

Thursday, August 18, 2011


If you want to recreate the LinkToSlope subassembly using the Subassembly Composer, then you may need this Expression:


The expression uses SuperSource which is the name of an Input Parameter using the Superelevation Enumeration. Use the expression either in the creation of a point or create a variable that is the grade to be used. There may be a better way, but as far as I can tell you can’t specify the input parameter of Superelevation to override the slope.

Wednesday, August 17, 2011

SAC–Midpoint Between Two Points

In Subassembly Composer you may want to find the midpoint between two points (or a fraction thereof).


To do this use the Interpolate Point option of the Point Geometry Type. Then input the Interpolate Parameter to be what ever value you want, in this case 0.5.


You can also use a formula in the Interpolate Parameter. I haven’t come across an instance where this would be useful, but I’m sure if I continue to develop subassemblies I will.

Don’t want to deal with this stuff? Then let me do it for you by creating a custom subassembly to meet your needs! Contact information near the top right of this page.

Tuesday, August 09, 2011

Orlando, FL Visit

I’m heading to Orlando next month to watch the NASA’s GRAIL Mission launch from Kennedy Space Center. I’ll be showing up a few days earlier. If you are in the Orlando area and want to meet up for coffee or lunch leave a comment or send me an email.

During and after the event there will be blog posts about it on my other blog if you are interested in learning more about both the Grail mission and other NASA projects.

Subassembly Composer–Attachment Point

I’ve decided to post here instead of the Autodesk Wiki, at this point I’m not really seeing any benefit to posting information over there.

Due to the poor information contained in the Autodesk Wiki for Subassembly Composer I recently got a question on how to create an attachment point for the subassemblies created with Subassembly Composer.

The first step is to Define Enumeration. To do this go up to the View Menu and choose Define Enumeration. Create an Enum Group and then within that Enum Group create Enum Items. In this case I’ve created the InsertionPoint Enum Group containing the GutterEdge and BackOfCurb Enum items.


Now that you’ve created the Enum Group you can add an Input Parameter using the group created above. Please note that the Name of the parameter needs to be different then the Enum Group.


Now in your code you can use either a Decision or Switch to determine what attachment point needs to be used.


In the above code I’m specifying a point to go to.

Autodesk Infrastructure Modeler 2012 and AutoCAD Utility Design 2012

Today Autodesk announced the availability of the Autodesk Infrastructure Modeler (AIM) and AutoCAD Utility Design software products. AIM is formerly Project Galieleo and before that LandXplorer.

The Autodesk Infrastructure Modeler is really a planning tool. A tool to make it easier to model the existing data whether it be GIS, Lidar or other data with the new conceptual designs for the project. It provides an easier way to provide visualization of projects for the stakeholders who are not familiar with infrastructure methodologies.  Autodesk promises being able to create a 3D model of an entire city quickly (as long as you have the data).


There seems to be a need for infrastructure as evidenced by all these headlines.


Autodesk sees this technology fitting between and in the Plan and Design of the project loop of a project.


The current workflow is clumsy (isn’t that what we’ve been saying?). The product helps create, evaluate and communicate alternatives.




I’m not quite sure the value of the product in going from Planning to Design. It doesn’t seem to provide any direct link of the models. It doesn’t look like you can import the model and have a corridor with associated alignments, profiles and assemblies. It appears you get to start over with the design with only the location of the alignment.

AutoCAD Utility Design 2012

This product looks promising for electrical engineers in doing the off site electrical design. I didn’t see much evidence in the presentation that it did anything other than electrical work, which to me doesn’t reflect in the name what it does. Maybe in the future they will provide other types of utility design in the product.

The product provides the tools to do the electrical design including the ability to calculate voltage drop and size transformers. The design is rule based.









Monday, August 08, 2011

Retaining Wall–Caltrans B3-1 (Type 1)

I’ve been having fun with the Subassembly Composer recently and have created a Retaining Wall using the parameters of the Standard Plan B3-1.

Once you figure out how to use the various options it’s not that bad to use. Here are a few of the things I’ve learned:

If what you are using looks like this:


imageUse a sequence instead to make moving them around easier. You can drag and drop the items and rearrange them a lot easier then having to worry about moving the arrows.

If you want a target to be conditional, use a Decision and check to see if it is valid. If it is valid then I use the value specified, if it is not then I use a default value. This is useful if you want to see something instead of the subassembly going quitting on you.


I’ve also learned the Wiki help for the Subassembly Composer isn’t very good. I’ve added some to it so you don’t have to download a pkt file to see how to use something, but I didn’t too much. I’m conflicted if I should add it there and not get anything in return or post here and have a chance you will click an ad and provide some revenue for the site.

If you want a copy of the packet file for the Retaining wall, information on purchasing it may be found here on the Civil Reminders App Page.


Blog Widget by LinkWithin