Tuesday, July 19, 2016

April Fool’s Day

Unfortunately, or fortunately depending on your opinion of the day, I missed doing an April 1st day post this year. Well to make up for it I’m going to show how you can prank your coworkers next April 1. The first thing to do is install Infraworks on their computer. Then teach them how to do expressions.

Well that’s not the entire prank, only the first part of it. Before you teach them how to use expressions go into their computer and find the appropriate language folder. For US English it is:

C:\Program Files\Autodesk\InfraWorks 360\en-US

Then open up the  ExpressionEditorTooltips.json in your favorite text editor. Then go through and change any of the descriptions to funny work appropriate phrases.


The next time they open up Infraworks the phrase will show up in the expression editor when they hover over the words associated in the json file. Have fun!


Saturday, July 16, 2016

Subassembly Composer SurfaceOffset Target

Sometimes we want to know where a point above a surface might be located. Something like what’s in this idea. While I haven’t tried this in a drawing, this method might work to replicate it.

First create an Auxiliary Surface Link.


In the properties set the Start X and End X distances to an expected design area width. I’d use 0 to 50 ft if my right of way was 50’ wide. In the image below I’m using two points to determine the X distances to use. Also set the Depth to the required value. This will adjust the link to be above (negative) or below the surface and create a link that follows the surface above or below the surface at the specified distances.


Then create your other links as necessary. Remember you can use Intersection Points to find the intersection between the Auxiliary Surface Link and your design.


I haven’t tried to run this in a drawing, but I suspect it should work. Here is a link to an SAC packet with the properties shown in this post.

Wednesday, July 13, 2016

Creating Formulas for SAC

When creating formulas for Subassembly Composer (SAC) it can get confusing on how you want to set up checks and even look up values. For instance you may want to grab a value from a table to determine the dimensions to use. Recently I’ve started using Excel to help me grab the appropriate values.

I start by creating an enumeration, under the view tab in SAC, and add an item for each case. If I have a complex table I will use the CONCATENATE option to join the strings together.


The formula for the enumName is:


Then I can copy and paste the value from Excel into SAC without having to think too hard.

Then I can build If/Then statements to grab the appropriate value from the table of data.


So the formula for the various item looks like this:


The CHAR(13) is a carriage return so once in SAC everything is formatted nicely.

The IF/Then values are then combined in another cell, something like this:


No I can easily build expressions to find values from a table in SAC.


Wednesday, June 01, 2016

Convert 3DPolyline Elevations to Surface Plus Height

So lets say you get some 3D Polylines with an elevation value of a pole height, so lets say around 6’, but not constant. You want to then take the 3D Polylines and then create duplicate 3D Polylines with elevation of a surface plus the elevation of the varying 3D Polyline. If the 3D Polylines had a constant elevation it would be easy to just project to surface and then move the 3D Polylines up the required distance. If the elevations are variable it makes it a harder program to solve.

First of my preference would be to solve this through programming an app, which wouldn’t be too difficult. But in this case I don’t have the 3 or 4 hours required to create the program. So in this case I’m going to do this just using Civil 3D surfaces and 3D Polylines.

The first step is to create a 3D Polyline at 0 elevation that encompasses the entire project area. This will then be used in a surface that I’m going to call Zero. In the drawing I’ll also have an EG-100 Elev surface with a 3D Polyline set to an elevation of 100, so I can check the elevations easily.

No take the 3D Polylines with pole heights and add it to a new surface. I’m calling mine Orig3DPolys. Now this surface has the wrong elevation that I need to do the math on. In order to the elevations I need to create a volume surface and compare it to the Zero surface. This will convert my elevations from positive to negative (and from negative to positive if required). I’m going to call it Orig3DPolysInverse.

Now I need to add this volume surface to a TIN surface by pasting it in. I’m calling this surface Orig3DPolysInverse-ToTIN. This will allow me to then create a new volume surface since you can’t directly use a volume surface in another volume surface.

I can then create another volume surface to get the elevation difference between the Orig3DPolysInverse to the EG-100 Elev surface. This will give me the surface plus the height of the EG surface. I’m going to call it New3DPolys. I can then add in some surface labels to check my math and I can see everything works out well.


The last step is to project the copy of the original 3D Polylines to the New3DPolys surface.

Here is a picture of my surfaces:


Here is a link to the file if you want to double check my steps:


Blog Widget by LinkWithin