AU Class
AU Class
class - AU

Generative Design from SketchIt, FormIt, Dyno-BIM-It

共享此课程

说明

Where do you start design? The best tool for a designer is the pencil, and every design begins with a sketch. We have several experienced designers who have embraced the digital pencil for a project-centered workflow. In this class, we will go through a process to convert surfaces to BIM (Building Information Modeling) using FormIt, and bring the results into Revit software. We will explore how to overcome the challenges of surface geometry interoperability using Dynamo. We will explore the Dynamo Script to convert surface geometry with no design intelligence or data to native Revit elements, and use Dynamo Player to help our designers iterate through changes in a model. Lastly, we will use the parameters to flex through numerous iterations on the web with Project Fractal. We will evaluate the pros and cons of automation versus starting a model from scratch in Revit. The process lets us reduce rework, helping improve efficiency in the early stages of design.

主要学习内容

  • Solve a practical problem of converting non-BIM geometry to a BIM model
  • Learn how to use FormIt as a container to translate geometry to Revit
  • Learn how we used a Dynamo script to map surfaces to native Revit elements
  • Learn how to iterate design options using Project Fractal

讲师

  • Reeti Gupta
    Reeti Gupta is the Director of Practice Technology and BIM Manager at HKS. Her 16 years of professional experience includes Architecture Design, Visualization, Computation Design with expertise in tools such as Revit, 3dsMax, Dynamo, Generative Components, dRofus to name a few. She currently works on improving processes for Designers through innovation in data centric workflows, expanding the use of Virtual Reality, BIM Management & Training for Revit. She has a Bachelor’s Degree in Architecture from Academy of Architecture, Mumbai and a Master’s Degree in Digital Arts and Sciences from University of Florida, Gainesville. She has won awards for her work in Renderings, Designed the Dubai Towers Dubai Project using Computation Design amongst other international projects, authored unique healthcare space planning tools using Computation Design, participant at Smart Geometry Conferences, engages with project teams to teach the use of AR & VR to name a few of her accomplishments.
  • Timothy Logan
    Timothy Logan is currently a computational designer and applications developer with HKS, Inc., a large AE firm based out of Dallas, TX. He has over 10 years of experience within the field of architecture and has spent much of that time customizing design software and developing project specific workflows for projects ranging in scale from small pavilions to large sports stadiums.
Video Player is loading.
Current Time 0:00
Duration 1:05:03
Loaded: 0.26%
Stream Type LIVE
Remaining Time 1:05:03
 
1x
  • Chapters
  • descriptions off, selected
  • en (Main), selected
Transcript

REETI GUPTA: All right. Welcome everyone. Good afternoon. OK, it's 4:30 so we're going to start. So you guys ready for this class? I kind of had a little fun with the title, almost sounds like a rap. So Sketch-it, Form-It, Dyno-BIM-It. It's exactly that, it's a rap.

Between these softwares, we're going to go through Sketch-Up use FormIt as a container, move it into Dynamo and then into Revit. So let's see how exciting that can get.

A little bit about us. Myself and Tim, we're from HKS, and HKS an architectural design firm. We have about 24 offices worldwide, and close to 1,400 employees. About myself-- I've had about 18 years of work experience, ranging from architectural design practice to technology and design technology. I'm currently leading a small group called Practice Technology. We're a bunch of extremely smart innovators, individuals contributing towards the advancement of our processes using technology and AEC. And, Tim?

TIM LOGAN: Tim Logan. I'm a computational designer at HKS. I work with our LINE studio, which is an acronym that stands for Laboratory for Intensive Exploration. We're a design studio first and foremost, but we also act as an applied research and development group within the firm. I'm basically a professional tinker at this point in my life, which is a lot of fun for me. But yeah.

REETI GUPTA: So I'm sure you all have gone through the learning objectives, and besides that I just wanted to recap a few things on the thought processes that really made this project or class come up.

So thinking about making things. It's a two-way street. Thinks that we've done out of changing, things like when we created the car, or the automobile, it changed the society of car culture, created the car culture. And then when we created the cell phone, we started communicating remotely.

So similarly with social media, we're trying to connect with each other of course digitally. So looking to kind of change how we do things with the tools we have, we probably want to even revise our tools. So the bottom line is that whatever tools we use, we can change things for better or worse.

So we're questioning some of these tools that have been developed many years ago, whether they're still viable. And what do we need to do to push the early design stage tools forward and be able to create a design solution better together. So I'm hoping that traversing through these different platforms is obviously not the perfect process. But it's a way we found to be able to answer a few questions that were constantly coming up in our workflows.

So how many of you have been sketching for conceptual design modeling for many years? It's quite a lot. So that's awesome. I think that's primarily the best tool, and gives us a lot of creative freedom. So one can get into the macro to the micro level.

Like right here one of our designers, he was thinking about how the design embraces the surrounding and the site, as well as on the same sketch, on the same sheet, he had the macro-level detail of the coursing on the bricks and how he'd create the ribbon pattern. So how the brain works and analyzes what the design needs to be and throws it quickly down on paper is amazing, but not everybody has that artistic ability. It is a fading skillset.

So the pros of idea generation and being able to communicate design, they're great. But then the cons is a lot of wastage of paper, and unless you're one of those designers who can nail it in a couple of napkin sketches, then great. But otherwise you're going to be totally over it. And of course, there's no data or validation as well in that process.

So we were faced with a challenge. We got a Sketch-Up model that needed to be converted to Revit overnight. Were we able to do it? No. We did not have any solution at the time, so this question of converting the non-BIM geometry to a BIM model became very important.

And that's why we decided that, OK, let's move from sketching down and on paper to sketching up using Sketch-Up but then dumped that and move forward with just trying to get all that geometry into Revit. Because some of our designers are still in Sketch-Up and it's just an ugly truth. So I'm just going to state that. I'm sure many of you feel the pain as well.

So here we go. We're going to go from Sketch-Up to Revit, using FormIt and Dynamo in the middle. So we figured that using pure surfaces, we can bring in the Sketch-Up geometry to Revit, but it's going to be non-intelligent. It's not going to have any information in it. It's not going to be your native Revit elements. So you could technically just use the conceptual Sketch-Up model in Revit to view it, probably rotate around. But really nothing else more than that.

Now, here's the painful part. I'm sure many of you share this pain and agony with me. Going through a Sketch-Up model that you've not created-- some designer has created it-- I'm clicking away, clicking away, opening all the different layers. There's CAD layers, there's site layers. There's [? CARS, ?] [? Entourage, ?] probably not named accurately, but you see nothing.

What you see on the top right is what should appear, but it's still not appearing. And I don't know any more than why things are grouped and are on Layer 0, but Layer 0 is supposedly the magical layer that makes things appear. So we have that.

Another frustrating part, I really never ever thought that I'd be showing something more than just pushing and pulling surfaces in Sketch-Up, or sharing this tool with my 9-year-old to explain what 3D modeling is, but here we are. I'm showing how we've taken the unorganized Sketch-Up model, reorganized it, and thought through what we need to be converted to a floor, to a wall, to a curtain wall tied to a roof, and organized all that geometry that was on multiple layers on Layer 0 and then remapped it-- or changed the layers to assign it to a more methodical approach.

So once you do that, you'll have a lot of unnecessary geometry that'll be sticking around in that Sketch-Up model, so you want to go into Model Info and then purge the unused layers. So we've gone from sketching down from on paper to Sketch-Up, and now we're going to be in FormIt.

So, some quick steps over here, we have two methods of getting your Sketch-up model to FormIt. One is to use a Revit add-in, and later on we figured out that there was actually a direct Sketch-Up import to FormIt. So once you get the model into FormIt you want to check the layers. And one of the reasons we want to go through FormIt is because it keeps your layers from Sketch-Up organized, your components from Sketch-Up organized as groups inform it.

And when you export that FormIt file which has a [? .AXN ?] format to Revit, it's going to convert each object into a mass family. And then a similar component is going to be an instance of that mass family. If you have a large file with a lot of components, we advise that once you've gotten that file into FormIt, you want the ability to export each layer one at a time.

So you can create a curtain wall type 1 .AXM file, curtain wall type 2 .AXM file, and then push it into Revit. That way you'll be able to handle the geometry a little slowly and it'll be a cleaner effort.

And then the last, fourth step, that's where Tim's going to focus on using his awesome Dynamo script to assign categories in Revit. So one other neat feature-- again, we found out later on-- was that within the groups, when you import the geometry, sometimes you'll get an error message saying that there are some uneven surfaces. And this was pointed out to us and we kind of drilled down deep into the group which had that uneven surface. So you'll see there'll be some triangulation that'll come up in a second.

So this doesn't translate very well when you take this to a wall category in Revit, but there's a little button, which says Fix Faces, and then you'll get a success message on top, and it'll fix the geometry for you. So if you want to control some of these facets and triangulation right here in FormIt before you push it out to Revit, that's an option.

OK. So the next part, it's going to be highly technical. Lot of cool Dynamo scripts, and I think most of those are made available to the class and the materials as well, so I will give it off to Tim.

TIM LOGAN: OK. Thanks. Right, so we've got a FormIt file now, and we need a Revit file. So there is no built-in FormIt importer for Revit, so you have to get a plug-in. It's really easy to find, it's on the FormIt web page. You can also find it on your Autodesk account, under Product Updates where they have all the other plug-ins.

I assume they're both kept up to date-- I didn't actually verify that, but it should be either one is fine. A lot of times the plug-ins don't get updated a whole lot between versions. But once you install it, you'll get this handy FormIt converter panel that shows up on your Add-Ins tab.

There's two buttons to it, one which says Reload Families. It's got a little down arrow that implies there's more tools there. And then About FormIt, which just takes you back to the FormIt website, which if you just installed it, you already know where that is, so you can ignore that one.

But the second one's where all the magic happens. And there's four commands, you know, RFA to FormIt, Sketch-Up to FormIt, FormIt to Revit, and then Reload Families. The only one I'm going to be interested in this case is going to be the Import FormIt into Revit.

And if you look at the Tool Tip, if it's legible up there, it does say you have to import it into an existing project file, so you have to open a new file with a template and import it that way. You can't just create something like you can with, say, an IFC file.

So I made a little video of showing what it looks like to import something. This is importing the entire model, it's a pretty small model. I sped it up so you don't have to sit there and watch the whole thing in real time. But it's going to be importing. It takes about two minutes to go through the whole thing.

And at the end of it, as you would expect, it's going to throw some errors at you. The error has one option which is to cancel, which usually in Revit means cancel everything that you just did. In this case it's basically the same thing as an OK button.

If you look at it, it says it couldn't import geometry. It points out group number six-- I have no idea what that is off the top of my head-- but if I go back to the FormIt file, I can find group six and I can figure out what that is and see if there's something else I need to do to get that across if it's important. But for this class, I just ignored it and said that's fine.

And then you turn on Shaded View, and you've got a pretty legit looking Revit model at this point. It looks like curtain walls, and roofs, and walls, and floors, and all that fun stuff. But as Reeti said, everything comes in as masses, which isn't terribly useful as an actual BIM file.

And that's sort of the heart of what this class is about, as Reeti was talking about. How do you go from a non-BIM to a BIM workflow? And there's very specific ways that Revit wants you to create a wall, or a window, or a roof, or a floor, or not allowed to create a ceiling automatically yet. So there's limitations and there's certain ways you have to do things in a way that Revit expects, to be able to get proper elements.

And I can take these masses and I can do Wall by Face, and Floor by Mass or Floor by Face from that. But nobody really wants to have to edit a Wall by Face for a typical wall, because it's a hassle. You don't want to have to modify a mass family to change a rectangular wall.

So that's where we decided, like, OK, well how can we start breaking this down and use Dynamo to help us translate all these things? But because this is really about interoperability and going from one platform to another, and we've already crossed two thresholds to get from Sketch-Up to FormIt, and then FormIt it to Revit, now, there's going to be some inaccuracies. Just the nature of digital tools, everything is only so accurate.

And in this case, it starts off as a Sketch-Up file that was just kind of arbitrarily placed on the site as near as I can tell. You can see it's a little bit crooked in the plan view, nobody wants to do your Project North as a crooked model. That's just going to be horrible. It's just floating between levels. It's not near an origin point. So you want to fix that stuff before you go through.

So the first thing I do is I group everything up, just to make it easier to do these large transforms to everything, and not worry about whether I'm remembering to grab everything on whichever view. And then the first thing I do is I'll just fix the levels and make sure the elevations are right.

So for the first level I identify it, and then all I'm going to do is just move the entire building down-- use the Align tool, Move tool, doesn't really matter. But for the next levels, you don't want to just align level 2 to the top of the floor because it's probably not going to be accurate. It was drawn in Sketch-Up, there are going to be imprecisions in the numbers. So you always dimension it and get the rounded dimension of what it's going to be.

And then you just type in 18 feet instead of moving it. That way you know it's at 18 feet not, you know, some messy number and it looks fine. So if you actually look at it, if you do move it up, it's kind of 18 feet, but after about 10 decimal points of precision you've got some messy numbers. And that's why we type the number in instead of just moving it or aligning it, because you get a nice clean 18 feet which you expect.

And then you basically follow through for the rest of them, you just dimension from your level where everything is, what the offsets are going to be, and then I just use the Level tool with the Pick Lines tool. This is just a complete manual process, it doesn't take that long, it's totally fine. You could try to automate it if you wanted to, but it just didn't seem worthwhile in this case. And we've got an elevation that looks sort of halfway decent.

So we still have, you've got to fix your rotation. It's 0.81 degrees off, so fix that. The longer you wait to fix things like that, the worse it's going to be for you. It's really difficult to change Project North after a model is well underway.

And then just move it to an origin, something that makes sense-- like this is the site boundary, I'm imagining a property line. There's no grids or anything, like I know all of the model elements are going to change, so using any part of this model as the origin point is probably going to be a bad thing because it's not going to be really that well located. So just think about if you have a property line or something else, use that.

There was a great class I saw at-- I think it was the BILT conference, it used to be RTC-- by this guy named Krigh Bachmann in Toronto, like a year or two ago. If you want to know everything about coordinates in Revit, it's an awesome class. I've never heard anyone from Autodesk be able to explain it, but this guy totally nailed it.

Anyway, so we fixed our model, it all looks great, so we can actually move forward to creating decent geometry out of it now. And just good housekeeping again, we don't need this group anymore. Get rid of the group. Ungroup it and then take the five seconds to delete the instance or the definition of the group so it's not carried through the rest your model's lifetime just taking up space.

OK, so how do we actually make Revit elements out of all this mess? And I wanted to start with like a previous translation that I did. And this wasn't a Sketch-Up or a FormIt one, this was just probably a more typical workflow that I have to use in my studio. The other designers in my group use Rhino pretty heavily on the early design side, but all roads lead to Revit. So we're always going to Revit at some point.

So we've done tons and tons of translations from Rhino to Revit, so doing Sketch-Up performance for Revit, it's kind of the same thing. You just have to think of a strategy. So I just wanted to present this as another strategy might have to do, and how you have to think about the problem. Because it's just about problem solving at the end of the day.

So this was a children's hospital in the Middle East. It's massive, I think it's 100 feet long or 300 and some-odd meters long. There's big volume space with a podium and weird shapes all over it. But we were contracted to do just through SD on this project. So at the end of SD we had to deliver a full on legit Revit file that we could hand off to the architect of record who was going to be carrying it forward, and we would have a pretty minimal impact on it after that.

So we had to figure out how do we make this translatable as quickly as possible. So we had to start thinking about the problem, and I'll show the podium because it's a pretty straightforward process and it sort of breaks down also how we did the shade screen, and how we did some of the other elements too. But because this was all sort of computational design oriented, there's always like the base surface that we start with that everything gets articulated and built from.

So we still had this on our Rhino file, and I wanted to keep that because the surfaces are all shaped kind of weird. I knew I was going to have to use adaptive components, even though I'm not a huge fan of adaptive components because they're really easy to use in interoperability, because you just need points. But they're a hassle to place and deal with. But in this case that was the only thing that made sense.

But I didn't want them to just be free-floating adaptive components, because if you pulled one off you're never going to get in the right spot again, it's just going to be floating somewhere. So we wanted to host it to the UV, so I extracted all the corner points of these macro faces, sent it through the ether. In this case, we were using a service called Flux, which no longer exists-- but it doesn't really matter, it's just points xyz values in a list. You could do with a text file if you really wanted to.

Text file the points to be read in, we would take those points in Dynamo and then generate a mass. So this is all a single mass family that has all of this placed in it. It's just surfaces all automatically generated. And then we would do the same thing for the corner points of the actual panels. This is a coarser articulation than what it really is, but it's just a little clearer to see.

Send those through the ether-- which you may be able to see some little blue dots-- and then we place families on it. And it's a nice way to go about it. It's really easy to do, it's sort of like you just say update, and it goes through and updates it.

It's by no means a quick process. There's a lot of these panels on the actual building. When you hit go, it's going to take about two hours. An hour if you have a really, really nice machine, but most people who are working off of laptops, it took about two hours. The full translation would take about a day for the entire building with the shade screen, with this, with the roofs, all that stuff. So it's easier, we could do it when the designers change things, but it's still not something that you're going to get instant feedback and response from. It just takes a long time to generate Revit elements sometimes.

So we had something that looked like this, and we had sort of similar methodologies that we worked through. And then we generated a Revit file that looked like this, that was actually useful for the design team going forward through the rest of the phases of the project. So that's sort of like one crazy extreme.

We have a little bit more of a typical project, and how do we actually go about doing that? So I'm going to be using the one that I imported and showed you a moment ago, and I'm going to talk about one of the Dynamo scripts in full. And I'm going to talk about the floors, because they're really easy to talk about. They're pretty straightforward, like the algorithm to generate a floor based on these masses.

But I do have documentation in the handout, I think, talking about all the other Dynamo scripts-- and you can email me if you have questions, too. But to start with I wanted to look, OK, well if I'm going to start with floors, how do I create a floor in Dynamo, which is going to tell you how Revit's API expects you to build a floor.

There's two floor creation nodes that are in Dynamo natively. They both have the exact same name. The only difference is one takes a polycurve and one takes a list of curves, but basically the same inputs other than that. So as long as you have a list of curves that go around the outside, or polycurve, you're good to go.

That also is implicitly saying that you can't have internal voids in your sketch, either. You can only do the outside boundary, because it only takes one polycurve. So with that in mind, you start thinking, OK, well, how do I get a polycurve based on these sort of mass objects? You always start just look at one item, you don't want to go through and try to deal with everything at once.

So I'll isolate one and I'll start looking at how we can go about using it. And I've got-- this is my floor. It was a little bit hard when I was looking at it to determine if it was a floor with a slab edge detail around it, or if it was a floor with a ceiling plenum space attached to it. I wasn't really sure, so I wanted to look at the bottom and the top and make sure I could get either one in case I needed to.

So the bottom looks like this, but if I get the top piece, it gives me the surface [? grade. ?] I've got the complete surface, if I look at the bottom thing and try to get the surface from the bottom as well I get this weird shard. It goes back to the triangulation that Reeti was talking about, that hopefully that can get cleaned up in FormIt.

I did try it once and it just told me no. So it can't fix everything for you, so there's some situations where you may still have to deal with these problems. But what that means is it just complicates your workflow and what you have to do to be able to go through it.

So this is my dead simple definition to select a surface and generate a floor. So pick a surface, get the edges, and then define a level and define a floor type and it makes a floor. If I have to do it in pieces, it's like three or four times as long. Because it's a lot longer of a process to like, OK, grab all of the elements, join them together, find just the edges that make sense and throw all the other edges away, and then use that to create a floor. It's a more involved process. The nice thing is, if you go to the effort to make something like this, whether it's one surface or 10 surfaces that make it up, it works the same. So if you go to more detail, it's a little bit more usable.

So this is sort of the completed floor generator that I made. It's got four major groups. It's got two inputs, one for the floor families, and then one for the floor type. Everything else it figures out on its own. This isn't the only way to do this, this is just the way that made sense for this one project. I'll talk about some other things where I may deviate on other projects, but I'll step through this definition and talk about what-all it's doing.

So this first group is the Find Upwards Pointing Surfaces, so I just want the top surfaces. Or if I wanted the bottom surfaces, I would be the downwards pointing ones. And what that means, you want to get the normal vector and make sure that the vectors pointing up. If it's a floor, it's most likely going to be pointing up unless it's sloping, and then you have a sort of special edge case you have to deal with.

But what is that algorithm actually doing, that chunk of code? So I've got this arbitrary surface, and I'm going to say, OK, we'll grab a face, and what's the normal vector? What's perpendicular to that face? And then I'm going get a Z-vector, and then I'm going to measure the angle between the two-- in this case, I've got 90 degrees, because it's pointing out to the side somewhere, and it's pointing up.

Grab some other arbitrary surface, get the perpendicular normal vector, Z-vector, measure the angle-- same thing, it's 90 degrees. So no matter where it is around that surface, it's going to be 90 degrees in a typical sort of extruded floor thing.

When you grab the top, and you get the normal vector in the Z-axis, it's going to be 0 degrees. And that's like, OK, well, that's pointing in the same direction. So it's finding it based on the angle before anything else. You can do other things, like find out the top surface just elevation-wise, which may work, instead of just the Z-vector. But sometimes you may not want just the top surface for different reasons, but that's sort of where the next part comes in.

So this is the Find Top PolySurface. In this case I am finding the top one, but I wanted to be able to choose-- if I needed to-- a top one. There was like a little slab built up on top of it, it was raised up, it had a curve or something. I might have something that's a little bit higher elevation. So I needed to be able to deal with that.

So basically the way this one's working, I've got my little cube here. Let's say I've got two surfaces that point upwards. How do I find the right one? In this case I just get a point on the surface and get the coordinates of them. The only thing that really matters here is the Z-coordinate. Just find the Z and then choose the top one, or choose the bottom one, whichever one is appropriate for what you're doing.

You could also say find the one with the biggest area. A lot of times they'll just sort the faces of a floor family by area and choose the two largest ones, which is usually the top and bottom, and then you choose the top one. It all just kind of depends on what you're working with.

OK, so Naked Edges. Naked Edges are the boundary edges of a mesh-like object. It's the boundary edges versus an interior edge. And that's the sort of extra effort I had to go through to get just the right boundaries. And again, what that looks like, let's pretend we have this surface. It's tessellated, it's triangulated, and then there's some topology tools inside of Dynamo that you can look at.

What are the faces that are attached to each edge, and you basically count the number of faces. Is there one face or two faces that's attached to the edge? If there's two faces you throw it away. You don't need that edge. If it's one face you know it's a boundary. And that's how we get those.

And then the last major chunk here is finding the closest level, and another little gif-- or jif, if you do it properly, which I never do. Find a point on the surface again, just get the elevation, nothing else really matters for it. And then you look at all your levels. OK, I've got these levels in my model.

Do a really quick calculation. 17 feet, which is my height, minus the elevation, get the absolute value of that and then sort the results, and then the levels with them. And you find out that level 2 is the closest one because it's a foot off, and then that's the one that it chooses to use as the level. So that one little chunk gets copied in every single definition, I think, that I've provided.

And then the last step is just make the floors using the built-in tool. There's nothing particularly fancy about it. And then sort of what it looks like if you actually run it, I ran all these things through Dynamo Player. But essentially I'm just isolating the floors. I could have done it by choosing the top surfaces, and maybe it would have been a little bit easier. But I wanted to be able to just select all the floor objects and then make floors out of them.

So I isolate them first, because the Select Model Elements tool in Dynamo only window selects, I think. At least that's all I've ever seen. So you sort of have to isolate something like this so you can make sure you're only selecting those objects. Choose the floor type. I just chose a generic floor type because it's pretty early on in the design. It's probably not really set yet, so I just need something in place. And you push play and then it makes floors. It's fantastic.

So at that point, you know, you go through and there's a couple of other definitions to make walls, to make curtain walls, to make the roof. I think I've got two versions of the wall tool, one for tessellated, one for untessellated. And I go into detail about how they all work and the trade-offs that you have to deal with when you're using them. They may work for some situations, they may not work for others. They worked great for this one little project, but I've been on lots of projects where I wouldn't be able to use them as-is. I would have to tweak them and modify them.

But yeah, these are the six scripts, basically creating walls, creating columns, creating roofs, creating floors. On the left is the FormIt masses that got imported, on the right is all the Revit geometry. And the whole point of it is to make proper objects that at the end of the day, the masses don't matter anymore. You can throw the masses away, you can delete them, purge them out of your file, and you've got regular floors and walls just like someone would manually draft.

Does that mean it's clean and great? Absolutely not. There's all kinds of weird little gaps that show up in here. Just because the Sketch-Up model was messy, or there were things about the Sketch-Up model-- like with curtain wall, it's got mullions and things that you can't really account for, so there's gaps between all the curtain wall corners. Floors are going through the walls, and that's just because that's the way it modeled in Sketch-Up. There's things like that that you just have to deal with, that's just part of the process.

And now back to Reeti.

REETI GUPTA: So we're going to switch a little bit off track here and get into Fractal, but if you all had any questions pertaining to what you all just saw so far, then maybe you want to--

TIM LOGAN: Yeah. Sure.

REETI GUPTA: --go through that before I actually--

AUDIENCE: So you were using Sketch-Up kind of as your conceptual design tool, have you explored using FormIt instead [INAUDIBLE].

TIM LOGAN: So the question, just for the recording, is using Sketch-Up as a conceptual design tool, have we looked at using FormIt for that instead? Absolutely. Convincing the designers to do that is a whole other thing. They've got a decade-plus of experience using it. They're pretty happy with it.

At the end of the day I'm not terribly concerned with which tool they choose to use. I think it's more about training them when it's appropriate to stop using it and move to something else. We've got lots of projects where elevations are done in Sketch-Up because they like the rendered elevation, and then the Revit model lags behind a little bit so the floor plans don't look right because they're trying to do two at once. Things like that I don't think should happen, but getting them to stop using Sketch-Up-- at this stage I've given up that fight.

REETI GUPTA: Yeah, and we'll continue on. But, yeah, so there are other options. I mean we've used multiple other softwares like Rhino as well, for conceptual design. And now we're trying to say that, even with the next example, how can we leverage iterative, generative design along with something that's more massing and pushing-pulling oriented?

So I'll talk a little more about where we are with FormIt, and that's all. I'll continue with this presentation. So the famous quote by Marshall McLuhan about how we shape our tools and our tools then shape us. So, you know, since the beginning of human mankind we've created, and we've thrived on what we've created. So we've been able to synthesize, iterate. And this has become a foundation, really, in being able to ideate and make sense out of what we've created, and get informed in return.

So we're very lucky to be in this profession. We're very lucky to be a human being, really, because we have the cognitive abilities. And I honestly think that everyone here who's been in the design and make and architecture profession, we have a great responsibility to shape our future world. So we should definitely put in all our efforts to make sure that we participate and encourage better tools to be created for us so that we can inform our world better.

So those are some of my thoughts, and I looked at Project Fractal and I was a little bit encouraged in the beginning that, OK, you know, we have some way of taking the Dynamo scripts onto the web and just kind of allow an end user who doesn't want to deal with Dynamo-- even though it's awesome-- to be able to just push some sliders up and down to create multiple design iterations. So maybe some of us can do the heavy lifting in the background and be able to provide the design team-- or even the client in some cases-- with just parameters that they can push and some outputs towards what they're looking for.

So the next example that we tried out-- before I get there, I just wanted to kind of make everyone aware. We just realized in Autodesk University two days ago that there is another project that has started up, and it's called Project Refinery. The development on Project Fractal-- as we know, most projects, they can just totally shut down. So I've heard that they may not be proceeding with developing Fractal. I don't know if it's going to live, but it's going to change at least to Refinery. Refinery currently is not a cloud-based web platform, so any kind of design iterations that you do will be saved on your hard drive. And that's that, so. OK.

And one additional thing I wanted to point out is that even if Fractal goes away, you see the last part where it's FormIt, any work that we've done in Dynamo Studio can be actually used in FormIt. So that's a pretty good advantage, to be able to think about developing your design options in Dynamo.

So here what we've done is taken-- basically this is if you're in a massing stage, and this is where what Tim mentioned, that we want our designers to kind of stop where they should. In this particular case, the design of the building had a ribbon facade. There were two ribbons and they just they just had one static shape. That's it. They probably tried two or three others, but then whatever appealed to the designer, and they just stopped there.

So the argument that I'm trying to make here with them is that, look, you can iterate through multiple design iterations and get millions of options just by creating or by thinking about what are the parameters that you would like to create to make those changes. So we began with exporting an FBX file out of Sketch-Up and bringing that in to Dynamo Studio.

So these are some typical notes that you'd use to bring it in. You'll get two meshes, and they come in with their diffuse colors and that's the way we kind of were able to isolate one of them. And we were dealing with just the tower, so I removed the bottom mesh. Next thing, we want to figure out the top vertices and the bottom vertices, and then figure out which ones are top and create two lists, just the top ones together and the bottom ones together.

So as you see over here, it's quite mixed up. The vertices are not organized properly. So you have either the 85.368 or the 415.499. So this operation where it's identifying and creating an average, xy, is making two lists. One is in the In one's in the Out. So tracing the bottom edge is above, and I'm kind of showing how all the z values over here are just for the bottom one, and then the little group of nodes below is for the top edge.

So over here I actually went through the vertices, just figured out what index it was at, and manually typed the 8 and the 7 to kind of stop the line at those points, and then created the horizontal line that will basically bookend the top and the bottom extent of the facade. So for the top one it's a different vertex.

So now we have the top and the bottom edges, and then we're going to figure out the extent of that ribbon. Are we going to create the width of the ribbon the same as the length of that line, the horizontal on the top and the bottom? Or are we going to be able to change it at will? So again, this is a parameter that we can put in, and we use pointed parameters so we could even have a different one on top and a different one at the bottom. So the sliders can help you do that. So I've kind of gone to the border of it and left the other part out, so that's that.

So the second step is generating the actual ribbon facade. So over here, this little grouping will show how we're going to create the surface on top of that area that we've defined. So we're basically piping in the vertical lines, and then we're going to divide those vertical lines into parts. So in this case, I've divided those into three parts, and there's that parameter over here.

And then at those control points we're going to have our triggers of varying lengths. And the sliders that you see down below here-- you just missed those, it'll come back-- that will allow you to create a NURB spline over it, and be able to change it based on how you space and what the lengths of those outriggers are. So again, we've combined those two NURBS curves into one list, then we've lofted it using the surface loft.

The next thing I just did was create UV divisions. Again, there's the sliders that I've used to be able to divide those quickly and be able to understand if we do have curtain panels and we know the dimensions of it, then what that facade is going to look like. So these are the sliders that I was talking about, and we're just dragging them, figuring out what are the different iterations that we can do. I mean this is the moment where I can just spend a couple of minutes enjoying myself, feeling good about what I've created, so. It's a good feeling. All right.

So then we look at the left facade, and I've gone a little bit different in this just so that, you know, if y'all are going through the scripts you'll know that there's many ways of doing this. Over here I pretty much took that little niche over here. So that's the extent of my left facade. The pointer would help, right? That.

So those two vertical bookends are going to be made, and it's going to be using the length of the line that we had already created for the right ribbon, so it's going to match that. And in this case I did not use the same way of dividing the vertical lines, by parameter along the curve and stepping it at a certain rate. Instead I've used planes and I've created five planes along the line. You can change that to 15, depends on-- that's right here-- the 10 remaining divisions.

So that's just another method, another way of dividing up the vertical axis, or vertical line. And then the control points are generated-- and again, it's the same concept. There'll be some outriggers coming out from here-- so, continue on. And these are of varying lengths. We're attaching points at the end of those, and then we're going to create two of them.

We're just going to copy-translate it over to a certain distance. That distance can be manipulated as well, so it can be wide or narrow depending on what you want to do. So there's another option of creating more designs. And then again we combine those two curves into one list. Surface loft, same thing. Create UV divisions, and in this case I quit the sliders and I just said I want 16 and 8. So it just depends on how you want to continue on with your script.

OK, so we had the geometry and facade design option created, and then the next step was to actually send that information to the web to acquire it by Project Fractal. So I'd started to do that and I got messages that you're not going to be able to do that, because this node definition, that node definition, and the other one is not going to work. So I realized that, oh my god, I have to do this again, with another way of thinking.

So the first one that did not work which makes sense, is that my FBX file was coming from my C drive. So obviously the web doesn't know my C drive, and I don't think it's connected to BIM 360 that I can link it from there. So Tim helped us create this, Points to Copy for Fractal Preparation, and we've got the xyz coordinates for both the top and the bottom points. Let me just go through this. It's a little lengthy, but what happens at the end of it is going to allow us to continue.

So it's capturing all the curves and then it's going to create it as one group, it'll group up all the points together. So that'll make up the right ribbon and the left ribbon. And then a code block will basically concatenate everything together-- that happens over here at the end-- and it'll produce one string that we decided to create a text file output. Now again, it's a file output. We're not going to link that file back again to another Dynamo script, but we're just going to copy-paste that information over when we create a brand new file for Dynamo. So we'll show that.

So that's the text file. So it's point by coordinates and then it's got a number of coordinates that we will be able to use in our fresh file so we can send it up to the web. So in essence, I mean, there's a lot of things that we've discovered, and we just wanted to keep the class raw so that you all learn from what not to do. And so this is the code block, this is where we just copy-pasted the information and then started piping that to create the vertices, and then the lines that connect them.

So after you've connected those, we had to flatten them and create cleaner lists. And then we pretty much followed the same process to create these two ribbons that you already saw, so I'm not repeating the whole process here to explain. But essentially, the input for the end user is the left-driven curve control points and the right driven curve control points. So we have this one here for the left one.

So what one really neat thing that I could visually see-- and I've got it on another slide, actually at the end, so I'll probably just go with that later on. What we decided to do over here was to create slabs. So that I could explain what happens when we want to get information out of these design iterations, we wanted to get information about if we were to decide on a curve, curvature, like this for the left side and a curvature like that for the right side, then what is the floor area that we're adding to the building mass?

So I think in this video I'm just kind of playing with the sliders and then I'll show how we've got the outputs generated. And then in preparation for sending this up to the web, we also have to make sure that this Is Input has a check mark against it. If it doesn't, it's not going to export it as a parameter or a slider for the end user. So make sure the ones that you want an end user to experiment with or to play with has the Is Input available.

So this is a definition that's basically showing on how we've created the floor slabs. Again, just on planes at a certain distance and cut the surface geometry into curves, and then created the floors or the floor boundaries and extruded them. And on the right-hand side over here, I've created the surface area. So I've got a math.sum for the left one and the math.sum for the right one, and then I also have a sum of the sum. So we've got the floor area added total, and we've got the right side floor area total, and the left side floor area total.

It's very important that we name these watch nodes. So these were watch nodes, essentially, but we haven't named them. If we do not name them, they're not going to be outputs available in Fractal. So once we name them it will show up in Fractal.

So before we get into Fractal, and this was what I was talking about, that even if Fractal is not there and you only have FormIt, here's a great example of how we can have our designers actually utilize just pushing, pulling, building masses, know subtracting, Booleaning. Whatever they do in their Sketch-Up world, they can probably follow the same suit in FormIt, but if they do have a facade that they want to experiment with, then they can create that geometry on the side in Dynamo and then bring it in.

So once you send it to web, which I think should be here. No. So this is just going FormIt. So you send it to wherever that definition is available to you in the Dynamo tab, in FormIt, and then you just select one of them. So over here, you can see I've got ribbon options one, two, three, and then finally I got the demo facade fractal. I mean, there was some experimentation here.

And then if you want to access the parameters that you just saw in the Dynamo script, you have to actually double-click on that blue selector geometry, the Dynamo script file, and then you will get in to the sliders. So it's a group property, it doesn't come up just by clicking it once, and it's frustrating because I tried and I was like, wait. I was told that I will get the sliders, but I don't see them. So you've got to double-click in it, and you've got to enter into the group. So same thing here, you can play with, enjoy. It will take a little bit longer, it's kind of going through the server and the cloud and that way you can have a fusion of both, just block modeling as well as generative design.

So as I said, we do need an evolution in our design tools. I don't know what the next steps are, but I'm going to keep my eyes and your ears open and try to adopt as much as possible and create better workflows. So stepping into Project Fractal and how we use that to iterate design options. So I went through this, but this is the procedure to send it to the web. You can just go to your Dynamo Studio and then type in a name and then hit Publish, and it's going to give you a web link. You can copy-paste that web link in a web browser, or you could sign into Fractal.live, and you can select the demo facade Fractal and then start playing with it. So I'll pause it a little bit over here.

So what you see here on top basically are the engineering options, and then on the right, the orange lines, they're the output. So those are the floor areas calculations. And then obviously these are the parameters that you've been seeing. The variations, that's an option, so even if you have used the Is Input on any of these and then later on you decide, hey, you know what, I don't want three million design options, I just want to limit those. And I do not want anything to change on the right ribbon, I just want to see the left ribbon changed, then you can just uncheck these boxes.

And if you want more options on the left ribbon, you can actually increase this number from three to four. So when it's three it's basically saying that I'm going to stop at number 1, 50, and 100, if the range is from 0 to 100. So if you let it go-- so here I'm just kind of limiting some of the design options. The number is changing down here. So it's now up to 675 designs. Again I'm changing it to 243. Obviously it's going to take more time with more number of options.

So I was like, OK, you know what, let me just start generating 576 design options. So it quickly drops these individual thumbnails based on the view that is available to it in this viewer on the right-hand side. If this view is small, that thumbnail is going to be small, so I'd recommend to go zoom into it and make sure it's the orientation that you want to look at.

And on top you'll see that certain things are changing. So I kind of stopped the iterations over here, and then I'm going to decide that, hey, I just want to limit my total floor area to be between 60 thousand and 70 thousand. And I want my, I guess, left floor area, left-driven area, to be between, I guess, it's 30 to 40 thousand. So as soon as I do that I've got these two boxes. I'm definitely limiting what I need to see, and those are the five options that I can do so that we have the output maintained at what I want it to be.

And then you can always sort your design options, you can mark them as favorites or star them. So you've got multiple ways of filtering out the number of iterations. And then I think in terms of output, we could save this back as a Dynamo file. I haven't seen this going back to Revit, but I know it goes back to FormIt it, so that's it, I guess, on that.

Yep. So this is basically showing some documentation that I just talked about, that once you have that published version you can go into the website. You can go to My Workspaces, and the list of the definitions that you have published or sent to web will be available for you down here, and then you can pick which one you want to play with in Fractal or in FormIt.

So this is more in detail on what these individual areas are called, so these are your option engineering variations. These are the output watch nodes, you've got your sorting previews, variables, your mean preview and your start marks or thumbnail favorites.

So the one thing I was pointing out while the Dynamo script was going on was that I kind of like to see this as a visual trick to understand what that section profile is for the curvature. So these little slider buttons. They kind of visually show me. oh, OK, my left ribbon is going to have that kind of a profile and my right it's going to have that kind of a profile. And I talked about this already. So you can limit your design options with your sliders and Fractal and change the number of variations you want.

OK, how are we doing on time? Good.

So in theory and conclusion, I think we do need to streamline our design processes from taking them to documentation. We have several softwares that do wonderful things with geometry, but getting the data with the "I" in BIM as an additional layer that's something that we're still thinking of an additional add-on. Revit does have some neat conceptual design tools. Some of us are successful in it, some of us aren't. So I don't know, probably needs to get better.

And in general, when I have conversations with our designers in the office, I always get like, hey, we need to have complete freedom. Our creative processes need to be whatever we feel like, and if there's a tool that allows us to express that more freely we are going to use that. So my point is that yes, that's true, but we do need to understand that there needs to be some logic and some analytical aspect. So if a computer is allowing you to do that, why not. So let's think of it and kind of analyze how we are going to look at our designs and figure out what are the important parameters and be able to compute that using generative design tools like Dynamo.

OK so, in essence I think interoperability is still a thing, and we would love to move to a better future for early design stage and documentation processes. Any questions or comments? Yes.

AUDIENCE: [INAUDIBLE] would you only use out of the box [INAUDIBLE]?

TIM LOGAN: There are-- so I try to use some packages. It's definitely, I was doing things that out of the box couldn't always do. There were a few things I think I tried to use Wombat for, but it wasn't working quite as well as I wanted in some cases. So I actually wrote a package just to make walls-- wall by boundary, and then wall openings, because there weren't tools for those.

So that's part of their-- I think I have a GitHub repo link in the handout, too, that shows you where to find it if you're curious. But generally there's Python in there, there's compiled nodes, there's Dynamo script-- just design scripts I guess-- just to throw a little bit of everything at it. Just to give you a feel for what all the different ways you can do things are. Yeah.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: So are the Dynamo scripts one-off for the design. I think it depends on which Dynamo scripts. So the one she was showing with the ribbon, that's pretty much a one-off. It's just, we do a lot of very project-specific scripts that live and die in the project. The stuff I was showing with the translation of surfaces to BIM elements, those have a life afterwards. It's not always the exact same file, it's sometimes like pulling out pieces and replacing things, and whatever is appropriate for what you're trying to do. But they sort of carry on, there's a lineage and a history to a lot of these things, of things we've done before.

It's a lot about sort of building up an experience of how Revit it wants things to be made, in a way that's useful for the design team after they're made. Because some things just aren't as useful.

REETI GUPTA: Yeah, and one of the things that I want to push for is the methodology. So if somebody has used the ribbon aspect, or the Dynamo script for that ribbon facade, well, they will understand in the future if they're doing another project that they can divide a line into 5 parts or 15 parts and be able to drop splines over it. So you saw, what if this was a vertical surface, if they're doing a skylight or a roof that's going to have a curvature to it, they'll have to start thinking that way. So that's what I'm pushing for is, let's start thinking more analytically and be able to extract what we are generating to some data and validate it.

TIM LOGAN: Yes.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: Yeah. Yeah, I mean, it's definitely got some-- I dug into it a lot more in the last two months, I think, than I had before. I get brought in a lot to deal with just interoperability problems. It's something I've dealt with for a long time now. But I hadn't had as much opportunity to play with FormIt, but it definitely had some nice tools, and I really like the way it translates into it to Revit. It's a much cleaner way than just sort of a typical CAD import, which is the main reason why we were trying to push it and use it, even if it is a go-between from Sketch-Up to Revit. Yeah.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: For Dynamo. Yeah.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: Yeah, so the question for posterity is, do we have company standards for grouping and coloring and style of the Dynamo scripts? Not really. And a lot of it's just because, well, I will say not really from the standpoint of scripts, especially ones that are for projects. Because they tend to be so project-specific. It's like one person working on them, maybe two people working on them.

For something that I know I'm going to be giving out to someone else in the office, I definitely try to follow an organization to it. I put lots of notes in them. I group things and name the groups. And I don't necessarily follow color codes very easily-- or very well-- but I try to keep some organization in there, because I know I'm going to get questions about it anyways. But just trying to make it a little bit easier on people. Yeah.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: So the question was, when I was creating the floors, was I creating the floor plan views on Revit. No, because the floor plan views are controlled by the level itself. So when I added the levels in the earlier correction to adjust the orientation and all that, that's when it created the floor plan to use. If you wanted to have it kick off and create other additional floor plans you could, but it would be a separate node that sort of gets strung along in there.

AUDIENCE: [INAUDIBLE]

TIM LOGAN: Yeah, if you wanted to. Yeah, you can create ceiling plans. The Revit API does not support creating ceilings, though. It irritates me to no end. It's been like that for years. It's the same thing as a floor or a roof, but for some reason you can't create a ceiling programmatically. Unless they changed it in 2019, but I don't think they did. So it's a weird limitation. You can create the view, I'm pretty sure, you can't create an actual ceiling. That has to be done manually. Yeah.

AUDIENCE: Kind of showed the two methodologies, one where you more or less open [INAUDIBLE] Sketch-Up [INAUDIBLE] and then kind of struggled to convert it into Revit [INAUDIBLE] And then the other one was more of a conceptual [INAUDIBLE] Are you finding a preference for [INAUDIBLE] one approach versus the other?

TIM LOGAN: Is there a preference for, like, an over-model facade that you have to fix, versus a simpler one that sort of articulated?

AUDIENCE: I'm just asking [INAUDIBLE].

TIM LOGAN: Absolutely. It's one of those things, like, if it's going to be a sort of heavily-articulated something that can benefit from a visual scripting thing, like Dynamo-- or if it's Grasshopper, or if it's whatever in the world-- I think it makes a lot of sense, because it sort of builds the history of the object that changes and sort of affects really well together. It's a lot easier to deal with that, especially if you have the base condition, that you can sort of build up if you have to build it up in another application.

If you're starting with fully articulated mullions and bolts and everything, which sometimes happens-- oftentimes happens-- it's really difficult to start filtering all that stuff out. You spend a lot of time getting rid of the noise to distill down to what you can actually use. So if you can start at a better place, it's way easier. But that's not always the task that I have. Anything else? All right. Thanks everyone. Cheers.

REETI GUPTA: Thank you very much!

______
icon-svg-close-thick

Cookie 首选项

您的隐私对我们非常重要,为您提供出色的体验是我们的责任。为了帮助自定义信息和构建应用程序,我们会收集有关您如何使用此站点的数据。

我们是否可以收集并使用您的数据?

详细了解我们使用的第三方服务以及我们的隐私声明

绝对必要 – 我们的网站正常运行并为您提供服务所必需的

通过这些 Cookie,我们可以记录您的偏好或登录信息,响应您的请求或完成购物车中物品或服务的订购。

改善您的体验 – 使我们能够为您展示与您相关的内容

通过这些 Cookie,我们可以提供增强的功能和个性化服务。可能由我们或第三方提供商进行设置,我们会利用其服务为您提供定制的信息和体验。如果您不允许使用这些 Cookie,可能会无法使用某些或全部服务。

定制您的广告 – 允许我们为您提供针对性的广告

这些 Cookie 会根据您的活动和兴趣收集有关您的数据,以便向您显示相关广告并跟踪其效果。通过收集这些数据,我们可以更有针对性地向您显示与您的兴趣相关的广告。如果您不允许使用这些 Cookie,您看到的广告将缺乏针对性。

icon-svg-close-thick

第三方服务

详细了解每个类别中我们所用的第三方服务,以及我们如何使用所收集的与您的网络活动相关的数据。

icon-svg-hide-thick

icon-svg-show-thick

绝对必要 – 我们的网站正常运行并为您提供服务所必需的

Qualtrics
我们通过 Qualtrics 借助调查或联机表单获得您的反馈。您可能会被随机选定参与某项调查,或者您可以主动向我们提供反馈。填写调查之前,我们将收集数据以更好地了解您所执行的操作。这有助于我们解决您可能遇到的问题。. Qualtrics 隐私政策
Akamai mPulse
我们通过 Akamai mPulse 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Akamai mPulse 隐私政策
Digital River
我们通过 Digital River 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Digital River 隐私政策
Dynatrace
我们通过 Dynatrace 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Dynatrace 隐私政策
Khoros
我们通过 Khoros 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Khoros 隐私政策
Launch Darkly
我们通过 Launch Darkly 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Launch Darkly 隐私政策
New Relic
我们通过 New Relic 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. New Relic 隐私政策
Salesforce Live Agent
我们通过 Salesforce Live Agent 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Salesforce Live Agent 隐私政策
Wistia
我们通过 Wistia 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Wistia 隐私政策
Tealium
我们通过 Tealium 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Tealium 隐私政策
Upsellit
我们通过 Upsellit 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Upsellit 隐私政策
CJ Affiliates
我们通过 CJ Affiliates 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. CJ Affiliates 隐私政策
Commission Factory
我们通过 Commission Factory 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Commission Factory 隐私政策
Google Analytics (Strictly Necessary)
我们通过 Google Analytics (Strictly Necessary) 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Google Analytics (Strictly Necessary) 隐私政策
Typepad Stats
我们通过 Typepad Stats 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Typepad Stats 隐私政策
Geo Targetly
我们使用 Geo Targetly 将网站访问者引导至最合适的网页并/或根据他们的位置提供量身定制的内容。 Geo Targetly 使用网站访问者的 IP 地址确定访问者设备的大致位置。 这有助于确保访问者以其(最有可能的)本地语言浏览内容。Geo Targetly 隐私政策
SpeedCurve
我们使用 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、您的 Autodesk ID 等。根据功能测试,您可能会体验不同版本的站点;或者,根据访问者属性,您可能会查看个性化内容。. Google Optimize 隐私政策
ClickTale
我们通过 ClickTale 更好地了解您可能会在站点的哪些方面遇到困难。我们通过会话记录来帮助了解您与站点的交互方式,包括页面上的各种元素。将隐藏可能会识别个人身份的信息,而不会收集此信息。. ClickTale 隐私政策
OneSignal
我们通过 OneSignal 在 OneSignal 提供支持的站点上投放数字广告。根据 OneSignal 数据以及我们收集的与您在站点中的活动相关的数据,有针对性地提供广告。我们收集的数据可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。可能会将此信息与 OneSignal 收集的与您相关的数据相整合。我们利用发送给 OneSignal 的数据为您提供更具个性化的数字广告体验并向您展现相关性更强的广告。. OneSignal 隐私政策
Optimizely
我们通过 Optimizely 测试站点上的新功能并自定义您对这些功能的体验。为此,我们将收集与您在站点中的活动相关的数据。此数据可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID 等。根据功能测试,您可能会体验不同版本的站点;或者,根据访问者属性,您可能会查看个性化内容。. Optimizely 隐私政策
Amplitude
我们通过 Amplitude 测试站点上的新功能并自定义您对这些功能的体验。为此,我们将收集与您在站点中的活动相关的数据。此数据可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID 等。根据功能测试,您可能会体验不同版本的站点;或者,根据访问者属性,您可能会查看个性化内容。. Amplitude 隐私政策
Snowplow
我们通过 Snowplow 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Snowplow 隐私政策
UserVoice
我们通过 UserVoice 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. UserVoice 隐私政策
Clearbit
Clearbit 允许实时数据扩充,为客户提供个性化且相关的体验。我们收集的数据可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。Clearbit 隐私政策
YouTube
YouTube 是一个视频共享平台,允许用户在我们的网站上查看和共享嵌入视频。YouTube 提供关于视频性能的观看指标。 YouTube 隐私政策

icon-svg-hide-thick

icon-svg-show-thick

定制您的广告 – 允许我们为您提供针对性的广告

Adobe Analytics
我们通过 Adobe Analytics 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID、您的 Autodesk ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Adobe Analytics 隐私政策
Google Analytics (Web Analytics)
我们通过 Google Analytics (Web Analytics) 收集与您在我们站点中的活动相关的数据。这可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。我们使用此数据来衡量我们站点的性能并评估联机体验的难易程度,以便我们改进相关功能。此外,我们还将使用高级分析方法来优化电子邮件体验、客户支持体验和销售体验。. Google Analytics (Web Analytics) 隐私政策
AdWords
我们通过 AdWords 在 AdWords 提供支持的站点上投放数字广告。根据 AdWords 数据以及我们收集的与您在站点中的活动相关的数据,有针对性地提供广告。我们收集的数据可能包含您访问的页面、您启动的试用版、您播放的视频、您购买的东西、您的 IP 地址或设备 ID。可能会将此信息与 AdWords 收集的与您相关的数据相整合。我们利用发送给 AdWords 的数据为您提供更具个性化的数字广告体验并向您展现相关性更强的广告。. 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、您的 Autodesk 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

是否确定要简化联机体验?

我们希望您能够从我们这里获得良好体验。对于上一屏幕中的类别,如果选择“是”,我们将收集并使用您的数据以自定义您的体验并为您构建更好的应用程序。您可以访问我们的“隐私声明”,根据需要更改您的设置。

个性化您的体验,选择由您来做。

我们重视隐私权。我们收集的数据可以帮助我们了解您对我们产品的使用情况、您可能感兴趣的信息以及我们可以在哪些方面做出改善以使您与 Autodesk 的沟通更为顺畅。

我们是否可以收集并使用您的数据,从而为您打造个性化的体验?

通过管理您在此站点的隐私设置来了解个性化体验的好处,或访问我们的隐私声明详细了解您的可用选项。