AU Class
AU Class
class - AU

Using Dynamo for MEP Analytics

이 강의 공유하기

설명

Dynamo is great for inputting information, linking parameters together, and performing calculations. However, Dynamo can also be a great tool for tracking the information and components in intelligent models. For example, with large projects, there can be hundreds of spaces with thousands of components. Revit software can track this information in schedules, but only to a certain extent. With Dynamo, you can track the information and ensure that it’s correct. You can also write the data to Microsoft Excel or use custom packages to visualize the data in various ways. You can use Dynamo to extract information from architectural models, or check for model conditions when beginning a design. Then, you can track information in the MEP model as the design progresses. You can simply visualize this data, or you can compare it to other information for quality assurance. With Dynamo, all the information in a model is available to you.

주요 학습

  • Learn how to use Dynamo to check for information and conditions in Revit models
  • Learn how to extract data and write it to Excel to compare information
  • Learn how to extract information from a Revit model and visualize the data
  • Learn how to create graphs and charts in Dynamo to visualize and better understand the data

발표자

  • Jason Boehning 님의 아바타
    Jason Boehning
    Jason is passionate about helping people and organizations in the AECO industry. As a trusted consultant, he has helped organizations implement digital technologies to improve processes and deliver exceptional results. He has made a career of helping building professionals use digital tools to increase productivity for sustainable design and construction. Jason speaks at events and conferences all around the world. He is a repeat, top-rated speaker at both BILT North America and Autodesk University. Jason is a member of the Autodesk Expert Elite program and is an Autodesk Certified Professional for Revit MEP Mechanical, Revit MEP Electrical, Revit Architecture, and Revit Structure. He also served as an Autodesk Revit Mentor All-Star.
Video Player is loading.
Current Time 0:00
Duration 1:22:35
Loaded: 0.20%
Stream Type LIVE
Remaining Time 1:22:35
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
Transcript

JASON BOEHNING: All right, you guys ready to get going? Everybody hear me all right? All right, good afternoon. Thank you guys for being here.

Welcome to Using Dynamo for MEP Analytics. So man, I can't believe it's already Thursday afternoon. This week is flying. Is anybody, is this your first day at U?

AUDIENCE: First day U.

JASON BOEHNING: First day U? OK, we get a few. Awesome. I hope you guys are having a good week and enjoying it. So hopefully we can have a little fun this afternoon and wrap this thing up and go hang out tonight.

But for those of you that I haven't had a chance to meet, my name is Jason Boehning. I'm now a BIM consultant for Read Thomas. And so that's a fairly new development in my career.

And let me see if we can get this thing going here. So here's the obligatory about me. But I really just want to put my contact info up there. And so follow me on Twitter, connect with me on LinkedIn, and let's keep this conversation going. And so I think that there's a lot of value in this conference. But then there's a lot of value in the conversations afterwards on social media and all the stuff that we keep going on, and so.

Anyways, in terms of introductions, just continuing that. So I have three lab assistants here. And so we have John Pierson. Carl Storms, and Marcello Sgambelluri there in the back. And so there are lab assistants here. If you get stuck along the way, raise your hand, they'll come by and help you out.

But they're also good friends of mine. And I'll share a quick story. So we met around 2012, 2013, and just coming to events like this. And so we were trying to learn Dynamo, trying to figure this thing out. Really didn't have any idea what we were doing. And we just start bouncing stuff off of each other. And just digging into it.

And so I say that because there's value in the information that you learn at these conferences, but there's also tremendous value in the connections that you make. And it's a connection, and then it turns into a friendship, and then the next thing you know, you're just, hey, Marcello, how do you do this. Hey, John, can you help me with this?

And then, so anyways, if you're here and you're like, man, I hadn't really met a lot of people but I've attended a lot of classes, take some time and meet some people and get to know someone. And connect with us on Twitter, and we'll just continue this conversation. So that's what this community is all about.

I love being in the AEC industry at this time. And because, as you guys know, we have some work to do to push this industry forward and to make it better. And so it's awesome to be a part of that.

So as far as today, what we're doing is we're going to use Dynamo to see what we can pull out of Revit. That's big picture what we're trying to do. And so as you guys know, Revit is a large database of information. And sometimes it's hard to get that information out.

And not only get it out, but put it in some type of form that we can understand and make sense of. So that's where we're going today. As far as a general overview, we're going to talk a little bit about analytics. And then I have three specific exercises for us.

We're going to be extracting space-type information. And then we're going to be tracking the loadable family types and instances that are placed in the model. And then we'll wrap up by looking at how we can report the number of duct types used.

And so one thing that I like to say when teaching a Dynamo class is don't focus on the specific examples. So you may be thinking, oh, I have no need for this. But focus on the methods that we use in our graphs and what we do in Dynamo to arrive at our outcome, because those methods that we use can be used for extracting and reporting all kinds of information.

And so I say that because don't get caught up on the specific example. Just focus on those methods that we use.

But with that said, if you're like, wow, this is not what I was expecting, feel free to go to another class. So I know that your time's valuable. And so if this is totally not what you're expecting, you can go find another class. Not going to hurt my feelings.

So let's dig into it. So what are analytics? Do you have to be a genius? Do you have to be a data scientist to be able to understand it and dig into it? No, no.

Sorry, quick side note. So I think Carl and John have both-- we've all used this GIF in our presentation in some form or fashion. But I think they stole it from me, though. They stole that.

So analytics is simply the systematic computational analysis of data or statistics. So to boil it down, it's keeping track of information. And so for those of you that work in Revit on a regular basis, you know that it's important to keep track of the information that we're putting in those models.

As we need to make our models more and more detailed, and they're getting bigger and bigger and compact of that data rich, information, we need to keep track of what we're putting in there. It's extremely important. So that's the direction we're heading.

So like I said, Rabbit Revit is a database of information. But sometimes it can just be a cluster of stuff. And so what we want to do is see what we can pull out and put in some nice charts and graphs to get in a human readable format, if you will. And so that's what we're going to be doing today. So we're going to dig into Dynamo and take a look at.

But so real quick, let me pause. I forgot to ask-- I'm going to ask some questions for you guys, and just by a show of hands-- how many of you would say I use Dynamo every day or even every week at work. A few of you. OK.

So let's go to the other end of the spectrum. How many of you are like, I have no idea what Dynamo is. Or I've opened it a few times, but I really don't have too much information. That's OK. OK, cool.

And then who says, I'm in the middle. I've dabbled with it, I've created a few scripts. OK, good. So we've got a nice mix in this class. And so I think that's good.

We'll cover some basics along the way for those of you that may not be too familiar. But we'll get up to speed and take a look at how we can use it for analytics.

But I want to give you some real-life examples of analytics, just to help us keep putting this in perspective. So I'm sure all of you have some type of mobile phone. We all have a cell phone, a cell phone plan.

And so you can log into your carrier, their website, and keep track of the data that you use. Because if you're limited by data, you've got to keep track of that.

Or you can log in and maybe access some type of chart, like this, where you can see which are your users are using the most data. Or who's sending the most text messages. That's an example of analytics that we use on a week-to-week, month-to-month basis.

What about our electricity bills? This is from my electricity provider from last year, tracking my electricity consumption to the average temperature in Houston, Texas.

So I can look at that chart and quickly see if there's a month that's out of whack, if my AC is broken or something and it's using more electricity. I can look at that quickly and tell if something's going on. But at this point, I know what to expect. I know what to look for.

Last one here. Anybody go to the ATM and you get to do something like this? Or maybe you're in the casino last night and hit a jackpot or something. We're in Vegas.

Not me. That's not that's not what I look. So I've got to keep track of my budget. I've got to keep track of where my money is going.

And so, once again, just another example of everyday analytics at a very simple form. And so that's where we're going today is some analytics from Revit just on a simple form that can make big changes in information. that we can use to make big decisions and keep track of what's going on.

Let's dig into it. So this is a lab obviously. So let's dig in to Revit and to Dynamo. And so you should have Revit open.

And so open up the MEP_Model.rvt. And so there's the Data Sets folder on your desktop. And the class ID is BES 320225. BES 320225.

So if you can navigate to that. And then you'll see, it also has the class name, Using Dynamo for MEP Analytics. And then open up MEP_Model.rvt.

AUDIENCE: Sorry. What was the number again?

JASON BOEHNING: It is BES 320225. So I think you've go to scroll down to the middle there. But this is the most difficult part, finding the corrective exercise files.

Let me read it one more time. So there's a Data Sets folder on the desktop, BES 320225. If you need help, raise your hand. A lab assistant can come by and help you.

So I'm going to jump over to Revit. So this is what the model looks like. So just a quick note on my data sets, I keep them very small, compact, so that we can run them. And it's not a lot of processing time. So they'll be short and simple.

But once you open up Revit and you get this model open, let's open up Dynamo. So if you go to the Manage ribbon, you can click Dynamo. And we'll get that open up.

And then in Dynamo, click Open. And we're going to start with the file called SpaceTypes_begin. SpaceTypes_begin. And that's just a blank file here.

Another note-- if you have the AU app, you can access the handout. And so I have step-by-step instructions on there and the notes that we're using. Obviously, we're going to follow along right here. But if you need to pull that up, you're more than welcome to do that too. That will help.

Anybody not have it open? We got a couple folks over here. I'm going to go ahead and dig into this. And we'll get you guys up to speed here.

So what we're going to do here, you guys keep Dynamo open. I'm going to switch over to Revit real quick. So right here on the Manage ribbon, flag span MEP settings and go to Building Space Type settings.

You can see, I have all the building type information and then all the space type information right here. And so I'm a huge proponent of using spaces. And so because if we can get our space information correct, and we can get all that populated, then we can use Dynamo to start to automate some MEP design. And I've taught some classes here before about that. You can look it up at AU online.

So to get our space information populated, we can start with space types and make sure all that's correct. But how many of you have ever gone in this dialog, and then you sit here like this and you're just going to each one and you're checking, looking at each line. Anybody? Anybody done that before?

Yeah, right? It can be a painful task. So what we're going to do is we're just going to take all that and put it into Excel. That way, we can just view it all right there. And because we all use Excel all the time.

Especially as MEP folks, we're constantly in Excel. So let's utilize that. So that's what we're going to do. We're going to take this information and write it to Excel.

So the first thing we need to do is we need to select all the space types. So let's start by doing that.

So here in Dynamo, over here on the left, there's what's called the Node Library. That's where we can access all of our nodes, for those of you that may not be as familiar. So let's expand Revit. And then expand Selection.

And there's a few ways we can select elements. We can select by family type. We can select by category. But we're going to do what's called selecting by element types. So element types is a way to select system families, but then a lot of background information that we're not normally used to working with in Revit, or interfacing with maybe.

So let's place this element types node. And then all elements of type. And so when you click a listing, it'll place it here in the canvas, from the Node Library to the canvas. And then if you just type H, it'll scroll down here to H. And we want HVAC load space type.

So as you can see here, there's the building types, and then here's the space types. And so we're going to select Space Types. And then we'll connect those up.

And down here in the left, you can see that we're running automatically. That's the default. And so when I hover over this all elements of type node, I can see that there are 125 items. And when I click this pin, it will lock this little fly out here.

And we can see all of the space types in the model. It's pretty clear. That all makes sense? You understand 454126? No, we don't know what that is.

So what we want to do is we want to use a couple of nodes here to start to break this down into some readable information that we're used to. And so we need the element.name and element.parameters nodes so we can start to dig into this.

So back in the Node Library, let's expand. So under Revit, we're going to expand Elements. And just in case I went too fast, you can click one of those subcategories to expand it or collapse it.

So under Elements, we're going to expand Element. And then if we scroll down, you'll see a name and parameters node. So let's click each of those. And we'll place the element.name and element.parameters node. And then we'll simply click the output and the input. And we'll get those connected up.

Now when I hover over, you can see all the stuff we just saw in Revit-- active storage, atrium, audience on, and so forth. And then when I hover over the element.parameters node, you can start to see some of that information.

But let me point something out to you. So when you work in Dynamo, you're typically going to be working with parameter names or parameter values. And then sometimes you'll see something like this, where you'll see the name and the value couple together in one item.

So that's good you can see that. But if we actually want to do something with it, we need to decouple that information. So that's what we're doing next.

Do you guys see that? You can see how you got parameter name and value in the same item there. Does that make sense? I'm assuming by being quiet you've got it.

So now we're going to start to dig into the parameters a little bit. And so back here in the Node Library, let's collapse Element. And then let's come down and expand Parameter.

And we're going to place three nodes here. So scroll toward the bottom there. And we're going to do name, value. And let me get these organized as we're placing them here. So name, value, and then storage type. I'll try to zoom in here so you can see.

So now we're going to connect this element.parameters to each of these nodes. And we're going to get a warning. That's OK.

So basically what we're doing here with the name and value is we're decoupling that information. So now you can see here, I have air changes per hour, area per person. So I basically extracted the parameter name. And then here is where I have my values. Now there's a warning there because, as you can see in this list, there's some null values.

And so it's looking for an actual object here. And so you can see that there's that warning. And so we can start to make a little sense of this with the storage type node here. And you can see that I have some that are double, some are element ID, some are string.

And when I expand the name, we can start to make a little bit more sense of this. You can see that things like air changes per hour and area per person are of the double storage type. Whereas things like category and design option are of the element ID type.

And some of this is a little bit beyond the scope of this class. We're not going to go too much into detail on that. But for the sake of this class, what we're going to do is we're going to filter out those double values. And so the ones that we can actually put some type of value in, like air changes per hour or something.

So what we're going to do next is filter out just that information. So I'm going to unpin those. And what we're going to do here is, first off, we need to-- so a good way to filter stuff is by a Boolean mask. And we'll get to that in just in a second.

But to be able to do that, you have to have some type of Boolean values to work with. And so what we're going to do is we're going to ask it if it contains that double parameter, if that storage type contains that double type.

So now what we're going to do is place the list.contains node. So if you right-click, this another way to place a node. You can right-click and there's a search bar. And so if you just type contains, that's that first node that pops up. And you can click it and we'll place it here in the canvas.

And then the next thing we're going to do is place a code block by double-clicking the canvas. And we're going to enter in double. But we need to do that inside double quotes.

So type quotation mark, "Double," with a capital D. And then we can click outside. And now we have a string value of double. And then we'll connect it up to list.contains.

And when I hover over this, you can see it says true. So now we need to dig in a little bit more. Let's see if we can walk through this. And so right now, let me back up and expand this storage type node here.

So you can see that there are 2,375 items in this overall list. That's a lot of stuff. And I'm saying, does that list contain double. Well, of course, it does. There's 2,000 options there.

But I'm not concerned about if the entire list contains it. I need to know if each individual parameter is of the double type. So now we need to start adjusting what's called the lacing, and even look at list at level.

So I'm going to try to walk you through my thought process because sometimes in Dynamo-- let me back up. Do you ever go to a class and they're just like, well, just try this and try this. And you're like, wait, but give me like a step-by-step way to how to get there.

So that's what I going to try to do. There's a lot of things that are a little bit of a trial and error. But let me try to walk you through the thought process here of trying to check every single item in that list.

So the first thing is I usually change the lacing. So I'm going to change the lacing to cross product. First, everybody understand what lacing is? Everybody have a good idea? Raise your hand.

Who doesn't know what lacing is? A few people. Who's just not raising your hand? You're just like, eh.

How are we doing on time? Can we do a little interaction here? Let's talk about lacing. Can I get five people over here. Just come on up.

How about one, two, three, four, five. You all come over here. And then one, two, three, you all come right here. Let's do a little interaction here. We'll look at what lacing is.

Stand up in a line right here, face each other. Everybody can see, right? So the lacing options are auto, which we don't really know what Dynamo is going to do. So auto, you just got to trust Dynamo.

Or there's shortest, longest, and cross product. So those are really what we need to focus on. So shortest, here's what it's going to do. So it's going to take-- we have two lists here. Just let me set this up just in case you don't understand.

We have one list with five items. We have another list with three items. So if I have something where I'm looking at two lists and I use the shortest lacing, what's going to happen is this gentleman is going to give this gentleman a high five. Go ahead, go ahead.

[HANDS SLAPPING]

You gentlemen are going to give each other a high five.

[HANDS SLAPPING]

And you guys are going to give each other a high five. And you guys are going to be left out.

[LAUGHING]

That's what shortest is. If we go with longest, let's do it again. High five, high five.

[HANDS SLAPPING]

High five.

[HANDS SLAPPING]

High five. And then you're going to give them a high five as well.

[HANDS SLAPPING]

Now it's going to be fun. Cross product, he's going to high five all of them. You got to run, you got to run. We've got to speed this up.

And then you're going to high five all of them. And then you're going to high five all of them. You all got it? That's lacing. Give them a round of applause.

[APPLAUSE]

So in this case, we're thinking, OK, we need to use cross-product lacing because that should get us everything we need. So let's try that.

So if we changed it to cross product, now we have a bunch of true values. But look here, there is 125 items. But over here, there's 2,375.

So I'm still like, hang on, this isn't right. And so let me walk you through the thought process again. Let's see if we can dig into this.

So if I say, let's look at lists again. Let's say each row here is a list. I'm looking to see, does each row contain, let's just say, a male, a man.

And so what I'm doing. I'm saying does it contain double. And so what it's doing right now is it's actually taking the entire row and saying, is there a male on this row. Yes. Is there a male in this row? Yes, yes.

That's why I only have 125 because it's only checking up one level. So I need to dig down one level to where I can check each individual item in the list. Does that make sense?

So now you guys completely understand lacing and lists at level. You all got it. So what we're going to do is we're going to change the list at level. So we can do that by clicking this little arrow here and clicking Use Levels.

So now we're at L2, which is basically the default, because nothing changed. And so what we're going to do is we're going to change that to L1. And now you can see that these numbers start to match. 2,375, 2,375.

But the problem here is that there are 18 items in this list. And then I go to another nested list, 18 items, 18 items. Whereas here, this is just all one list.

So my next thought is, let me maintain the list structure here. So I select this option, Keep List Structure. Now I'm where I need to be. 18 items in a nested list, 18 items in a nested list. Now I have something I can work with. Everybody there? Awesome.

For those of you that are still a little new, hopefully that makes a little more sense. Do you have a question?

AUDIENCE: [INAUDIBLE] code block?

JASON BOEHNING: The code block? Let's see.

AUDIENCE: It's underneath your [INAUDIBLE].

JASON BOEHNING: OK, I'm sorry. I was like, wait, which-- OK, sorry. OK, cool.

So we broke down lacing. We broke down list at level. Looked at keep list structure. Now we got to where we want to be.

One more thing I'll mention. You may be thinking, oh, we could actually do it like this. So sometimes you may take a little bit different approach and you may be able to arrive at the same thing. And that's OK. If you can get to the same end output, you're in good shape.

Now let's pick up the pace here and we'll start to roll through this. So now we've got list.contains. Now we have Boolean values that we can use to filter these out.

So back to that filter by Boolean mask, so right-click and type filter by. And we'll select Filter by Bool Mask. And we need two of these.

So when this node is highlighted in blue, I can simply do a Control-C and Control-V, and I can place two of these. And what I'm going to do is I'm going to take this list.contains node with all those Boolean values, and that's going to be my mask. That's going to control what comes in and out.

In other words, what's true and what's false. If it's true, it's going into the in output. If it's false. It's going into the out output.

And so what I want to filter is all my parameter names and all those parameter values. So I'm going to connect those to those lists inputs. And now I should have what I need here, which is just those parameters that are of the double storage type.

So now we really have the data that we need. Now we just need to format it in a way that we can shoot it to Excel. And so what we're going to do now is we're just basically going to do some list manipulation just to get it in an output that gets us to Excel.

So we'll go through it. And then I'll explain some of it to help you make a little more sense of it.

So right now we just have a bunch of lists here. And so the first thing we want to do is we want to pare down this list. And the reason is because I have several nested lists that just contain the parameter names.

But I don't need to export all of these to Excel. All I need is basically one of those nested lists.

So we're going to use the get item at index node. So right-click and type get item. And we're going to place get item at index. And then I'll double-click. And we'll place it on the code block. And let's type 0.

And then you can place a semicolon. Or if you click out, it'll place it for you. And then remember, we want those true values. And then we want at item 0. And you can really do any of them.

But now I have just the parameter names. And then down here, I have all the parameter values. Now you could probably do something and come up with a long way to just write multiple iterations to Excel. But we're going to combine everything together and send it to Excel all at once.

So we're going to use a bunch of the add item to front nodes. So if you right-click and type add item, you can see there's two nodes here-- add item to end and add item to front.

So we'll click Add Item to Front. And then we'll do a Control-C. And then we'll paste two more of those onto the canvas here.

And then if you can try to arrange them like maybe a triangle, if you will, facing to the right. Because basically what we want to do is we want to add all those parameter names to all of our parameter values.

But the first thing we want to do is we want to add the text space types to all those space types because it makes more sense, put a title in Excel. So let's double-click here above that get item at index node and type "space typed" inside double quotation marks here.

And so this is going to be the item that we're adding. Let me drag this up here. That's going to be my item. And then let me zoom out. Let me handle this carefully here to make sure that we can all see it.

So back over here to the element.name node back at the beginning, you can see active storage, active storage hospital. That's what we need to connect this all the way over here to that list input. So I apologize, I know it's probably small up here on the screen. I'm going to hold it up here for a minute so you can see.

So basically all we're doing is adding that in front just so that we can make more sense of it when we get to Excel. That's all we're doing there.

Next, let's go ahead and connect these up. And then I'll explain what we did here. So let's take our parameter names here and add that to the item input of this one, the list.add item to front node here at the bottom.

And then I want my in values, which is all those parameter values here, and add that to the list input. And then we're going to need to modify the list at level here. Let me keep this open so you can see.

So we're going to enable use levels. And then the first one needs to be at L2. And the second one needs to be at L3. Everybody doing good so far? Everybody tracking with me?

Now we're going to connect these in, all those space types. I'm going to add them to all the parameter names and parameter values. And I also need to use levels.

And the first one's going to be at L1. And the second one's going to be at L2. So let me zoom in here and you can see a little bit.

So as you're doing that, let me explain what we're doing. So when I export information to Excel, each nested list is going to populate to a row in Excel.

So what I want here is I want all my space types and then all the parameters, I want that written to Excel. And so that's why we're working to input it.

And it's really hard to explain. I'll try to zoom in here in a minute. And then this is something you're going to need to dig into at home a little bit afterwards. And it'll make a little bit more sense. But I'll do my best to explain it here.

So here I have space types, and then all those parameter names. That's what's going to go in that top row in Excel. And then here in the second nested list, I have active storage, which is the first space type. And then I have all the values for it. And that's going to go on the second row.

And in the same way. So I have the space type and then all of its parameter. Space type, all the parameters.

And so that's why we had to do some of this manipulation here with our list at level to get it into this format. Because at first, you'd end up with something like all the space types, and then all the parameter values, something like that.

And so when you start to input this in, you've got to know what format you want to get it in. And then you can start to just manipulate these until it gets into the format you want.

The next thing we're going to do is we're going to export this information to Excel. So let's scroll back up here. And we'll collapse Revit. And then expand Import/Export, Data. And then Export Excel.

So we have all the data. Now we just need to get some of this information on which file we want to export. So if you right-click and type file path, we'll place this file path node. And when you click Browse, hopefully it'll open up the Data Sets folder for you. And you can select space types, which is just a blank Excel file that I provided in the exercise files.

So select that and click Open. And then let's place another code block. And we're going to put two lines in this code block.

So what we need to do is type in a quotation mark. And then type sheet 1 with no space. And then add a semicolon, and press Enter. And then type 0, and put another semicolon.

Now real quick. Before we connect these up, I want to point out something. Right now we're still running an automatic mode. So I always like to change this to manual. When I change that to manual, I now have a Run button. And I can choose when it's going to run.

And the reason I like to do that when exporting to Excel is because, sometimes you may connect something up and then it starts exporting and you're like, wait, I wasn't fully ready yet. And you may enter into some infinite loop. And you're going to have to shut it all down.

So let's connect the file path node to file path. And then sheet name is our sheet 1 here. And the start row, start column, we're going to use the 0. And then data is all of our data right here.

Now we can double-check it, make sure we have everything we need. The overwrite input here, we can put a Boolean node here and choose whether or not we want to overwrite data. Right now, it's a blank file. We're not going to worry about it.

So once you have all this connected up, click Run. And Excel should pop up at the bottom. And when we open that up, you should see all of the space types, all those parameter names, and all those parameter values.

Everybody get it? Raise your hand if you got it. Awesome. Is that something you guys could use? No? Anybody?

All right.

AUDIENCE: Inspiring.

JASON BOEHNING: Inspiring. Awesome. So now, let me see if I can just backtrack a little bit. And we're adjusting the list at level so that we could get all of our space types in front of each value.

And that's because, once again, each of these was a nested list in Dynamo. And so now you can see how it output into Excel. Cool.

So you guys now know how to export data to Excel, which is something we do all the time, us MEP folks. So we have a lot of data that we're working with. We want to see it all.

And so another thing that you could do is modify this, and then write it back to Revit. But that's another class. I've covered that before a little bit. And so we're not going to go into that today.

Let's go ahead and close down. So there's a little X here next to space type begin. You can just close that down and click No. We don't want to save it.

So just a quick FYI while you're doing that. I do have the final versions in there for you. And so you're going to get all this. And so there's a final version in there for you.

And so I should have mention that. If you do get stuck along the way, you can just open those up and take a look. So all right, our next exercise-- let me get this up. So same Revit model. We're going to be using the same Revit model the whole time. It's simple, it processes quick.

And then the Dynamo file is PlacedFamilies_begin.

AUDIENCE: Couple questions on how--

JASON BOEHNING: Sorry.

AUDIENCE: How we can extract [INAUDIBLE] making the area [INAUDIBLE] how we can put structures behind the string.

JASON BOEHNING: I'm sorry, can you repeat that one more time?

AUDIENCE: Saying if you a [INAUDIBLE], so on top of the string. So how should we put [INAUDIBLE]

JASON BOEHNING: So I think his question was, if you have a string, how do you tack on like the units on it. There are a few different ways we could do it.

I could show you afterwards. We'll chat about it. So I'll just dig into it.

PlaceFamilies_begin. So I'm going to click that category in the Node Library to collapse it. Now, so what we're doing here is we're going to look at tracking the families that are placed in our model. And we're going to look at a couple of things here.

We're going to look at the number of family types that are being used per category. And then we're going to look at the number of instances per type. And I'll set this up a little bit.

So anybody working in a large team, and all of a sudden, let's say air terminals, for example, or lighting fixtures. And you have these set types that you want to use. And then all of a sudden, all this random stuff starts to show up.

And you're like, where did that come from. Who went and grabbed that family and threw it in the model? Anybody? Nobody's ever had that before, So what we're going to do is create a script that will create a nice little bar chart for us.

And we can just see quick numbers. And so once again, you start to see a spike somewhere. And then that clues you in to, OK, hey, I need to investigate here. So that's where we're going with this one.

So got my handout here. So I can keep track of everything. So once again, we're going to use element types.

So expand Revit. Expand Element. I'm sorry. Expand Revit, expand Selection. And click Element Types. And then All Elements of Type. Now when we expand Element Types, we're looking for family instance. And I'll show you a couple of things here.

So family instance and family symbol are two things that you see here. So I'm going to select Family Instance and connect that up. And so these are all the instances that are actually placed in the model. And you don't have to do this.

Whereas family symbol are all the family types that are loaded in the project. So family instance are instances placed. Family symbols are just family types loaded in the project. Does that make sense?

So just a quick background. This is actually the second year in a row that I've done this class. And I've modified all the examples. And so last year we took a look at an example using family symbol. And so if you're curious about that, just look up the class from last year.

So right now, we, have family instance. So we can see the ones that are actually placed in the model. And now what we want to do is we want to get the category, and we want to start to group it based on the category.

And so we're going to use a node called element.getcategory. So collapse Selection, and then expand Elements. And once again, scroll down to Elements.

And then if you scroll down toward the bottom, there's this get category node. So let's place that over here. And we'll connect this up. And then you can see that we have all these categories here.

But now we need a category.name node. So let's do that. And then I'll explain it real quick. So we'll collapse Element, we'll expand Category, and then we'll select Name.

Sorry, moving a little fast here. So if you look at the outputs, you're like, well, that's the exact same thing. Why do we need that extra node.

And so if you look here, the output here is a category, whereas the output here is a string. And so it's very important with the data type that you're working with. And so right now we want to use a string because we want to group and sort this information. And so therefore we need a string.

And so there are things like category.name, familytype.name, element.name. That's just going to give you a nice little string with that information.

Next, we're going to use a couple of things here. We're going to use the group by key and then the sort by key node. So if you right-click and type group by, there's a group by key. And then let's go ahead and place the sort by key.

Now the key is going to be simply the category name here. That's going to be our keys. And then we need to go back to all elements of type because we want to get those actual elements. That's what we want to work with here.

Let me zoom in here just to make sure you guys can see. So all elements of type, that's all those family instances that are placed. And we're plugging that into the group by key. And we're grouping it by category.

So basically you have all these elements. And we want to group them by category. So we can start to put it in buckets to make sense. And then we're going to sort it after that.

And so we can actually just do a one to one here. All those groups, it's going to be our list here. And then we'll use those same keys. And then we'll start to sort it based on category.

So basically what we're doing here is we're sorting about air terminal, duct fittings, lighting fixtures. So alphabetical order here to get it to match what we see in the project browser.

Now the next thing we're going to do here is we want to start to group it then by family type. So let me move this over here. So I'll tell you what, because this is a familytype.name.

So back in the Node Library, let's expand Family Type. And then once again, here's that familytype.name. And our sorted list is going to go in here into family type.

And then I need to place another group by key node up here. So basically what we're doing is we grouped it and sorted by category. Now we're going to group by family type. Try not to cross any wires here.

And it turns yellow because there's a warning here. So basically what we need to do is we need to use the list at level to get it into the correct format that we want. So here I have 251 items.

So basically we're just not lining up. And Dynamo really doesn't know what to do. So what we're going to do is we're going to use the list at level. And we're going to set them both at level 2 so that everything will match up and it can group it accordingly.

So basically what it's doing is it's just assigning it a one-to-one key. And so for example, everybody here at AU, you registered for a class, you basically get a key to come in here. And so that's how everybody is grouped. Everybody's grouped in different classrooms based on a key, if you will.

The same thing we're doing here. We're assigning each element a key. At first, we did it with a category. And said, hey, 24 by 24, you're an air terminal. And two by four, you're a light fixture. And we're sorting it and grouping it by category. And then we're doing it here by family type.

Now remember, we're doing two things here. We're going to look at the number of family types per category. And then we're going to look at the number of instances per type. So we're going to do two things here. And so right now, we're going to go toward the bottom, if you will.

And so underneath that, let's right-click and type count. And then a few nodes down, you'll see count. And make sure that it's list.count.

And we're going to take that group's output and put it in here to the list input. And then once again, you can see that we just have one value there. But we're actually looking for more here. We're looking for a value for each category.

So we need to use levels again. And this one is at L3. So basically we need that top level of list there, which is our categories. And we need to get the number of types that are being used.

And so these are the ones that are actually being used in the model. It's not just the ones that are loaded, but the ones that are actually being used.

And so the next thing we're going to do is we're going to use the list.chop node. Type chop, and we'll place that node. And then put a code block. And we'll just put a number 1 there.

And what we're doing here is what I had to learn by trial and error, is that where we're going is we're going to use a node in the Node Model Charts package. And it's going to get us a nice little chart.

And I just had to learn this by trial and error. But that node, it needs the numbers to be nested in a list. So that's why we had to use list.chop here to go from basically a single list here to all of our numbers in a nested list.

And so sometimes when you're dealing with custom packages, there is some of that, because however the user developed it, they're looking for a certain thing. And so that's how I arrived at that.

So now let's come back here and let's get all of those categories. And so to do that, let's place a watch node just to help us here. So if I type watch there and I come back, so the sort by key right before family type, I'm going to take the sorted keys and put it over here in the watch node just to help bridge the gap here.

Let me zoom out just so you can see here. So we have group by key, sort by key, to watch node. Everybody got that? Cool. All right, we'll keep moving on then.

So real quick just to show you where we're going. If you scroll all the way down in the Node Library, expand Node Model Charts. And I'm jumping ahead just to show you where we're going. So under Add-Ons here, you can see these are all the packages that I have loaded. Yours may look slightly different.

Expand Node Model Charts, and then select Bar Chart. And I'm going to move this over. So as you can see, this bar chart, I need labels, values, and I need colors. And it needs to be a one-to-one relationship for everything.

Meaning, if I'm looking at four categories, I need four colors. If I have 10 categories, I need 10 colors. And so what we're going to do here is make basically a parametric equation to help us, that we can reuse the same graph on multiple models, regardless of how many categories they have.

So right-click and type count. And we'll find that list.count node again. And we can go ahead and connect these up here.

And for this one, I just need the one value. And then let's double-click and place a code block. And this is just to make it short and sweet for this exercise. And I'll show you what we're doing.

But type 1..255..#X. So basically what I'm doing is I'm creating a formula. And then I'm putting in my count, which is based on the categories.

And then right-click and type color. And the first one that pops up should be by RGB. And then for this example, let's connect it to the B, which is blue. So basically what I'm doing is I'm just trying to create a quick parametric way, if you will, to create a bunch of colors.

Now for labels, here's my values. Here are the numbers. So list.chop, that's going into values. And then back over here in the watch node, those are going to be our labels. Those are our categories. And then by RGB is obviously our colors.

Let me zoom in here and you can see. So basically what I did here, list.count, the formula, by RGB, that's just to create several different colors quickly. So if you have more time at home, this is something fun to play with, create a bunch of different colors.

Let me show you what you can do here. So connect that up to R, we get some nice pink there. They're green. Or like I said, this is just a quick way to create a bunch of colors.

Obviously, if you want to take a more serious look at this, you want your colors to make a little more sense. Anyways, here is our bar chart from Node Model Charts, which is a pretty cool little package. And so I'll point out a couple of things here.

So you can hover over and you can see all the information there. So you can see air terminals for duct fittings too. And so what this is is the number of types that are being used in each category.

So if you were to see air terminals 4, you're like, that makes sense-- supply, return, exhaust, whatever. I can work with that. If that was like air terminals 25, you're like, wait a minute, do we have 25 type. Really? Is that what we're doing now? Does that makes sense? Cool.

So this little button right here, you can drag it. And it will expand this chart. So that's pretty cool.

You can also right-click and select Export Chart as Image. So that's pretty cool too. So then you can have an image of it and just shoot it to somebody. And then they have an image of this graph of the data in your model.

Let's keep going. We've still got one more thing in this example here. And that's to get to all of our instances, number of instances of each family type that are placed. Excuse me.

So what we're going to do is we're going to come back up here. We're basically going to be working off of this list.groupbykey right after the family type. So we're still going off of that data. And we're just putting it in ways to make a little more sense to us.

So up here, let's type count again. So we need list.count. We're doing a lot of counting. And this is where it gets a little tricky in my handout. I have colored arrows in there to help keep track of this. But the group's output here, we're putting into the list.count. Hopefully those arrows help you in the handout because I was even confusing myself there trying to break it all down.

Now let's place another node, the flatten node. And we're going to put in the unique keys into that list input. So basically we're just flattening all the information. That's all we're doing. We're trying to get labels here is essentially what we're doing for our chart.

Now if you want, basically we need to duplicate what we have here. So if you can use a crossing window to select these nodes. We'll see if we can do this. It may get a little dangerous here.

And I'm going to zoom out and do Control-V. And I'm going to drag this up here. So now really what I need to do is I just need to use this list.count node here. And then my flatten node is going to this list.count.

And then let me double check and just make sure we have everything. Oops, I missed one step here. So above list.flatten and this list.count, we need to use levels. And that needs to be at L2. Everybody there?

I'll give you a couple of minutes here. I'll zoom in just so you can see. We're just basically replicating to get to the information that we need to put in the Node Model Charts. Everybody good?

So we're going to place another bar chart node. And then once again, here's all of our values. And they're nested.

And then over here in the list.flatten node, we can expand this and just make sure that that's our labels. And then our colors, obviously, goes to colors.

And once again, we can play around with what colors we want to use. You can have some fun with that. But now, let me expand this a little bit.

Now obviously we're looking at-- oops, I'm sorry-- obviously, we have this small model. And I'm just showing you so that our graphs don't get too big. But you can start to break this down by just the mechanical categories, or even more specific than that, or just electrical or just plumbing.

And so right now we're doing everything. So this may look a little bit complicated. But hopefully the point is that you can see the direction here. So that you can look at a bar chart and you can see that here's a spike here, maybe that's something I need to look at. And then you're like, oh, well, that's just my two-by-four light fixtures. So obviously there's a lot of those.

But if you have several different types, or you see a type that pops up that shouldn't be there, then that's a red flag. That's something you can start to investigate. And so that's really the whole idea with this, is that we can extract information out, put it in a format where we can quickly see where we need to go investigate.

That's what analytics is. It helps us to keep track of that information. So does that makes sense? Is that something you guys can use? See a lot of head nods. Awesome. We've having fun too? Or is the lunch starting to set in and you're just like, oh, it's time for a nap.

Well, we have 30 minutes left. Well, let's crank through another exercise here. So once again, we can close this and not make any changes.

So now we're looking at DuctTypes_begin. I'll give you a minute to get that open. Catch up here. DuctTypes_begin.

I have some information, or some nodes are already populated for you. So what we're doing here is similar to what we were doing in the last exercise. But we're getting a little bit more granular, if you will.

So whereas before we were looking at all the family types that were being used in the model. Now we're going to dig in to one specific type, or one specific category, if you will. And we're going to look at duct types.

So once again, we're getting a little detailed. And I'm just going to show you some other charts. And then another package that we can look at. So that's the point of this exercise. That's where we're going.

So I have step 1 and part of step 2 done for you here in the handout. And, oh, remind me to show Monocle-- don't let me forget-- in this exercise.

So what we're doing here is just explaining where we are. So we selected all of our ducts, or we selected all of the ducts by element types. And so I'm going to change this back to automatic. And you can see where we're at here.

So these are all the ducts that are placed in the model. And then we're going to use the nice get parameter value by name node to get the type. And then we're going to do what we did before where we're going to use that element.name node to get us a string value.

So let me go back and just collapse this so that we're all on the same page here. And we'll expand Revit, Elements, and then Element. And we'll scroll down close to the bottom and select Name. And we'll get the name here. This is the type name for each duct.

And then we're going to group and sort. Again, this is something that I do quite a bit. So we're going to group by key. And we'll go ahead and place the sort by key.

What did I do? Oh, there we go. Sorry. I think I got cross-eyed for a minute there.

So our key is going to be the type name here. And then if I zoom back over here. Let me pull this in a little bit. And so I'll take all my ducts here and put it into the list input.

So I basically want to assign a type name to every single duct. And that's how I want to group it. And I'm also going to sort it as well. And so a lot of times if you group it, you might as well just sort it, keep it all there nice and in order.

So let's step 2 in the handout. So let me go ahead and just pause here for a minute. And I want to show a package called Monocle, which actually the creator is right here in the room, Mr. John Pierson.

And this is a nice little package. It's called Monocle. Sorry. And so there's just a couple tools that are really nice. And so there is a line of fire 3000. And I actually have an updated version that they didn't get on the labs here. But those tools are actually right here across the top.

So what I can do is I can select this here. And I can say, OK, do I want to align maybe by the bottom of the node or the top of the node. And I'll just quickly align those for you. So that's pretty cool.

Another thing is the package usage doge. So we'll select that. And so one thing-- oh, wait, I'm sorry, that's not what I wanted to do. Not yet. He-he.

Custom colored grouping. That's what I meant to select. So in the handout, you'll notice that everything is grouped. And it's got a little label on it.

And so you can do that by-- so I can select nodes here. And I can right-click and select Create Group. And then it would give you a default color and default text and all that.

Well, here you can create some custom grouping. And so you can create some type of standard around your Dynamo graphs. Here's the default that John created for us, like background, input, control.

And so like here, I'll select these. And I can just say, these are background nodes. And then so it quickly does that. Gets us a nice textile there.

And so, I don't even use the default Dynamo tools. I just use this now. That's what I created this handout with to hopefully keep it nice and concise for you. So I encourage you to get that.

A minute, there's also, like I said, the package usage doge. And so if you have a custom node in there, you're like, I don't know where this came from, you can use that. It'll tell you what package that came from. And then you can annotate it as well.

So super useful. I use those quite a bit, to be honest. It's not just because John's here in the room.

Let's continue on here. So now we're at step 3 in the handout. And so we basically have all the information we need right now. Now it's just a matter of getting it in a form to get into our Node Model Charts.

So we're going to use the count node again, list.count. And so here in our sort by key node, we're going to take our sorted list and put it in the list input. And then we need to, once again, you can see that I just have a single value.

And so that should tell you immediately, well, we don't just have one type that we're dealing with. So we need to use levels. So we're at L2. Now I have a count for each type. So hopefully, like I said, I put a lot of repetition in here just to help you see those things you should look for.

We're going to use another list.count node. And we'll put it down here. And this one is going to come from our sorted keys.

And this is a number. So this is basically taking us to the number of colors. And so you could just put a bunch of color palette nodes or something like that.

But trying to keep it parametric for you so that if you were to open this up and run it on any random project, and maybe you have like 5,000 types or something and you create this massive chart, but anyways, that's what I'm doing here is trying to keep things a little parametric.

So let's place another code block. And we'll do 1..255..#X. And we'll put our count there, which gives us those number of types. And then we'll place another color.byRGB node. And whatever colors you want to use. Just connect them up. It'll create all types of random colors.

Once again, you can be more detailed in how you create your colors once you start to dig into this more. Now scroll all the way to the bottom. And we'll dig into-- why can't I see-- Node Model Charts.

Oh, I collapsed it. Node Model Charts, Charts. Gosh, sorry. I'm all over the place. Not bar chart.

This time we're going to do a pie chart. Carl was talking about donuts and pies in his class yesterday. So it's after lunch. We need some pie. There we go. That's for you, Carl.

So our labels here-- so let me back up. So this list.count, this is our values. Our labels here is coming from the sorted keys. And then color by RGB, that's our colors, obviously. And so that'll get us a nice bar chart here, showing us the number of ducts of each type that are placed in the model.

So once again, this is important because if you're a mechanical engineer or you're a mechanical contractor, you need to make sure you're using the correct types. And your designers, your detailers, are using those correct types. Because if you've got a fab shop that's set up to do mitered elbows and they're using radius elbows, that's a problem.

And some of that can jump out to you when you're looking at the model. But if you're dealing with a huge model, let's just say something like a four-story building, sometimes digging through that takes time. But if you can open up a graph, click Run, and, boom, there it is, and you see something that pops up that you don't want to, then once again you have a place to investigate. So that's the theme of what we're doing here.

So that is the pie chart in Node Model Charts. And once again, I just want to reiterate this. So what we did here, that actually gets us the data that we want. What we did here, that's just to get it in the format to put in to Node Model Charts.

So that's the pie chart from Node Model Charts. Now what I want to do is show another package called Mandrel. And so basically you're going to be using a lot of the same nodes here. We're just going to delete this stuff for Node Model Charts and then use Mandrel.

So in the handout here, step 1 is simply removing a few of the nodes. And so let's do that together. So we still need list.count here. So let's move that.

And then these right here, we'll just use a window. And we'll delete them. And so I have sort by key and I have list.count. Still at level 2. And now let's dig into Mandrel.

So I save that for the end because Mandrel is a heavy package. And it really taxes the resources. And so I would think we're doing good on time because I'm basically going to bog down the computers by using Mandrel here. That's why we saved it for the end.

So in the Node Library here, expand Archi-Lab, Mandrel. And then, let's see here, let's just start-- how do we want to do this? First off, let's expand Charts. And I'll just show you.

So Mandrel is really cool package. As you can see here, there's all kinds of things-- area chart, bar chart, donut chart. So a lot of the same stuff that Node Model Charts will do. But there's also some cool packages like grouped bar chart and a line chart and a normalized stacked bar chart. So it gets a little bit more detailed with some of these charts you can create.

And so last year, I went into some of these in a little bit more detail. This year, we're focusing a little bit more on Node Model Charts. But I still wanted to throw out some Mandrel here.

So what we're going to do here is a horizontal bar chart. So expand, once again, Archi-Lab, Mandrel, Charts, Horizontal Bar Chart. And there's chart data, data from CSV, and style. And so the data can either come from inside of Dynamo, or you can import a CSV file and use that as well.

But We're not going to do that. We already have our data. So select Chart, Data, and Style. And so that's basically the nodes that we're going to use here.

And then we need to arrange it like so. Let me show you here. So the CHART, Let's take it all the way to the right. The data node, top left. And style, bottom left. And so as you can see here, the input of the horizontal bar chart.chart is data and style. We got data and style. So everything lines up.

And so any chart that you're creating or any graph that you're creating Mandrel is going to look something like this with these chart data and style nodes. Just look at the inputs and just line them up accordingly. That's my best recommendation for you.

Now that we'll back up in the handout now. And we need to fill out some information here with this horizontal bar chart node. So we have values. We have some values right here. We have some names right here. And now we need a domain.

And so under Mandrel, there's Expand Charts. And then scroll down to Miscellaneous Nodes. And then select Domain. So once again, Archi-Lab, Mandrel, Charts, Miscellaneous Nodes. Sorry.

And then let's place a code block and just type zero. We're not going to have any less than zero. When we're setting a domain for our chart-- that's not that kind of graph. So zero is a good starting point.

In the handout, I have an integer slider there that you can use. But we can just simply type another line. And let's just type 50. Just for sake. We're speeding this up a little bit.

But if you didn't know exactly what it needed to be, you could use an integer slider. And that would help you keep that parametric. So now we have a domain here, a domain for our chart basically telling, what's our range.

So in my simple little model that'll process quick, we don't have more than 50 ducts. Or no type has more than 50 ducts. If we had a large project, could be thousands.

So list.count, these are our values. And then sorted keys is going to go to our names. Those are our duct types. And then our domain here goes to domain.

Now one of the difference I want to point out is that Mandrel will use some default colors for you, which is nice. So you don't have to create some code block with a formula to create colors. Or I don't know, maybe you like creating the colors. So maybe that's a negative. But anyways, it will do default colors for you.

And then we also need to put in an x-axis label down here. So you can double-click and we'll type "number of ducts." And we'll put that all in inside of quotation marks there. And that's going to be the x-axis label.

Now we'll connect data to data, style to style. And we just need a couple more nodes here. We need to create a report. And then we need a report window here.

So back over here in the Node Library, scroll down here. Let me help you see it. So Archi-Lab, Mandrel, Report. And then as you can see, you can create an HTML, PDF, or window. And so here we're going to do create report, and then report window.

So basically what that does is it gives you a window right here inside of Dynamo. Whereas these other ones obviously-- a PDF, that'll export a PDF or export in HTML. And so, if you wanted to create some type of web version or something like that, you could definitely do that.

Next, we're just going to connect these up. Oh gosh, I messed up here. So it's good. We're just going to process a minute. But anybody know what I did there?

AUDIENCE: Automatic.

JASON BOEHNING: Yeah, automatic. So as soon as I connected, it started cranking. I usually like to tell it when I wanted to crank. So I mean, it should all work out. But it's just now I have to wait before I can connect another node.

Here we go. So I'll just keep running automatic. Whatever. So when I connect it up, now it's going to crank again. Now I'll click Launch Window. And we have a window here inside of Dynamo.

And as you can see, our domain, zero to 50, number of ducts. And so, but different package, different type of chart. And we have, once again, just another type of way to visualize it. So maybe you like looking at a pie chart, maybe you like looking at a horizontal bar chart.

But another thing that's cool, and Carl was showing this a little bit in his class, is that you can actually select some of these items and it will adjust for you. And so I don't know if it's doing it. But anyways, like I said, sometimes Mandrel will bog down your machine.

And sometimes the charts, you can click it and it'll rearrange and different things can organized for you. So Mandrel is definitely a cool package that I would encourage you to check out.

So it's not all. I have a little bonus for you. We keep going. Although I may have bogged down your computers. But we still have 15 minutes. So I'll walk you through a couple more things here.

But what do you guys think so far? Is this something that you guys could use? Something that'd be helpful to you? Awesome.

I mean, this is some of the stuff that I've been doing, that I'm using. And so I just think it's cool to come here and share. And once again, a way that you guys can dig into your models and start to make a little more sense of what's there.

So we're going to shut this down. And so I actually have two more exercises in the handout. We don't have time to go through both of them. But I tell you what, we can open up the final versions and take a look at what's there.

And so exercise 4 is something that I'm still playing around with a little bit. And so that is the lighting example. So we have lighting began. Let's go ahead and open up the lighting final. Click Open. So I'll collapse all this.

So what we're doing here is I'm basically selecting all the spaces. We're getting the average estimated illumination. And then we're creating a heat series plot.

And so it has this default size. But we really need to expand this out here to make a little bit more sense of it. But once again, so it's a heat series plot.

So you can visually look at this and start to tell where you have more lighting density. And so once again, this isn't something that I use on a regular basis. But I'm still playing around with it. But really I just wanted to see how I could use this heat series plot node. And I thought it was pretty cool. But I thought you know illumination would be a good thing to look at.

And so, I don't know, you guys take this, run with it. Maybe you can come back with something in a couple months and say, hey, I'm doing this with it, check this out. So anyway, something that you can check out there.

So once again, the darker the color, the more average illumination that you have in a space. Or even maybe more telling-- you look at something that's zero, there's no lighting there, something that you're missing. So something that I thought was cool. Let's close that down.

The next one that I have is to be able to tell if a dimension has been overwritten. So when I go to my level 1 mechanical plan, I just threw in some dimensions here. It's bogus. You don't necessarily measure to the edge of ductwork the edge of ductwork. But anyways, I have dimensions there.

And anybody get a model and you're like, wait, these dimensions don't quite line up. Maybe somebody messed around with it. I'm not going to show you how to override dimensions because you shouldn't do that. But there is a way.

Where did it go? Dimension, Override, Final. Let's open this up. And so this is getting a little bit more advanced in that we used a Python script node.

And so I'm not a Python expert, by any means. But I took John's class last year, Hack It Til You Crack It. And just I went back home and, OK, let's see what I can do. And so sometimes you can play around with something.

And so I saw this example online. I started playing with it and trying to see what I could do with it. Anyways, let's take a look. So I'm going to run this.

And so I have this Python script here which is basically looking for overwritten dimensions. And then I'm going to count it. And I just show the number here. So I can see that there's two. So that tells me that, yes, two dimensions have been overwritten.

And then so I also added this where I overrode the color. So we can come into here, and now you can see in the view that these two dimensions have been overwritten. So now that's something that I can go look into and be like, OK, why'd you override those dimensions.

Maybe you get an architectural model and they overrode the dimensions. That's something you need to know. Especially as we get more down the line into construction, we need to know that. So anyways, once again, something that you guys can use and take a look at there.

So at this point, we just have maybe a few minutes left, just showing some other things that are here. So also when you exercise files folder, I'll show you, I have this file called Node Model Charts. Just named it right after the package. But it's basically, this is what I was using when I was figuring out how to use these nodes.

And I believe I got a lot of this from the website of the creator of this package. But just so that I could see basically the format of the data that those nodes needed. Because if I could do it at a simple form, simple numbers and letters, then that helped me in my mind to say, OK, now when I have spaces or air terminals or whatever it may be, now I know what form I need to get it in.

And so we just went through a lot. We went through a lot of stuff. And you guys have been taking classes all week. So you may be thinking, here in a few hours you be thinking, wait a minute, I have no idea how to do that. Well, here's something that you can use as a resource, as a foundation as you start to dig back into this. So you can see the format that the data needs to be in before it goes in here.

And so here's the bar chart, the pie chart, and then another heat series plot. And so just some stuff I was playing around with. So that's something that I want to give you guys so you guys can play around with.

And hopefully, like I said, in a few months or next year, you guys can come back up to me and say, hey, come check this out, check out what I'm doing. Or maybe you guys will be up here speaking. And so that's the goal.

So with that, we went through the bonus exercises. So let's wrap up. I want to just share a few things here.

So I think the conclusion that we can draw is Dynamo, it is great for analytics. It's also great for linking parameters together and calculations. But it's also great for analytics. There's some really cool things we can do. There's so much information that we can extract. And there's some really awesome packages as well.

And so I want to end by sharing a quick story. And so for those of you that have attended my class, you may have heard this before. I hadn't shared it in a year or two. But I'm from Texas. I like barbecue. We have good barbecue in Texas.

And so I've been to I think over 75 barbecue joints in the state of Texas. I live in Houston, my parents live in Amarillo. 600 miles apart.

So we crossed through Dallas or Austin or even San Antonio. And so we have a lot of time to hit up barbecue joints. So here's what I want to share with you.

I've been to several places and eaten a lot of great barbecue. They all do it very differently. They use different types of wood. They use different cuts of meat. Some smoke it for eight hours, some for 12 hours. Some use sauce, some don't. So they all do it a little bit differently.

So we have several people sitting in this room. We looked at lacing and list at level. We looked at Node Model Charts and Mandrel and all this stuff.

And so all you gotta do is find your way of using Dynamo. Find your way of making good barbecue. And then you can start to find ways to become more efficient to get better models, to be able to dig in there, find problems sooner, earlier on in the design, earlier on during pre-construction so we can start to avoid some of these issues.

And so that's the goal. We don't just roll out new tools to have new technology. If that's the case, it's pointless. We actually have to implement it and use it in a way that will work for us to make us better.

And so sometimes I never want somebody to leave a conference and just thinking that it's all fluff. So I hope you guys are leaving with something that you're like, hey, I can actually use this. I can go back next week and start using something.

So with that, I'll go ahead and wrap up. Please fill out the class surveys. It's on the app. Click that little button up there. Click My Surveys. You'll have a list of them.

And that's all I got for you guys. So thank you guys for coming. I hope you have a great rest of your day.

[APPLAUSE]

______
icon-svg-close-thick

쿠기 기본 설정

오토데스크는 고객의 개인 정보와 최상의 경험을 중요시합니다. 오토데스크는 정보를 사용자화하고 응용프로그램을 만들기 위해 고객의 본 사이트 사용에 관한 데이터를 수집합니다.

오토데스크에서 고객의 데이터를 수집하고 사용하도록 허용하시겠습니까?

오토데스크에서 사용하는타사 서비스개인정보 처리방침 정책을 자세히 알아보십시오.

반드시 필요 - 사이트가 제대로 작동하고 사용자에게 서비스를 원활하게 제공하기 위해 필수적임

이 쿠키는 오토데스크에서 사용자 기본 설정 또는 로그인 정보를 저장하거나, 사용자 요청에 응답하거나, 장바구니의 품목을 처리하기 위해 필요합니다.

사용자 경험 향상 – 사용자와 관련된 항목을 표시할 수 있게 해 줌

이 쿠키는 오토데스크가 보다 향상된 기능을 제공하고 사용자에게 맞는 정보를 제공할 수 있게 해 줍니다. 사용자에게 맞는 정보 및 환경을 제공하기 위해 오토데스크 또는 서비스를 제공하는 협력업체에서 이 쿠키를 설정할 수 있습니다. 이 쿠키를 허용하지 않을 경우 이러한 서비스 중 일부 또는 전체를 이용하지 못하게 될 수 있습니다.

광고 수신 설정 – 사용자에게 타겟팅된 광고를 제공할 수 있게 해 줌

이 쿠키는 사용자와 관련성이 높은 광고를 표시하고 그 효과를 추적하기 위해 사용자 활동 및 관심 사항에 대한 데이터를 수집합니다. 이렇게 데이터를 수집함으로써 사용자의 관심 사항에 더 적합한 광고를 표시할 수 있습니다. 이 쿠키를 허용하지 않을 경우 관심 분야에 해당되지 않는 광고가 표시될 수 있습니다.

icon-svg-close-thick

타사 서비스

각 범주에서 오토데스크가 사용하는 타사 서비스와 온라인에서 고객으로부터 수집하는 데이터를 사용하는 방식에 대해 자세히 알아보십시오.

icon-svg-hide-thick

icon-svg-show-thick

반드시 필요 - 사이트가 제대로 작동하고 사용자에게 서비스를 원활하게 제공하기 위해 필수적임

Qualtrics
오토데스크는 고객에게 더욱 시의적절하며 관련 있는 이메일 컨텐츠를 제공하기 위해 Qualtrics를 이용합니다. 이를 위해, 고객의 온라인 행동 및 오토데스크에서 전송하는 이메일과의 상호 작용에 관한 데이터를 수집합니다. 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 이메일 확인율, 클릭한 링크 등이 포함될 수 있습니다. 오토데스크는 이 데이터를 다른 소스에서 수집된 데이터와 결합하여 고객의 판매 또는 고객 서비스 경험을 개선하며, 고급 분석 처리에 기초하여 보다 관련 있는 컨텐츠를 제공합니다. Qualtrics 개인정보취급방침
Akamai mPulse
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Akamai mPulse를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Akamai mPulse 개인정보취급방침
Digital River
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Digital River를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Digital River 개인정보취급방침
Dynatrace
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Dynatrace를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Dynatrace 개인정보취급방침
Khoros
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Khoros를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Khoros 개인정보취급방침
Launch Darkly
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Launch Darkly를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Launch Darkly 개인정보취급방침
New Relic
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 New Relic를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. New Relic 개인정보취급방침
Salesforce Live Agent
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Salesforce Live Agent를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Salesforce Live Agent 개인정보취급방침
Wistia
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Wistia를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Wistia 개인정보취급방침
Tealium
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Tealium를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Upsellit
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Upsellit를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. CJ Affiliates
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 CJ Affiliates를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Commission Factory
Typepad Stats
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Typepad Stats를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Typepad Stats 개인정보취급방침
Geo Targetly
Autodesk는 Geo Targetly를 사용하여 웹 사이트 방문자를 가장 적합한 웹 페이지로 안내하거나 위치를 기반으로 맞춤형 콘텐츠를 제공합니다. Geo Targetly는 웹 사이트 방문자의 IP 주소를 사용하여 방문자 장치의 대략적인 위치를 파악합니다. 이렇게 하면 방문자가 (대부분의 경우) 현지 언어로 된 콘텐츠를 볼 수 있습니다.Geo Targetly 개인정보취급방침
SpeedCurve
Autodesk에서는 SpeedCurve를 사용하여 웹 페이지 로드 시간과 이미지, 스크립트, 텍스트 등의 후속 요소 응답성을 측정하여 웹 사이트 환경의 성능을 모니터링하고 측정합니다. SpeedCurve 개인정보취급방침
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

사용자 경험 향상 – 사용자와 관련된 항목을 표시할 수 있게 해 줌

Google Optimize
오토데스크는 사이트의 새 기능을 테스트하고 이러한 기능의 고객 경험을 사용자화하기 위해 Google Optimize을 이용합니다. 이를 위해, 고객이 사이트를 방문해 있는 동안 행동 데이터를 수집합니다. 이 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 오토데스크 ID 등이 포함될 수 있습니다. 고객은 기능 테스트를 바탕으로 여러 버전의 오토데스크 사이트를 경험하거나 방문자 특성을 바탕으로 개인화된 컨텐츠를 보게 될 수 있습니다. Google Optimize 개인정보취급방침
ClickTale
오토데스크는 고객이 사이트에서 겪을 수 있는 어려움을 더 잘 파악하기 위해 ClickTale을 이용합니다. 페이지의 모든 요소를 포함해 고객이 오토데스크 사이트와 상호 작용하는 방식을 이해하기 위해 세션 녹화를 사용합니다. 개인적으로 식별 가능한 정보는 가려지며 수집되지 않습니다. ClickTale 개인정보취급방침
OneSignal
오토데스크는 OneSignal가 지원하는 사이트에 디지털 광고를 배포하기 위해 OneSignal를 이용합니다. 광고는 OneSignal 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 OneSignal에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 OneSignal에 제공하는 데이터를 사용합니다. OneSignal 개인정보취급방침
Optimizely
오토데스크는 사이트의 새 기능을 테스트하고 이러한 기능의 고객 경험을 사용자화하기 위해 Optimizely을 이용합니다. 이를 위해, 고객이 사이트를 방문해 있는 동안 행동 데이터를 수집합니다. 이 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 오토데스크 ID 등이 포함될 수 있습니다. 고객은 기능 테스트를 바탕으로 여러 버전의 오토데스크 사이트를 경험하거나 방문자 특성을 바탕으로 개인화된 컨텐츠를 보게 될 수 있습니다. Optimizely 개인정보취급방침
Amplitude
오토데스크는 사이트의 새 기능을 테스트하고 이러한 기능의 고객 경험을 사용자화하기 위해 Amplitude을 이용합니다. 이를 위해, 고객이 사이트를 방문해 있는 동안 행동 데이터를 수집합니다. 이 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 오토데스크 ID 등이 포함될 수 있습니다. 고객은 기능 테스트를 바탕으로 여러 버전의 오토데스크 사이트를 경험하거나 방문자 특성을 바탕으로 개인화된 컨텐츠를 보게 될 수 있습니다. Amplitude 개인정보취급방침
Snowplow
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Snowplow를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Snowplow 개인정보취급방침
UserVoice
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 UserVoice를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. UserVoice 개인정보취급방침
Clearbit
Clearbit를 사용하면 실시간 데이터 보강 기능을 통해 고객에게 개인화되고 관련 있는 환경을 제공할 수 있습니다. Autodesk가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. Clearbit 개인정보취급방침
YouTube
YouTube는 사용자가 웹 사이트에 포함된 비디오를 보고 공유할 수 있도록 해주는 비디오 공유 플랫폼입니다. YouTube는 비디오 성능에 대한 시청 지표를 제공합니다. YouTube 개인정보보호 정책

icon-svg-hide-thick

icon-svg-show-thick

광고 수신 설정 – 사용자에게 타겟팅된 광고를 제공할 수 있게 해 줌

Adobe Analytics
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Adobe Analytics를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID 및 오토데스크 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. Adobe Analytics 개인정보취급방침
Google Analytics (Web Analytics)
오토데스크 사이트에서 고객의 행동에 관한 데이터를 수집하기 위해 Google Analytics (Web Analytics)를 이용합니다. 여기에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 오토데스크는 사이트 성과를 측정하고 고객의 온라인 경험의 편리함을 평가하여 기능을 개선하기 위해 이러한 데이터를 이용합니다. 또한, 이메일, 고객 지원 및 판매와 관련된 고객 경험을 최적화하기 위해 고급 분석 방법도 사용하고 있습니다. AdWords
Marketo
오토데스크는 고객에게 더욱 시의적절하며 관련 있는 이메일 컨텐츠를 제공하기 위해 Marketo를 이용합니다. 이를 위해, 고객의 온라인 행동 및 오토데스크에서 전송하는 이메일과의 상호 작용에 관한 데이터를 수집합니다. 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 이메일 확인율, 클릭한 링크 등이 포함될 수 있습니다. 오토데스크는 이 데이터를 다른 소스에서 수집된 데이터와 결합하여 고객의 판매 또는 고객 서비스 경험을 개선하며, 고급 분석 처리에 기초하여 보다 관련 있는 컨텐츠를 제공합니다. Marketo 개인정보취급방침
Doubleclick
오토데스크는 Doubleclick가 지원하는 사이트에 디지털 광고를 배포하기 위해 Doubleclick를 이용합니다. 광고는 Doubleclick 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Doubleclick에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Doubleclick에 제공하는 데이터를 사용합니다. Doubleclick 개인정보취급방침
HubSpot
오토데스크는 고객에게 더욱 시의적절하며 관련 있는 이메일 컨텐츠를 제공하기 위해 HubSpot을 이용합니다. 이를 위해, 고객의 온라인 행동 및 오토데스크에서 전송하는 이메일과의 상호 작용에 관한 데이터를 수집합니다. 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 이메일 확인율, 클릭한 링크 등이 포함될 수 있습니다. HubSpot 개인정보취급방침
Twitter
오토데스크는 Twitter가 지원하는 사이트에 디지털 광고를 배포하기 위해 Twitter를 이용합니다. 광고는 Twitter 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Twitter에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Twitter에 제공하는 데이터를 사용합니다. Twitter 개인정보취급방침
Facebook
오토데스크는 Facebook가 지원하는 사이트에 디지털 광고를 배포하기 위해 Facebook를 이용합니다. 광고는 Facebook 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Facebook에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Facebook에 제공하는 데이터를 사용합니다. Facebook 개인정보취급방침
LinkedIn
오토데스크는 LinkedIn가 지원하는 사이트에 디지털 광고를 배포하기 위해 LinkedIn를 이용합니다. 광고는 LinkedIn 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 LinkedIn에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 LinkedIn에 제공하는 데이터를 사용합니다. LinkedIn 개인정보취급방침
Yahoo! Japan
오토데스크는 Yahoo! Japan가 지원하는 사이트에 디지털 광고를 배포하기 위해 Yahoo! Japan를 이용합니다. 광고는 Yahoo! Japan 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Yahoo! Japan에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Yahoo! Japan에 제공하는 데이터를 사용합니다. Yahoo! Japan 개인정보취급방침
Naver
오토데스크는 Naver가 지원하는 사이트에 디지털 광고를 배포하기 위해 Naver를 이용합니다. 광고는 Naver 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Naver에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Naver에 제공하는 데이터를 사용합니다. Naver 개인정보취급방침
Quantcast
오토데스크는 Quantcast가 지원하는 사이트에 디지털 광고를 배포하기 위해 Quantcast를 이용합니다. 광고는 Quantcast 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Quantcast에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Quantcast에 제공하는 데이터를 사용합니다. Quantcast 개인정보취급방침
Call Tracking
오토데스크는 캠페인을 위해 사용자화된 전화번호를 제공하기 위하여 Call Tracking을 이용합니다. 그렇게 하면 고객이 오토데스크 담당자에게 더욱 빠르게 액세스할 수 있으며, 오토데스크의 성과를 더욱 정확하게 평가하는 데 도움이 됩니다. 제공된 전화번호를 기준으로 사이트에서 고객 행동에 관한 데이터를 수집할 수도 있습니다. Call Tracking 개인정보취급방침
Wunderkind
오토데스크는 Wunderkind가 지원하는 사이트에 디지털 광고를 배포하기 위해 Wunderkind를 이용합니다. 광고는 Wunderkind 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Wunderkind에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Wunderkind에 제공하는 데이터를 사용합니다. Wunderkind 개인정보취급방침
ADC Media
오토데스크는 ADC Media가 지원하는 사이트에 디지털 광고를 배포하기 위해 ADC Media를 이용합니다. 광고는 ADC Media 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 ADC Media에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 ADC Media에 제공하는 데이터를 사용합니다. ADC Media 개인정보취급방침
AgrantSEM
오토데스크는 AgrantSEM가 지원하는 사이트에 디지털 광고를 배포하기 위해 AgrantSEM를 이용합니다. 광고는 AgrantSEM 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 AgrantSEM에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 AgrantSEM에 제공하는 데이터를 사용합니다. AgrantSEM 개인정보취급방침
Bidtellect
오토데스크는 Bidtellect가 지원하는 사이트에 디지털 광고를 배포하기 위해 Bidtellect를 이용합니다. 광고는 Bidtellect 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Bidtellect에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Bidtellect에 제공하는 데이터를 사용합니다. Bidtellect 개인정보취급방침
Bing
오토데스크는 Bing가 지원하는 사이트에 디지털 광고를 배포하기 위해 Bing를 이용합니다. 광고는 Bing 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Bing에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Bing에 제공하는 데이터를 사용합니다. Bing 개인정보취급방침
G2Crowd
오토데스크는 G2Crowd가 지원하는 사이트에 디지털 광고를 배포하기 위해 G2Crowd를 이용합니다. 광고는 G2Crowd 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 G2Crowd에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 G2Crowd에 제공하는 데이터를 사용합니다. G2Crowd 개인정보취급방침
NMPI Display
오토데스크는 NMPI Display가 지원하는 사이트에 디지털 광고를 배포하기 위해 NMPI Display를 이용합니다. 광고는 NMPI Display 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 NMPI Display에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 NMPI Display에 제공하는 데이터를 사용합니다. NMPI Display 개인정보취급방침
VK
오토데스크는 VK가 지원하는 사이트에 디지털 광고를 배포하기 위해 VK를 이용합니다. 광고는 VK 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 VK에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 VK에 제공하는 데이터를 사용합니다. VK 개인정보취급방침
Adobe Target
오토데스크는 사이트의 새 기능을 테스트하고 이러한 기능의 고객 경험을 사용자화하기 위해 Adobe Target을 이용합니다. 이를 위해, 고객이 사이트를 방문해 있는 동안 행동 데이터를 수집합니다. 이 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역, IP 주소 또는 장치 ID, 오토데스크 ID 등이 포함될 수 있습니다. 고객은 기능 테스트를 바탕으로 여러 버전의 오토데스크 사이트를 경험하거나 방문자 특성을 바탕으로 개인화된 컨텐츠를 보게 될 수 있습니다. Adobe Target 개인정보취급방침
Google Analytics (Advertising)
오토데스크는 Google Analytics (Advertising)가 지원하는 사이트에 디지털 광고를 배포하기 위해 Google Analytics (Advertising)를 이용합니다. 광고는 Google Analytics (Advertising) 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Google Analytics (Advertising)에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Google Analytics (Advertising)에 제공하는 데이터를 사용합니다. Google Analytics (Advertising) 개인정보취급방침
Trendkite
오토데스크는 Trendkite가 지원하는 사이트에 디지털 광고를 배포하기 위해 Trendkite를 이용합니다. 광고는 Trendkite 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Trendkite에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Trendkite에 제공하는 데이터를 사용합니다. Trendkite 개인정보취급방침
Hotjar
오토데스크는 Hotjar가 지원하는 사이트에 디지털 광고를 배포하기 위해 Hotjar를 이용합니다. 광고는 Hotjar 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Hotjar에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Hotjar에 제공하는 데이터를 사용합니다. Hotjar 개인정보취급방침
6 Sense
오토데스크는 6 Sense가 지원하는 사이트에 디지털 광고를 배포하기 위해 6 Sense를 이용합니다. 광고는 6 Sense 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 6 Sense에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 6 Sense에 제공하는 데이터를 사용합니다. 6 Sense 개인정보취급방침
Terminus
오토데스크는 Terminus가 지원하는 사이트에 디지털 광고를 배포하기 위해 Terminus를 이용합니다. 광고는 Terminus 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 Terminus에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 Terminus에 제공하는 데이터를 사용합니다. Terminus 개인정보취급방침
StackAdapt
오토데스크는 StackAdapt가 지원하는 사이트에 디지털 광고를 배포하기 위해 StackAdapt를 이용합니다. 광고는 StackAdapt 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 StackAdapt에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 StackAdapt에 제공하는 데이터를 사용합니다. StackAdapt 개인정보취급방침
The Trade Desk
오토데스크는 The Trade Desk가 지원하는 사이트에 디지털 광고를 배포하기 위해 The Trade Desk를 이용합니다. 광고는 The Trade Desk 데이터와 고객이 사이트를 방문하는 동안 오토데스크가 수집하는 행동 데이터 모두에 기초하여 제공됩니다. 오토데스크가 수집하는 데이터에는 고객이 방문한 페이지, 시작한 체험판, 재생한 동영상, 구매 내역 및 IP 주소 또는 장치 ID가 포함될 수 있습니다. 이 정보는 The Trade Desk에서 고객으로부터 수집한 데이터와 결합될 수 있습니다. 오토데스크는 디지털 광고 경험에 대한 사용자화를 개선하고 고객에게 더욱 관련 있는 광고를 제시하기 위해 The Trade Desk에 제공하는 데이터를 사용합니다. The Trade Desk 개인정보취급방침
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

정말 더 적은 온라인 경험을 원하십니까?

오토데스크는 고객 여러분에게 좋은 경험을 드리고 싶습니다. 이전 화면의 범주에 대해 "예"를 선택하셨다면 오토데스크는 고객을 위해 고객 경험을 사용자화하고 향상된 응용프로그램을 제작하기 위해 귀하의 데이터를 수집하고 사용합니다. 언제든지 개인정보 처리방침을 방문해 설정을 변경할 수 있습니다.

고객의 경험. 고객의 선택.

오토데스크는 고객의 개인 정보 보호를 중요시합니다. 오토데스크에서 수집하는 정보는 오토데스크 제품 사용 방법, 고객이 관심을 가질 만한 정보, 오토데스크에서 더욱 뜻깊은 경험을 제공하기 위한 개선 사항을 이해하는 데 도움이 됩니다.

오토데스크에서 고객님께 적합한 경험을 제공해 드리기 위해 고객님의 데이터를 수집하고 사용하도록 허용하시겠습니까?

선택할 수 있는 옵션을 자세히 알아보려면 이 사이트의 개인 정보 설정을 관리해 사용자화된 경험으로 어떤 이점을 얻을 수 있는지 살펴보거나 오토데스크 개인정보 처리방침 정책을 확인해 보십시오.