AU Class
AU Class
class - AU

Using Automation in Civil 3D for Construction Documentation and Exports

Share this class

Description

Delivering a highway project is becoming time consuming, as we are now required to provide more information. Efficiently providing 3D models with asset tags with rich metadata is the key. In this class, you will learn how to capitalize on automation in your Civil 3D models and add customized asset information tags using Property Sets. Learn efficient workflows for developing corridor models, as well as adopting intelligent tools to improve production of detailed model elements, such as 3D road features. Here's a link to the dataset: https://autode.sk/2QNWVGv (May need to copy/paste)

Key Learnings

  • Learn how to capitalize on Country Kit automation tools to assist in detailed modeling and drawing production
  • Learn how to effectively use Property Sets to manage asset tagging
  • Learn how to use automation (.NET and VBScript) to develop and assign asset tags based on model data
  • Learn how to create efficient workflows when building Civil 3D models to include owner asset data

Speakers

  • Avatar for Jowenn Lua
    Jowenn Lua
    Autodesk Expert Elite Alumni | 2016 Autodesk Gunslinger Syndey, Australia | 2018 Civil Infrastructure Inside the Factory Potsdam, Germany | 2020 Land Development Inside the Factory New Hampshire, USA | Jowenn is an Principal Implementation Consultant at Autodesk. He holds a B.S. Civil Engineering degree from De La Salle University and MBA degree from Ateneo De Manila University. He has over 20 years industry experience in design and construction. He is highly skilled in Civil 3D, Dynamo and Subassembly composer. He provides technical workflow solutions, mentoring and support. Major projects he handled previously includes Sydney Metro TSE, SVC and OTS, Ballina Bypass (Pacific Highway), Brisbane Airport Link Northern Busway Tender Design, Gerringong Upgrade (Princess Highway) and Rozelle Interchange (WestConnex).
  • Avatar for Andrew Milford
    Andrew Milford
    Andrew Milford is a Senior Implementation Consultant for Autodesk and is responsible for post-sales technical and business consulting to ensure customers achieve successful adoption of Autodesk's Infrastructure Solutions across the Asia/Pacific region. Prior to joining Autodesk, Andrew gained over 25 years of design experience in the civil infrastructure industry, working as a geometric road designer for large consulting companies such as SKM/Jacobs, Arcadis, and AECOM. Andrew’s experience extends from designing large highways, tunnels, and interchanges down to smaller subdivision work using a variety of different design and drafting software packages. He is an AutoCAD Civil 3D Certified Professional and loves diving deep into AutoCAD Civil 3D software to develop and automate processes through scripts, AutoLISP , .NET API (C# and VB) and Python
Video Player is loading.
Current Time 0:00
Duration 1:04:23
Loaded: 0.26%
Stream Type LIVE
Remaining Time 1:04:23
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
Transcript

JOWENN LUA: Good afternoon, everyone. Welcome to Using Automation in Civil 3D for Construction, Documentation, and Export. My name is Jowenn Lua. I'm a senior civil designer from Arcadis and I've been Civil 3D for the past 10 years. And in those 10 years, I've seen the software evolve. It became more efficient and it became very flexible.

I remember the time when I needed to create a complex corridor, then sub assembly composer came to the rescue. Now with the help of COM API and that .NET API, we can create our own customization to make things faster. So this class, we will show you how we think outside the box in providing asset data to our client. Here's my co-presenter, Andrew Milford.

ANDREW MILFORD: Good afternoon, everyone. Yes, my names Andrew Milford. I'm an implementation consultant for Autodesk where I've been working here for the last 4 and 1/2 years. Prior to that, I've spent about 25 years in industry as a roads and highways engineer, working for companies such as AECOM Arcadis, and Jacobs just to name a few.

And I guess today, we're going to be looking at four key topics and objectives. We're going to first of all look at how to capitalize on our Country Kit automation. We're going to focus specifically on the ANZ kit which has a few new tools that we introduced this year.

We're going to learn to create some efficient workflows in Civil 3D around, I guess, naming conventions, and importantly around shape codes so that when we come to the third exercise, effectively using Property Sets, it's going to enable us to manage asset tagging. So we're trying to aiming to get unique asset codes for every single element inside our corridor model. And lastly, we're going to look a little bit about automation and how we can actually apply some more smarts to our property set data to assign asset tags en masse. So with that, we'll get into the presentation, and I'll head back over to Jowenn.

JOWENN LUA: OK. So what to expect? So we're going to talk about Section Label Tools and we're going to talk about Barrier Tools. We're going to highlight key features and tips on how to use them. We'll also demonstrate how to use the five stages of Property Set in managing our asset tagging. And as a bonus, we also provided an 80 page detailed handout.

So if you check your download, you got 80 pages detailed handout. So let's start. So I'd like to introduce the ANZ Country Kit automation tool. So where to get the Country Kit? So it's downloadable to Autodesk Knowledge Network and that's the link. If you download and install them, you'll have the civil Australia, New Zealand shortcut.

And where to find the tool? So you can access it via Toolbox-- so here. You can see that if you go to that side, you can access via Toolbox or you can access it via NETLOAD command. So by default, if you install your ANZ Country Kit, you'll have this folder and you'll have these DLLs. So that's the automation that we created.

And for this class, I'm using the following version. As we know, as we progress, we will build more versions and it will improve. So for this class, this is the version I'm using. So let's start with export for construction. So the concept evolved from a UK, i.e. Country Kit where they have this function to export corridor feature line.

With the export for construction ANZ, we add new functionality that we can export from a corridor feature line and also site feature line because, sometimes, you create a manual feature that you want to export as well. And since we're trying to automate a lot, rather than giving a 3D [INAUDIBLE] we also give a functionality to export a 2D in one go. So I've created a bunch of screencasts, so you could watch it and see the detail later on, but I'm trying to cut short the time so that we will see as much as we can.

So let's start with this one. So how do you use export for construction? So in this demo, I created a sample corridor. And if you go to corridor properties, you can see that in the feature line, you will have so many point code-- whether it's a top or subgrid of point code, you have lots of them.

And if you go to site feature line, I created here project boundary. And here, I created a BD1 and BD2, so two features which is that one and that one. And if you go to Toolbox, which is on the right, and you click Export for Construction ANZ, you'll have this option-- then you can choose between a corridor or all the corridors.

So let's say you want to pick all the corridors and all the feature point code that you can use. So let's say you pick Crown, Daylight-- so every feature that you want to output. And then for the site, you pick all the sites that you want. You can ignore everything that is not required. So let's say I want BD1 and BD2.

You give it a name and DWG, and then you save in a new drawing, and then export to the drawing. And if you click this one, it will process and then you'll have an output which is that 3D and 2D. So that's basically the export for construction. So now let's go to section view label. So this tool can annotate a user defined point code and it allows staggering. That's something that's been requested all the time in the forum-- staggering.

And so let's compare cross section labeling capability-- so this is the history of why we're doing this. So for the traditional cross section you got no feature code in the band and they're mostly relying on the surface, because the design surface, existing surface, they're all relying on weeding. So if I created via corridor and then I export a surface and that surface is not good, then your output here is not good as well.

So it's heavily dependent on surface, so we created this hybrid version which is cross section from a corridor. This time, we are using the point code of the corridor which is the exact value. You're actually getting the correct one-- you're not relying on surface anymore, but our existing ground is still dependent on weeding because we cannot incorporate that one.

Also since we're using this method, we are using marker anchor point. And if you attach it via Section View button, which is here, it will not allow you to auto-stagger. So again, you'll find some of your overlapping text, so you'll run a script to separate them or use the API, which this one ticks all the box.

When we use this one, all the feature lines of that corridor is actually displayed here. So the feature line code which is your point code-- your design-- and then your existing surface is actually picking the surface level, but using the point code to auto-stagger. So that's the trick we did here. And one more good thing with this one is if you're using the traditional surface method-- [INAUDIBLE] this is surface all the way there, and then this is another surface. You can not have a thin surface on top of each other-- it won't work, but this one can.

Because it's controlled by point code, you could label them as much as you want. You can customize-- it's so flexible. So quick demo. So how to use the section view label? So this tool needs customization before you can use it. So things to remember. So if you go to these notes, measurement system variable needs to be set to 0 if it's imperial-- it needs to be set to 1 if it's metric. So this demo, I'm using metric, so I'm making my measurement set to 1.

And then second thing is you need to-- your existing ground needs to have the name following a convention. So here, I've got a name called "demo eg," and this one needs to contain at least one of those names there for it to work. It's hardcoded basically, so it needs to have that surface name.

And the next one is you need to create a marker which is called ADSK section label. That marker, it's hardcoded-- needs to look for that name and then it needs to be added to your code set style. So here if I go to my settings in general, label style and marker, you can see that I've created ADSK section label, and there's another one labeled sub.

But let's talk about the label first. So that ADSK section label is this one-- that's the one above. It's just a marker. The one below, you can use it for the sub which is that one below. And we're focusing on the one above first because if you can master the one above easily, you can do the one below.

So let's go back to the notes. And here you can see that the ADSK section label is actually a non-flat layer-- it's just a guide. It can be a depth point or you can actually turn it off if you don't want to see it. And then once you have them, you need to assign it to your code set style. So here, this ADSK section label, I will attach it to my code set style.

You can do it in a new code set style or a current code set style. Let's say I'm going to amend the current one. If you go to the point and scroll down, you can see that in this CBC and CT-- that's my point code-- I want to assign a marker. It will label it. So you need to set it up first.

So once you have that set up, all you need to do next is to create a section data which is blank. And then when you have that blank, assign that one to a band set. And it will look like something like this if you ran a production.

It's a blank section data, and as you can see, I created a blank feature design existing and design [? of ?] [? it. ?] It's all blank and the API will add that one for us. And let's try it. So I'm going to create section and then create multiple section view. And here I'm just going to probably accept the default.

And then I can choose between a production or draft. I already have a production a while ago, so I'm just going to choose draft for now to show them all together, and just accept everything. And here, make sure that your corridor had the code set style that you want. And then continue here-- I'm just going to accept default.

And once you have that one, you can just place it and it will generate until you have all your cross-section, and it's blank. And then what you do is you go to toolbox-- you could assign that one to the one above which is production, or the one below the draft. So I'm just going to assign it in this draft-- the one I just created.

So click section view label, and you just select one section view-- not all of them, just one-- and it will process. And that's the reason why I did the video-- so that it's fast so that one will work. Normally, it takes a few seconds only. And it will stagger to the left and to the right of the center line.

And those labels came from the code set style. You dictate which one to label. And the existing service, again it's picking up from the surface. And if you check the rest, on the rest of my cross section, it's labeling them.

So let's say I changed my mind-- I want my scale to be 1 to 100 for example. So it will change it, but you can see that the label is actually static. Because it's using API, it's adding a text to the property. So you can see it's a text and that's a polyline.

So we did it that way so that it will stagger. And what you need to do there is select this one, go to update section view layout-- it will update to the new scale-- and then render routine again. Select it-- it will delete, and create. So we added that functionality to delete the one that it already had with just bigger text. Now it's a correct font.

So now it auto stagger again in the correct spot. And let's say you want to add that one-- you want to add another string that you missed. Let's say you go to edit this one-- and if you edit this one, go to point, and then you want to add CF, so the one there. CF-- you add ADSK label.

So just add them and then click OK-- click OK to accept and then it will display the tag. And then you need to run the routine again and then it will auto stagger. So if I go to toolbox now and select that view label-- select it again-- it will delete and it will create.

And if you zoom in, it adds that CF and push everything to the left and to the right. So that's basically the tool. So just want to highlight some key important rules regarding section view label. So here, if you add this one, that's what I just showed you-- that it will label it.

And to overwrite it, just add a description. So if my point code is called "back curb" and I want it to be called "CV," add it to this description-- it will overwrite it. And for the surface name of the existing ground, for as long as your surface contains the name of any of this one, it will work.

So this example, I got demo eg-- it will work. All of this won't work because it doesn't have that-- contains that word. Same as the band name-- that's the band name. For as long as all of this is being used here, then it will work for the band text style.

So you can also change the style. Let's say I don't want the standard-- I want it to be aerial or whatever. You can change each one of them via summary, and change this to standard for the band text height. Same thing if you go to any of them-- go to band detail, edit the grade break. It's hardcoded in the grade break.

And you click this compose label and you can see that there's a text there. If there is no text there-- let's say you deleted it-- it will pick the default value of 1.8-- that's the default value. And if you type it in here-- 2.5-- then that will be your text height.

So that's just the certain rule. So now let's discuss about barriers. So this is a new tool that we created to help the [? road ?] furniture. So for example, you get a Civil 3D alignment-- no profile-- and it will find and drape to a surface that have the name "barrier." And it will use a user-defined block that has a name post and term, which is this, and it will detect it.

So the block that we are using as a sample-- so if you install the [INAUDIBLE] you'll have in this folder-- in this template, you'll have something like that. So that's the 2D view, that's the 3D view. So that have that post and that term for the terminal. So this is the demo-- so how to use it? So this is how to use this barrier tool.

Some things you need to remember about the barrier is you need to have surface and alignment. And for the surface, you need to have that term barrier. In this example, I created that service-- I called it barrier-- and I have this corridor. And this corridor has a surface called "core," and then I got existing ground. So those are the surfaces that I will paste to the surface that I've created.

So here in the definition, I paste the existing ground and then I paste the corridor so that I have a composite surface or a super thin they call it in Australia. And once you have it like that, you just need to have your alignment. And in Australia, we call BX as the y rule, and then BF is for our left-hand guardrail, and then BG would be our right-hand guardrail.

So once you have those naming conventions, it'll be easier. And last thing you need to remember about this barrier tool is you need to insert all the blocks you will need. So this is the sample a while ago that I showed-- that I got a terminal that have that [? TRM. ?] And another one would be this post-- it's a block-- it got that post name. For as long as it's inserted, the API will pick that one up.

So let's test this one. I'm just going to [INAUDIBLE] the view here, and go to toolbox and then click the barrier tool. So once you click that one, you'll have this icon, and then you select that this is a barrier and I want to use this post-- it's a wire rope. And if you click OK, it will generate that 3D for you so that your block and your 3D solid is there.

And then if you change your mind-- let's say I want to add more function. Let's say I want to have terminal leads and you want to have terminal trail-- just add that one-- even the layer you can change-- and then you'll have that one in 3D. It drapes to the surface using the alignment. And then let's say you want to add more. Let's say I want to add the BF-- because we call it BF for the left-hand side rail.

So just attach that one, and then for the BG, that's your right-hand side rail. And then you could also change the spacing. So let's say the wire rope, I will change it to 5 meters instead of 2.5-- just change that one to 5 and click OK. It will regenerate and then you'll have all of that solids.

So as you can see, it's 3D-- it's draped to a surface. And just to illustrate more-- how simple to create this one-- let's say I got a polyline. That's just a polyline-- I will just bring it in the middle and I will make a new alignment on top of it. I'll create alignment from polyline, select that one, and then let's say I want to add curve, because most of the sample [INAUDIBLE] straight, so I'll add here 100 pages.

And then all I need to do now is to use the wire tool. Let's say I want to add a wire rope in that one, so I click the barrier tool in the toolbox. And then you can see that I've created CL4 alignment. This is a barrier-- I want to use TL3-- click OK. And then it will generate-- easily delete and create, and then you'll have that one.

So as you can see, it follows the curve as well. And then all you need to do is attach attribute later on. So this is a sample output of that one. So as you can see, it creates a solid, it creates the block-- your predefined block-- and that's how it looks like, and it drapes to a surface.

So now let's talk about the Genio 2D. So this generates 2D-- can convert a 3D Genio import to a 2D flattened drawing. So this is in conjunction with using the following. We need to create a template and a table for the import-export, and a mapping. And I'll explain that one further later on.

An additional tool we need for this one is we need to have the input-export extension for Genio 2019. So this one you can find in that link, and I think it's for a subscription, so you just have to check if you have that one. And so this is a quick them on how to use it. So how do to use this Genio 2D first, you need to set up the template so that you will have the layers and blocks. So when you click File, New, you'll have those layers and block there so.

We created from the RMS survey. And then second is you want to set up your Genio mapping table. And this one will just tell you this string will convert to this civil 3D layers. And the third thing you want to set up is the Genio mapping file. So this is something new that we created. We just actually convert Cogo point and the 3D into the blocks and flatten it.

So this is the mapping file, and I'll open the mapping file to show how it looks like. So by installing the Country Kit, you'll have it by default in this location. And if you open this text file in Notepad or any file that can open it-- so you can see that it looks hard to read because it's tab delimited.

But you can see that you can have the code layer color block name there. And you can read this one in a CSV or Excel, which is easier. So if I open that one in Excel-- and you can see its code layer is all arranged properly. So that's how you actually read them. And you could customize this one. So this is just a mapping file that we create.

And so let me show you how to use this one now. So let's start with creating a new file. I click New, and then I will go to the template. And that template has a pre-created layers. As I mentioned a while ago, we create all the layers we will need, which is good because you could create your own layer and create your own block, and you could have your own customization up and running.

So here you got all the standard [? things ?] that we are using. And if you click Insert, you can see that we already have predefined block-- it's all RMS. So we set it up. And so once you have this one set up, you can just Delete and then render within. So I delete this one out, and I will do the import from Genio.

So for the import for Genio file, you need to set up first the option. So if you go to the option and then go to this location for the mapping table so that you can load it. And then in this link, it's standard. Once you install it, you'll have this one as well and you can customize that one.

So if you point to that one, as you can see here, you've got the string coming from the Genio, and the layer and the color, it will convert. So all you need to do now is if you get a survey Genio, you just load that one. And then you could see that it's all [INAUDIBLE]-- you could pick one by one-- omit whatever you don't want-- or you can click all of them at once and then just run the import-export.

So here I'm going to click Plus and then Import and it will run. Sometimes it's one minute, sometimes it's 20 minutes-- it depends on how big your survey is. And if you click OK, you can see that you have a 3D model from a Genio file. And this one, if you check, it will be 3D polyline and Cogo point.

So that's the way it works as of the moment. And if you rotate this one, you can see that's actually in 3D. So let's move onto output. So once you have that kind of output, when we run the Genio 2D, it will convert them to a much easier to understand, which is a standard layer, standard line type flattened version-- it's good for CAD production.

And another sample is like this. This is when we import from a survey, and then when we render it in, it will look like that. So that's just a productivity part on that one. And now let's talk about export feature line x, y, z. So this is a very simple tool that exports a feature line into a CSV.

So it will output name, chainage-- or station here in America-- and x, y, and z, which is our easting, northing, and elevation. So just a quick demo-- it's 52 seconds, so let's do this one. So this export for construction, as I showed a while ago, I have this demo corridor. And I have a feature line here, and that feature line has two feature lines, BD1 and BD2.

So all you need to do is go to toolbox and then click Export feature line. And then you select-- anything you select-- [INAUDIBLE] select that feature line-- it will only pick that side feature line. And then name a CSV, save it-- and then click Save.

When you open this one, you can see that you'll have that report. So if you get 10 feature lines, you've got 10 feature lines. In this case, I have only two. So you've got chainage x, y, z, and then my BD2 and BD1 below which is that one. So now let's move onto profile view, datum adjust, and profile view data band copy.

So the first one, which is this, it adjusts the datum to a multiple profile view. The second one, which is this, it copies a profile data band and then pastes it to another data band. This is very useful.

I'll show you an example. So how to use profile view-- that datum adjust? So this one is very useful if you create a multiple profile view. So this one, I'm creating a multiple profile view. And I already have it here, but let's say I want to adjust height.

Here, I will select one-- I will change the profile. And as you can see, I can change the elevation to elevation 50 and then it will adjust, but it only adjusts independent. So it won't adjust the rest which is annoying-- if you got 100 of that, you won't update one by one. So this time, you can click this date profile datum view and select all of them, and then just add a gap-- let's say 30-- enter that one and then you'll have all of them up and running. So this is really cool for production.

And let's say for some reason you adjust your profile way, way beyond your design. Let's say you bring this one up for some reason and then it won't show anymore. It's annoying. So instead of modifying one by one, just use the tool, select all of them, and then let's say this time, I want 20-- Enter and then it will rebuild.

So that's how cool it is. So the next one would be the profile data band copy. So this one, again, it's very useful if you're creating multiple profile view. So here I got a sample profile. All of them have profile one as MC 10 and profile two as MC 10.

So all the profiles that I have, it has the same mistake-- it's all wrong. So I want to change profile two to be existing ground, for example. So if I change this one to existing ground, it will only update just to that profile. So using this tool, it can copy all the settings and paste it to the rest rather than you modifying again and again.

So by doing that, I copy the source, paste it to there. And if I go here now, you can see that this one have the surface. It includes everything, including staggering and [? reading. ?] So let's say some engineer or project manager says to you, I don't want your presentation-- after half of the project, they decide to change it.

They want the horizontal to go down, they want the existing to go up. For some reason, they change it. And you already have your productivity up and running and you don't want to change all of them again and again. So you just use this tool-- you select a source by-- selecting profile copy selects a source, and then paste it to all of them. And that will automatically adjust afterwards.

So that's how cool that one is. So let's go to building Civil 3D model to include owner asset data. So we're going to talk about naming conventions here. So we're suggesting to use this naming convention. For example here, we're using plus for this baseline, and we're using minus for a separator.

And we're working this from left to right. So we're using, let's say, P8-- it's pavement with 8 layers. S stands for shoulder of 8 layers. We use "I" for interface, "V" for [? Verge, ?] et cetera, et cetera. So that's a naming convention we use. And this one is very critical-- shape code.

We suggest you use four components for the shape code, and it's also separated by a minus sign. And again, this is very critical because that minus sign will be used in the property set as a split separator. So for the family, we're actually using three or four characters here.

For the lane type, we're using a more detailed one-- it's an RMS RAMS guideline, which is our road assessment management system. And we're using it like this-- it's a prescribed direction, and we got PT1, PT2 prescribed to lane. And then CT1, CT2 is counter to lane and so on.

So we are having that rule. And for the pavement type, we just name it four characters or five characters. So let's say this one is pavement type TML, and then for the layer number, we're just using it from bottom all the way to the top. So this is layer one, layer two until you've got layer top.

So this is how it looks like when we used that one. And then [INAUDIBLE]-- the initial part is easy to paste them, but when you start to copy-paste or edit, that makes it hard. So I'll pass it to Andrew to explain how we customize that one.

ANDREW MILFORD: OK. Thanks, Jowenn. Can we switch? So yes, as you can see, what we're finding in Australia is we're finding a lot more emphasis on BIM. And the owners are now requiring much more detail in our models than ever before. They're requiring unique shape codes for pretty much every single layer of pavement on a project.

So you can see here that the shape code itself down here is actually becoming rather essential. So what we're trying to do now is we're going to take these four specific key elements in shape codes, and we're going to actually start to rip out and extract and rearrange things to actually create unique asset codes.

And we're going to do this through our solids and our corridor solid exports. So I'm going to go live now, which is always fun. [INAUDIBLE]. So I'm in Civil 3D now and you can see here I have my-- we have the assembly name in place now. I've already gone ahead, and in this case, modeled up some-- actually, I know we got little bit of extra time, so I'll just run through the process a bit more.

So in this case, you can see I have-- [? want ?] that open-- I have all of my shape codes typed in. Now this is-- you can say here we have prescribe through one-- PT1-- in our second field. We have TML1 which is actually our pavement type and our unique layer numbers on each one. When we come to the actual property set allocations, this will make a lot more sense.

But what I want to do at the moment, if I swap this-- if I take these two lines and I mirror them to the other side-- actually, I'll take all three and I'm going to just mirror these around the baseline. OK, I now have to go through and type in-- instead of PT1, I need to type in CT1 for every single shape code. It was just way too laborious-- there's gotta be a quicker way to do it.

So we developed a small tool-- and I just-- again, I'm just going to load it through NETLOAD, and this is probably going to find its way into the 2020 Country Kit. It's called "subassembly parameter rename." Now this one was only built about a couple of months ago, and it's just accessed by subparam rename.

And essentially, this is just a really small, simple tool that's going to make life a lot easier. I just select all of these elements here, and it says what am I searching for? I'm looking for maybe a shape code. This is basically just a text find and replace inside of your subassembly, so you can just rename them all en masse.

So I'm looking for a minus PT-- I'm going to replace that with minus CT. I click Apply, and it says it's changed 16 parameters in two subassemblies. And to verify that, you can see now my second field has gone from PT1 to CT1, and it's done it for all pavement layers at once.

So that's pretty neat. And then the customer says to me-- or the client says, or the payment engineer says OK, this is not a TML1 pavement anymore in field three, it's going to be a TML2 or a TML3 depending on the pavement type. So again, subparam rename. I'm going to select basically all of them and anything that has TML1, I simply come in and replace with TML2.

So there we are. We just changed 48 parameters in a few seconds. So doing that by hand might take a little bit of time. So we're just trying to look at these little tools just to make life-- day to day modeling life easier and quicker. And so let me just check that worked-- so it's all good.

AUDIENCE: [INAUDIBLE]

ANDREW MILFORD: .NET-- yep, I'm using properties-- just Civil 3D API. So I'm just going to jump back to the presentation. So now we're just going to move into the next part of the presentation where we're actually going to look at how we can automate and speed up the process of asset tagging. Is there anyone in the room that is currently using property sets inside of Civil 3D? OK, great.

Let's just run through some of the-- let's just run through some tips and tricks, and we're going to run through some of the processes to manage them more efficiently. So the first step when you're creating a model for export to, say Navisworks, or for a client export, is we need to extract our corridor solids.

We're going to look at setting up our output so that we have the output name. We're going to actually export the codes. So that's why before, we set everything inside the shape codes because we're going to use that shape code to drive all of our outputs.

And lastly, we're going to actually export-- the method we're finding is working well in Australia is to actually deref the corridor into a completely new drawing. And actually, when we extract the solids, we're inserting into the same drawing and maintaining a dynamic link. That's probably the key point to take away.

So you can see here there are three different ways you can import solids-- you can generate your corridor solids. You can insert into the current drawing. And as you can see there, some of the advantages-- it has a dynamic link so when your model updates, your solids will update accordingly. It overwrites existing solid so there's no duplication. Most importantly, it maintains the shape code and that's the critical part.

When you add it to an existing drawing, if that existing drawing has solids in it, it doesn't delete the old ones-- it just overrides and creates a whole new set for you. So again, it's going to come down to personal preference and the way you like to work. But again, the shape code is populated and maintained.

And the third option, adding it to a new drawing-- again, no dynamic link. We're going to stick with option one in this case-- we're going to maintain it and make sure that when the model updates, our solids will update as well. So when we extract the corridor solids, by default, Civil 3D now provides us three property sets by default.

You get the corridor model information, we get corridor shape information which contains all of our shape code information, the region start station and end station, as well as a few other items, like the side, the assembly. It also gives us an automatic volume which is quite handy when you're doing volume calculations. And as well as providing a user defined, so we can add our own property sets.

So we're really not going to be focusing on the user defined in this specific part-- we're going to build out some of our own. This is an example from the RMS RAM specifications in Sydney, New South Wales. Now you can see the highlighted attribute over here on the right. This is what's called a long attribute, and this is built up-- this has to be unique for every single component in the project.

And you can here it's actually built up of a family name, a road location code, which is going to be a manual property or a static property in that sense. We need a chainage value at the start, we need an attribute ID, we need a category name, and we need a land number. Now that's an awful lot of information to be adding. So the client is very specific about how they want this data presented and formatted so it can go into their operations and maintenance systems.

And this is just a quick example of some of the challenges that the engineers and designers are facing. Now this is just a very small sample. This document here is approximately 180 pages long of specifications, and I believe there's something around 35,000 unique asset tags that need to be added to our objects on a project.

This is just a small sample of them and we're just going to-- we just need to find a smarter way to be able to add that data to our models. I don't want to be sitting there on a 10 kilometer stretch of road and have to select every single piece of solid and attach information to it depending on what type it is. And so we're going to run through what I like to call the five stages of property sets.

We're going to start with the two simple first, both manual and automatic. Manual simply is you specify a property set and you add data manually. Automatic-- a little bit easier, actually-- it'll extract information from the object itself that you can then use downstream.

Then we're going to go a little bit more deeper into formulas. There's some really good VB scripting websites out there, and we're going to use formulas to actually start to pull apart our data and rearrange it in a much more readable format. Then we can go formula and COM API.

There are certain instances where you may want to tag Civil 3D objects, which you can't traditionally do through formulas. So we're just going to use a little bit of COM Interop automation through VB scripting to attach asset data to maybe a surface-- maybe push out the square meter areas or the number of triangles. Just another way to extract more information from the model.

And lastly, we need a smarter way to add information to all of the solids at once. So we're going to use a little bit of .NET automation with another tool that we've developed just to apply everything at once. So when you jump into property sets, there's two things to make note of. When you-- there's a simple mode and a detailed mode.

Now not too many people are aware of the detailed mode within Civil 3D, but if you access the Property Set Manager through the Manage tab on the ribbon-- you select define property sets-- you get this particular output. Now it's good, it's functional, it gives you what you need. However, there is a few key elements missing, and I'm talking more about data consistency.

If you type in the word "style manager" on the command line, for instance, the areas in red you see up there, you actually get a little bit more functionality, a little bit more bang for your buck. We're actually getting the options up here to add property data formats. So I can take a specific piece of code and actually format it to the client specifications.

And we can also add list definitions. So when we create manual property sets-- I guess some of the key features I sort of want to emphasize aside from just adding manual data, we do have the option to create lists. Which in the case of some of our clients in Australia, we need to actually make sure that they enter the right values. So we basically set up a list of values that the user can choose from when they're populating their data, and they can't go outside of that specific range of values unless we told them to.

And we can also apply formatting. So you can see in this case, the number that's sitting down here has seven padding digits. So instead of just typing in the number 120, it's going to put the four 0's in front of it. So it's just formatting the data ready for pushing into operations and maintenance systems.

Automatic property sets-- these are probably the easiest of all. All we do is when we apply the data to a specific element or that property set, we can actually apply automatic information. So think about if we're applying discrete elements in our model such as blocks, such as lighting, signposting. Anything that needs quantification or tagging, we can automatically pick out it's xy location, and it'll automatically throw it straight into the property set itself.

We can add things like the rotation. If we're doing it to a 3D solid, we can actually assign its volume which is an automatic property. Most importantly, though, we can assign the handle to it. Now when we assign the handle, that enables us to leverage the COM API to actually extract more information from a Civil 3D object.

And then we move into formulas. Formulas are probably where we're going to spend most of our time for the remainder of the session. But these are-- it uses VB scripting. It's really quite a simple language to learn, and a little bit of trial and error. It took me a little while just to get my head around some of the terminology, but it really enables us to take bits of data that come from our native Civil 3D corridor, and we can manipulate the text to pretty much whatever we like.

And the bonus is we can even go and rip out data from external files and bring it in, and I'll show an example of that very shortly. As a matter of fact, I'm going to show it now. So I'm just going to hide the presenter view.

So we're back in Civil 3D. This time, this is my model. I have a corridor that has a-- it's been derefed in. I don't' think I'm going to resync it just now-- might not be wise. But you can see here, all the solids have been extracted. And we have in this case-- we have some-- in our extended data, you can see we have the codename has come through cleanly, and it has our four fields separated by our minus sign.

Now in this case, we're just going to run through those five stages of property sets. We're going to add some manual property definitions first. So I'm not going to use the defined property sets off the Manage tab. I'm going to type in "style manager" because I just wanted to explain-- inside the property set definitions we have here, we have a data format. In this case, all I've said-- this one-- I've actually named this-- I've called it "integer pad 5."

And all I'm doing is I'm just giving this one five units of padding essentially, so no matter what number I type, it'll just pad it out to five.

Down in the lists in the multi-purpose objects, under list definitions, I'm going to create a new list down here. And I'm going to say I need to add a project stage to all of my items in the model. So I'm going to right-click, Create New. And when I give it a name, I'm going to call this proj_stage. OK, so there it is. Now that's the name.

In general, the key thing here is if we want to add a list to a property set, I need to make sure that I check this manual property definitions box. And then when I select the items I want to add, if I check this box here, it's going to allow the user to override the values. So if you want to enforce a set of rules, just keep it unchecked. So I'm going to click Add, and my first option, I'm going to call this my concept design stage.

The next stage is detail design-- let's say construction stage. And let's go one more-- let's go as built. I'm going to click apply on that. Then I've already set up a property set definition in this case. The way you add one is just simply select the header, property set definition, right-click and say New. It's really quite easy to add.

So we have our project information sitting up here. I've created three already, and we create them simply by clicking this button up here in the top-right-- that's a manual definition. Of all these, don't be too frightened-- we only need to worry about the first three. The rest of them, I think, refer to architectural Autodesk architecture.

So I have an asset ID. Here's my project number-- I want to assign it not a text value-- I am going to assign this one as an integer. So when I set the default value, I can call this project number 235, but you'll notice nothing's changed in the example. I need to change the formatting in this case to use my integer pad 5. So you can now see I've got consistent data, so no matter how many numbers-- I could be in the tens, the hundreds or the thousands, it'll always have that consistent formatting.

The project stage, likewise. I select the text, and from the list-- we can select from typing in text, real numbers, text, true-false. I'm going to select a list in this case and just pick from the project stage. And again, there's my concept as-built detail construction. I'm going to apply that and OK it.

I'm going to add it to this section of pavement here, which is my pavement layer wearing course. And under Extended Data on the Properties palette, I'm going to select Add Property Sets, I'm going to clear all of these out. I'm just going to add this specific property set, and you will see now that I have my asset information attached.

So I can type in a new project number if I need to-- call this 125. And it'll always pad it out, and then I can select from the pull down list what data I want to attach. OK, automatics-- these ones are pretty cool. I don't have anything in this particular one, so what I'm going to do is I'm going to attach this one to block references. 2D or 3D, makes no difference.

Just make sure that in the Applies To tab, you just select from the list of elements you can attach this specific property set definition to. So in this case, I've just attached it to a block reference, which is there. Yeah, there's quite a big list of elements you can select from. Just be mindful though, the more you add, the longer it takes to process.

Under the definitions, this little lightning bolt icon here, I select it and it's going to expose to me all of the values that I can automatically retrieve. So in this case, I'm going to take location x, and again, I'm going to add another one-- location y. And I'll add another one-- this time, I'll ad the handle. Again, this is the unique object ID of the object it's being attached to.

AUDIENCE: One at a time?

ANDREW MILFORD: One at a time-- yep. And again, I could rename these just by clicking once, clicking twice, and typing in the name, easting and northing. Now what's important here is, if I sort by name, not quite the order I want. So all I need to do is come over here and say I want this to be number one, I want my northing to be number two, and the last one to be number three.

So when I apply this or OK it-- and I'm going to apply this to my light pole up here. And again, we're going to go to Extended Data, we're going to add the block reference property set definition. Now you can say it's automatically pulled out the easting and northing on that particular element. It's pretty neat.

And we're to use those two values through the .NET API, and we're going to go and rip out some lat-longs from that as well, so that's another piece of information that we require. So heading back to the property sets, let's look at number three, formulas. This one-- there's a few more sitting in here, but you'll note, the formulas are added by hitting the little FX button here.

These are the ones I like most of all. So what we can do is I've got-- I've populated most just in the interest of time, but in this instance, I'm going to add a family. So I'm just going to double click on this particular definition. And I am going to cheat in this case because-- well, it's often good to have just a family of snippets that you can copy and paste.

So what I can do is I'm just going to copy this out and paste that in. Now up in the sample result, see how it's just giving me the name there? That means something's wrong-- something's not working for us. So I'm going to basically come through this-- so I'm going to zoom in on that-- hopefully make it a bit clearer. Essentially,

We're setting up an initial variable and we're returning that variable into this. What we're trying to do now is take this corridor information. Now when you copy-paste, the trick here is it's not actually pulling that property out from down in these property definitions. I need to actually probably delete-- I need to delete this element between the double quotes.

And we're going to come down to the corridor shape information, and I'm going to take the code name and double click. And when I do that, notice it's got a slightly light gray background, and it also populates a default value over here. So you can see this was the data we took out of our shape code, but now what I'm doing is I'm using just a simple VB scripting command called Split that's going to split that piece of text-- this one down here-- into four unique elements pretty much, because we've applied a minus separator.

So what we're returning is the 0 element in that list, and the 0 element happens to be PLWC, which is my output. If I were to change that to element 1, you notice it changes to CT1. So what we're doing is we're taking our shape code information and we're breaking it up now into unique components, and we're going to pull them apart and put them back together again.

So I'll set that back to 0 and go OK. The chainage, actually quite similar. So in this case, I'm going to, again, take another snippet of code. I don't want to bore you by typing all that in from scratch-- oops. Again, I'm just going to scroll in a little bit. And again, I'm declaring a variable here called "start station--" just going to wipe that.

And I'm just going to come down to pick the relevant piece of data, because we can actually cross-reference data through this panel down here, the property definitions. So it's really good. The stuff that comes out of Civil, this is all coming out by default. So I'm going to assembly start station.

Now by default, when Civil 3D rips out the solids, it actually always puts three decimal places with a little m on the end. So I'm going to type in an arbitrary value-- 23564.234 m. OK, and what we're doing here is a few new commands. I'm taking the variable and I'm extracting its length. Essentially, I'm counting how many characters are in that text string. This is just really simple VB stuff.

Then I'm converting it to an integer with the C int command. Then I'm creating a new variable called "station," and I'm taking that start station variable which is the actual full value over here, I'm starting from character one, and I'm just going to take out-- well, basically strip off the last five characters. So it's going to give me a rounded value up here. It's basically stripping off everything from the dot onwards, and I'm going to use that in my super long asset ID.

And lastly, category two [? opt. ?] Now notice, I've got ones here for category one and two, but I'm going to jump into this one because this one I think is pretty cool. I only figured this one out not long ago and it worked out really well. So I'm just going to add the category two [? opt. ?] This one looks a little daunting at first, but I'll explain it as I go.

What we're doing here is, again, we've just got our little on error resume next. This time, we're actually accessing what's called the file system object. This is just allowing me now to set a variable to an external text file. And I'm just pointing to my local drive here to a file called pavement.txt.

So if I look at this file, you can see here I've got my TML1, TML2. These are the third characters we had in our shape codes that we assigned right back into our subassemblies. We're going to use this, and then we're going to say, OK, if we find this specific element, go and give me the corresponding pavement layer, which was our fourth character, or our fourth element in the array.

So what we do is we run through this file-- and it's running all the time continuously. So it's looping through the file and setting up an array for me here called array filename. We're then going to extract category one and category two because we need to do some checks. So I'm going to unindent that and put in the real category one.

You can see it's entered properly because I have a sample value to enter. And I'm going to select category two. You should be careful not to-- it has to be inside the quotes. My category one was called TML1, just for example. Category two was my pavement layer, so I'm going to type in 08-- that was the top layer, my wearing course.

Notice up here, it's pulled out the value SMA20-- that's my output. Where does that come from? It's come from the pavement file. Essentially, it said OK, I found this line here, and now I've gone across eight units-- I'm now picking out that value there. So the handy thing about this is, if we apply this-- actually, let me just show it for real.

So what we're doing is looping through those two lines and we're splitting this text file by comma. Then we're saying if we find a specific element in the first column, go and rip out the actual corresponding pavement line number-- go and extract the right number out. Again, I'm going to upload this source in the documentation in the handouts.

And so the key thing is when we apply it. So let's-- oh, and lastly, the actual asset ID-- the big one. All this is, it's just using our concatenation. So we take all of the previously defined elements that we have over here, and all I'm doing is just inserting them all in one at a time, using the ampersand to string the bits of text together.

So we've got the road number, chainage, attribute ID category one plus the category two [? opt. ?] So we're hitting Apply and OK. This time, I'm just going to once again add it to my pavement layer here under extended data. And I'm going to add the asset information with formulas.

And so you can see now, I have all of the information sitting in there plus my big tag at the end. I can turn off those working elements if I want to just by checking the box inside the property definitions. But note down here, this category two [? opt ?] is marrying up to this SMA20. Again, say the client has now said, hey, we're not using SMA20, we're using SMA10.

How do we change it? Would you normally have to go back, redo your surfaces, recalculate the corridor, push the solids out again, update the whole lot? Nope, we just go straight into the text file now, and I say SMA10, save the file, reselect, and we get an immediately updated asset inside of Civil.

So by leveraging just a simple text file outside, we can really speed up that process of automation. Just being mindful of time. Now I haven't got too long to go. All right, back to the slide show. I think we're the last session of the day, so we may run just a few minutes over if you can bear with us.

The last thing we're going to look at, we're going to look at a little bit of .NET and VB scripting to assign asset tags based on model data. And this time, we're going to use the property sets-- the formula property set again, but we're just going to use a little bit of COM API. Those three lines you see at the top-right there-- the set app-- all we're doing here is retrieving the autoCAD application.

If anyone was in my class yesterday, we probably used to hook the Civil 3D into Dynamo. It's just using COM Interop. The second line essentially sets a Civil application object using version 13.0, which in this case is Civil 3D 2019. The key here is the bottom line where we're actually retrieving the specific object's ID by passing in the handle.

That's why when I said before we should be extracting the handout automatically off each object, we're going to reference the handle to actually use the COM API. And lastly, I'm going to use a tool I developed through the .NET API, and we're going to apply all the property sets that you saw in that previous list. We're going to apply them to every single object based on their shape code.

So it's going to play a unique property set to every unique element inside the model through just a little .NET program. And then we're going to extend it, mainly in the blocks, to take the easting-northing information and then basically convert the eastern-northing to lat-longs depending on your geolocation as well as providing a chainage and offset. So jump back into Civil.

So in this case, I'm going to go back to the property sets. I [? say ?] I don't need to type style manager in this case, so I'm not using lists. So I'm going to come down to the surfaces COM, and you can see here I have one here called "area 2D." Now this is normally a piece of information we can't attach normally to an object. So before I do this, I'm just going to add an automatic property in this particular property set definition. I'm going to add the handle and I'm going to say area 2D.

Again, I'm going to copy a small snippet out. CTRL C, CTRL V. And if we just zoom in on that, you can see I'm just using those three lines of code to hook into Civil 3D COM API-- that's really all it takes. There are links provided in the documentation that you can download from the AU website that will point to what you can actually use and what you can't.

And all I'm doing here is saying-- using round which is just a simple VB scripting function. I'm going to round the area down to three decimal places. The command in this instance is simply called "statistics.area 2D." And so when I-- actually, I meant to-- whoops, nearly forgot I need to take the handle and actually apply the real value in there.

And so if I run that, Apply, OK, this time because-- actually, I will show it quickly back in the COM, this time I've applied it to a TIN surface object-- not a block, not a solid. So I'm just going to select my TIN surface in Civil 3D, extend the data, attach a property set-- I can only attach that one-- and go OK. And you can see up there, I have the handle. I also have the area in 2D as a-- that's actually a dynamic property now.

So we've just hooked into the API. It's ripping the data out and sending it back into the property set. Just one I often like to show is the-- I can do the same thing again-- very quickly just taking the area 2D, I can just create a new one here and just call it "num tries." Uncheck that.

And again, it's exactly the same formula you can see here. And I can just rip out the number of triangles, again just being careful to attach the handle. And you can see, because I already have a property set defined, it's already giving me the preview. It's pulling out the handle and its already giving me the value. And so if I select the surface, you see now I've got the area and the number of triangles.

And again, all this data gets fed downstream into your federated model in Navisworks. So it's just quite-- it's pretty good to have this sort of stuff on hand. OK, last one. Now we've got all of these property sets defined-- tons of them. How do we actually assign them all at once? That's the tricky part.

I don't want to be sitting-- selecting an element, right-click, select similar, apply property sets manually. It's too time consuming. So again, small program that we've developed called Property Sets-- it probably needs a name for lack of a better word. And the command is called Property Set Assign. Just a small dialog box, and we're looking at a property set configuration file.

By the way, I'll upload these files-- these DLLs as well so you can play around with them-- I should put a disclaimer right before I do. And we're looking for a configuration file. So if I edit this-- just show it in Notepad-- essentially, it's just three lines. It's looking for a code name, which is essentially the family name, or in the case of like a block, it's looking for the block name.

Then in the second field is the name of the property set you want to attach to that specific element. And then the third column is basically what kind of asset is it? Is it a linear asset, is it a point asset? Point being like a block, linear asset being like an extruded or swept solid. So essentially, what it does is it just goes through, pulls out the name, and applies the property set to that specific element. Pretty cool.

So I'll run it in, and you'll note here, we have-- everything just populates in a table. This is not editable. The red basically indicates I did not find that property set definition. It's not going to upset anything. Just hit apply, and it says it's gone and applied property sets to 128 items at once, but it's actually assigned the right ones to each element.

So now if I cancel out of that, if I look at my top wearing course here-- you can see I typed that one up-- it's assigned the general information, which is the RMS one, plus it's also assigned its unique PLWC pavement line for wearing course.

If I select the next layer down, you can see it's applied to base course as well as the asset information. Third, it's gone and assigned the sub-base with the General tab. So again, it's just a really simple, quick way to assign that information to your models. And lastly, what it's also done, because we had some light poles in here, it's actually gone and assigned-- should have assigned a light pole to that one.

AUDIENCE: [INAUDIBLE]

ANDREW MILFORD: Pardon? Oh, thank you. There we go. [LAUGHS] It's getting late in the day. So what it's assigned is the RMS lighting. So it's actually taken out the easting and the northing which is automatic-- we had set that before. But it's also using the API under the hood. It's gone and said OK, I've hardcoded this MC 10 value. Go and give me the chainage and the offset of that specific point as well as converting it to latitude and longitude.

And again, that was a requirement we needed from local authorities. Well, that kind of brings me to the end of the presentation. I know-- ooh, I've gone four minutes over. So let me just go back.

So again, thank you very much for taking the time out this afternoon. It's been a long AU-- I hope there was something of use in there for everyone. I'll open up the floor to some questions if anyone has any. Must've been a big night last night.

[LAUGHING]

JOWENN LUA: Thank you, guys. Thank you.

[APPLAUSE]

______
icon-svg-close-thick

Cookie preferences

Your privacy is important to us and so is an optimal experience. To help us customize information and build applications, we collect data about your use of this site.

May we collect and use your data?

Learn more about the Third Party Services we use and our Privacy Statement.

Strictly necessary – required for our site to work and to provide services to you

These cookies allow us to record your preferences or login information, respond to your requests or fulfill items in your shopping cart.

Improve your experience – allows us to show you what is relevant to you

These cookies enable us to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we use to deliver information and experiences tailored to you. If you do not allow these cookies, some or all of these services may not be available for you.

Customize your advertising – permits us to offer targeted advertising to you

These cookies collect data about you based on your activities and interests in order to show you relevant ads and to track effectiveness. By collecting this data, the ads you see will be more tailored to your interests. If you do not allow these cookies, you will experience less targeted advertising.

icon-svg-close-thick

THIRD PARTY SERVICES

Learn more about the Third-Party Services we use in each category, and how we use the data we collect from you online.

icon-svg-hide-thick

icon-svg-show-thick

Strictly necessary – required for our site to work and to provide services to you

Qualtrics
We use Qualtrics to let you give us feedback via surveys or online forms. You may be randomly selected to participate in a survey, or you can actively decide to give us feedback. We collect data to better understand what actions you took before filling out a survey. This helps us troubleshoot issues you may have experienced. Qualtrics Privacy Policy
Akamai mPulse
We use Akamai mPulse to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Akamai mPulse Privacy Policy
Digital River
We use Digital River to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Digital River Privacy Policy
Dynatrace
We use Dynatrace to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Dynatrace Privacy Policy
Khoros
We use Khoros to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Khoros Privacy Policy
Launch Darkly
We use Launch Darkly to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Launch Darkly Privacy Policy
New Relic
We use New Relic to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. New Relic Privacy Policy
Salesforce Live Agent
We use Salesforce Live Agent to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Salesforce Live Agent Privacy Policy
Wistia
We use Wistia to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Wistia Privacy Policy
Tealium
We use Tealium to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Tealium Privacy Policy
Upsellit
We use Upsellit to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Upsellit Privacy Policy
CJ Affiliates
We use CJ Affiliates to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. CJ Affiliates Privacy Policy
Commission Factory
We use Commission Factory to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Commission Factory Privacy Policy
Google Analytics (Strictly Necessary)
We use Google Analytics (Strictly Necessary) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Strictly Necessary) Privacy Policy
Typepad Stats
We use Typepad Stats to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. Typepad Stats Privacy Policy
Geo Targetly
We use Geo Targetly to direct website visitors to the most appropriate web page and/or serve tailored content based on their location. Geo Targetly uses the IP address of a website visitor to determine the approximate location of the visitor’s device. This helps ensure that the visitor views content in their (most likely) local language.Geo Targetly Privacy Policy
SpeedCurve
We use SpeedCurve to monitor and measure the performance of your website experience by measuring web page load times as well as the responsiveness of subsequent elements such as images, scripts, and text.SpeedCurve Privacy Policy
Qualified
Qualified is the Autodesk Live Chat agent platform. This platform provides services to allow our customers to communicate in real-time with Autodesk support. We may collect unique ID for specific browser sessions during a chat. Qualified Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Improve your experience – allows us to show you what is relevant to you

Google Optimize
We use Google Optimize to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Google Optimize Privacy Policy
ClickTale
We use ClickTale to better understand where you may encounter difficulties with our sites. We use session recording to help us see how you interact with our sites, including any elements on our pages. Your Personally Identifiable Information is masked and is not collected. ClickTale Privacy Policy
OneSignal
We use OneSignal to deploy digital advertising on sites supported by OneSignal. Ads are based on both OneSignal data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that OneSignal has collected from you. We use the data that we provide to OneSignal to better customize your digital advertising experience and present you with more relevant ads. OneSignal Privacy Policy
Optimizely
We use Optimizely to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Optimizely Privacy Policy
Amplitude
We use Amplitude to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Amplitude Privacy Policy
Snowplow
We use Snowplow to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Snowplow Privacy Policy
UserVoice
We use UserVoice to collect data about your behaviour on our sites. This may include pages you’ve visited. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our platform to provide the most relevant content. This allows us to enhance your overall user experience. UserVoice Privacy Policy
Clearbit
Clearbit allows real-time data enrichment to provide a personalized and relevant experience to our customers. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID.Clearbit Privacy Policy
YouTube
YouTube is a video sharing platform which allows users to view and share embedded videos on our websites. YouTube provides viewership metrics on video performance. YouTube Privacy Policy

icon-svg-hide-thick

icon-svg-show-thick

Customize your advertising – permits us to offer targeted advertising to you

Adobe Analytics
We use Adobe Analytics to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, and your Autodesk ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Adobe Analytics Privacy Policy
Google Analytics (Web Analytics)
We use Google Analytics (Web Analytics) to collect data about your behavior on our sites. This may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. We use this data to measure our site performance and evaluate the ease of your online experience, so we can enhance our features. We also use advanced analytics methods to optimize your experience with email, customer support, and sales. Google Analytics (Web Analytics) Privacy Policy
AdWords
We use AdWords to deploy digital advertising on sites supported by AdWords. Ads are based on both AdWords data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AdWords has collected from you. We use the data that we provide to AdWords to better customize your digital advertising experience and present you with more relevant ads. AdWords Privacy Policy
Marketo
We use Marketo to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. We may combine this data with data collected from other sources to offer you improved sales or customer service experiences, as well as more relevant content based on advanced analytics processing. Marketo Privacy Policy
Doubleclick
We use Doubleclick to deploy digital advertising on sites supported by Doubleclick. Ads are based on both Doubleclick data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Doubleclick has collected from you. We use the data that we provide to Doubleclick to better customize your digital advertising experience and present you with more relevant ads. Doubleclick Privacy Policy
HubSpot
We use HubSpot to send you more timely and relevant email content. To do this, we collect data about your online behavior and your interaction with the emails we send. Data collected may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, email open rates, links clicked, and others. HubSpot Privacy Policy
Twitter
We use Twitter to deploy digital advertising on sites supported by Twitter. Ads are based on both Twitter data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Twitter has collected from you. We use the data that we provide to Twitter to better customize your digital advertising experience and present you with more relevant ads. Twitter Privacy Policy
Facebook
We use Facebook to deploy digital advertising on sites supported by Facebook. Ads are based on both Facebook data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Facebook has collected from you. We use the data that we provide to Facebook to better customize your digital advertising experience and present you with more relevant ads. Facebook Privacy Policy
LinkedIn
We use LinkedIn to deploy digital advertising on sites supported by LinkedIn. Ads are based on both LinkedIn data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that LinkedIn has collected from you. We use the data that we provide to LinkedIn to better customize your digital advertising experience and present you with more relevant ads. LinkedIn Privacy Policy
Yahoo! Japan
We use Yahoo! Japan to deploy digital advertising on sites supported by Yahoo! Japan. Ads are based on both Yahoo! Japan data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Yahoo! Japan has collected from you. We use the data that we provide to Yahoo! Japan to better customize your digital advertising experience and present you with more relevant ads. Yahoo! Japan Privacy Policy
Naver
We use Naver to deploy digital advertising on sites supported by Naver. Ads are based on both Naver data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Naver has collected from you. We use the data that we provide to Naver to better customize your digital advertising experience and present you with more relevant ads. Naver Privacy Policy
Quantcast
We use Quantcast to deploy digital advertising on sites supported by Quantcast. Ads are based on both Quantcast data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Quantcast has collected from you. We use the data that we provide to Quantcast to better customize your digital advertising experience and present you with more relevant ads. Quantcast Privacy Policy
Call Tracking
We use Call Tracking to provide customized phone numbers for our campaigns. This gives you faster access to our agents and helps us more accurately evaluate our performance. We may collect data about your behavior on our sites based on the phone number provided. Call Tracking Privacy Policy
Wunderkind
We use Wunderkind to deploy digital advertising on sites supported by Wunderkind. Ads are based on both Wunderkind data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Wunderkind has collected from you. We use the data that we provide to Wunderkind to better customize your digital advertising experience and present you with more relevant ads. Wunderkind Privacy Policy
ADC Media
We use ADC Media to deploy digital advertising on sites supported by ADC Media. Ads are based on both ADC Media data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that ADC Media has collected from you. We use the data that we provide to ADC Media to better customize your digital advertising experience and present you with more relevant ads. ADC Media Privacy Policy
AgrantSEM
We use AgrantSEM to deploy digital advertising on sites supported by AgrantSEM. Ads are based on both AgrantSEM data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that AgrantSEM has collected from you. We use the data that we provide to AgrantSEM to better customize your digital advertising experience and present you with more relevant ads. AgrantSEM Privacy Policy
Bidtellect
We use Bidtellect to deploy digital advertising on sites supported by Bidtellect. Ads are based on both Bidtellect data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bidtellect has collected from you. We use the data that we provide to Bidtellect to better customize your digital advertising experience and present you with more relevant ads. Bidtellect Privacy Policy
Bing
We use Bing to deploy digital advertising on sites supported by Bing. Ads are based on both Bing data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Bing has collected from you. We use the data that we provide to Bing to better customize your digital advertising experience and present you with more relevant ads. Bing Privacy Policy
G2Crowd
We use G2Crowd to deploy digital advertising on sites supported by G2Crowd. Ads are based on both G2Crowd data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that G2Crowd has collected from you. We use the data that we provide to G2Crowd to better customize your digital advertising experience and present you with more relevant ads. G2Crowd Privacy Policy
NMPI Display
We use NMPI Display to deploy digital advertising on sites supported by NMPI Display. Ads are based on both NMPI Display data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that NMPI Display has collected from you. We use the data that we provide to NMPI Display to better customize your digital advertising experience and present you with more relevant ads. NMPI Display Privacy Policy
VK
We use VK to deploy digital advertising on sites supported by VK. Ads are based on both VK data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that VK has collected from you. We use the data that we provide to VK to better customize your digital advertising experience and present you with more relevant ads. VK Privacy Policy
Adobe Target
We use Adobe Target to test new features on our sites and customize your experience of these features. To do this, we collect behavioral data while you’re on our sites. This data may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, your IP address or device ID, your Autodesk ID, and others. You may experience a different version of our sites based on feature testing, or view personalized content based on your visitor attributes. Adobe Target Privacy Policy
Google Analytics (Advertising)
We use Google Analytics (Advertising) to deploy digital advertising on sites supported by Google Analytics (Advertising). Ads are based on both Google Analytics (Advertising) data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Google Analytics (Advertising) has collected from you. We use the data that we provide to Google Analytics (Advertising) to better customize your digital advertising experience and present you with more relevant ads. Google Analytics (Advertising) Privacy Policy
Trendkite
We use Trendkite to deploy digital advertising on sites supported by Trendkite. Ads are based on both Trendkite data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Trendkite has collected from you. We use the data that we provide to Trendkite to better customize your digital advertising experience and present you with more relevant ads. Trendkite Privacy Policy
Hotjar
We use Hotjar to deploy digital advertising on sites supported by Hotjar. Ads are based on both Hotjar data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Hotjar has collected from you. We use the data that we provide to Hotjar to better customize your digital advertising experience and present you with more relevant ads. Hotjar Privacy Policy
6 Sense
We use 6 Sense to deploy digital advertising on sites supported by 6 Sense. Ads are based on both 6 Sense data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that 6 Sense has collected from you. We use the data that we provide to 6 Sense to better customize your digital advertising experience and present you with more relevant ads. 6 Sense Privacy Policy
Terminus
We use Terminus to deploy digital advertising on sites supported by Terminus. Ads are based on both Terminus data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that Terminus has collected from you. We use the data that we provide to Terminus to better customize your digital advertising experience and present you with more relevant ads. Terminus Privacy Policy
StackAdapt
We use StackAdapt to deploy digital advertising on sites supported by StackAdapt. Ads are based on both StackAdapt data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that StackAdapt has collected from you. We use the data that we provide to StackAdapt to better customize your digital advertising experience and present you with more relevant ads. StackAdapt Privacy Policy
The Trade Desk
We use The Trade Desk to deploy digital advertising on sites supported by The Trade Desk. Ads are based on both The Trade Desk data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that The Trade Desk has collected from you. We use the data that we provide to The Trade Desk to better customize your digital advertising experience and present you with more relevant ads. The Trade Desk Privacy Policy
RollWorks
We use RollWorks to deploy digital advertising on sites supported by RollWorks. Ads are based on both RollWorks data and behavioral data that we collect while you’re on our sites. The data we collect may include pages you’ve visited, trials you’ve initiated, videos you’ve played, purchases you’ve made, and your IP address or device ID. This information may be combined with data that RollWorks has collected from you. We use the data that we provide to RollWorks to better customize your digital advertising experience and present you with more relevant ads. RollWorks Privacy Policy

Are you sure you want a less customized experience?

We can access your data only if you select "yes" for the categories on the previous screen. This lets us tailor our marketing so that it's more relevant for you. You can change your settings at any time by visiting our privacy statement

Your experience. Your choice.

We care about your privacy. The data we collect helps us understand how you use our products, what information you might be interested in, and what we can improve to make your engagement with Autodesk more rewarding.

May we collect and use your data to tailor your experience?

Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.