Description
Principaux enseignements
- Learn how to use web-based applications for better project management
- Learn how to use web-based applications for better project start up
- Learn how to use web-based applications to keep track of model quality
- Learn how to use web-based applications to enforce standards
Intervenant
- KSKonrad SobonKonrad K. Sobon is a Design Technology Specialist for HOK, New York. He is also a member of buildingSMART team at HOK that develops design, management and collaboration tools for architects and engineers. He specializes in Computation Design implementation on BIM projects and is an author of a number of project enhancing applications and workflows. He is the creator or co-creator of Mantis Shrimp, Bumblebee, Mandrill and Unify plug-ins for Dynamo, Rhino and Unity as well as the keeper of www.archi-lab.net – an online resource for technology curious architects.
PRESENTER: So let's get started. What I do, I can mention. I work at HOK, design technology specialist. Anything from helping people, hands on training kind of stuff, to software dev.
I also write a blog. This is a shameless plug. I appreciate your support on my blog. I know a lot of you have probably heard of me through that. I try to post as much stuff as I can, although recently I've been a little busy and let this thing down. So I promise I will get back to it. So archi-lab.net.
I also started, recently, with a couple of my friends a consulting company called Bad Monkeys. So if you're into Dynamo you've probably heard of us a little bit.
AUDIENCE: I'm having trouble hearing you.
PRESENTER: Let's see if we can get this closer. Is that better?
AUDIENCE: Not really.
PRESENTER: Is this better? No?
AUDIENCE: Yeah, if you wanted to give us your whole check box [INAUDIBLE].
PRESENTER: Sure, sure. All right, so yeah. Shameless plugs, archi-lab and Bad Monkeys. HOK, I'm based out of New York. They have a ton of offices. I don't really know how many there is. So I'm not going to go through all of these.
A couple of things that we do, and it's not just me. It's my teammates as well. We have a guy that's doing research between all of us. And there's pretty much someone like me in every office. Not exactly like me, but a similar role in the kind of design technology team. Project support training, part of the reason why we did this project was training is not very good. We will hear more about that in a second.
Automation workflow, software development, web-app development. And I'm splitting those up separately. It's pretty much all one bucket. But just because how I'm trying to present it. So I'm talking about these as two separate things. So these are the things that we do.
I spend most of my time on the last two writing software these days. I cut my teeth doing lots of training projects, supported automation workflows. So I can dabble in some of these things as well.
So the project I'm going to talk about is called Mission Control. Before we get anywhere with this, I want to say a few thanks to people who actually started it. Because I joined HOK back in May. So it hasn't been that long enough yet.
So it was actually Jinsol Kim that kicked this project off. She's no longer with HOK. I believe she moved on to Arup, if I'm not mistaken. And the idea behind this was to just basically increase compliance with some of the Revit standards. Obviously this was driven by BIM managers, if I'm not mistaken.
And they've been using some cool tech that's still around in this. I haven't changed the basic setup in this. So I don't know if anyone's familiar with a MEAN stack. Mongo, Express, Angular and Node.js. It's basically a Mongo database, not SQL. That's usually what people are asking about. And then the front end is Angular using Bootstrap and typical HTML.
So that's all I'm going to talk about technologies. So I'm not getting too specific into that. And since Greg's probably been presenting at AU for a long, long time. And he's really into cats. And if anyone ever heard James [? Vandisan's ?] presentation, he's all about cats as well. Well, yeah, there's some cats in Mission Control as well. I couldn't not put those in there. So that's HOK flavor on top of it.
So what it is, it's a web based application. And you can basically do things to Revit. It's not just about pulling stuff out and recording it and doing dashboards. It's also about running some stuff on the server side to evaluate and give you feedback on how your models are doing, how projects are performing. And it's also requesting things and scheduling things, pushing them back into Revit. So we'll see that in action a little bit when I get through all of this.
And by the way, there is a lot of stuff up here that I've been thinking about. But if you guys think it's a little boring or totally not relevant or not important just raise your hand and tell me. And I will skip through a few slides and we'll get to a demo. So yeah, Revit and Chrome and there's cats. It's going to be a lot of cats.
So why we'd really get into it? Revit training sucks. I mean I cannot tell you how many times I had to bribe people with pizza to get them into a training room. You just can't train people in Revit. I mean, the software is complicated enough to-- I mean, you can screw it up when you're double clicking the Revit icon.
That's it. That's how complicated they've made this thing. You can open a Revit file in the wrong way. And how do you train people not to screw things up?
And you know a web based--
AUDIENCE: [INAUDIBLE]
PRESENTER: Web based because, yeah. I'm not just dealing with designers, I'm not just dealing with BIM managers. Also project managers and people a little higher up. And I don't know if it's just me. But my past experience was that the minute you make a project architect, or a project manager you hands off. You're doing sketches and high level and answering e-mails.
So it was more about trying to get some more people re-engage with the projects. But making a little bit easier on the web. And then hopefully they don't have to learn Revit.
And then with the forge and everything we wanted to just branch out and see if we can do some web apps. Yeah, I'm not using forge on this, obviously. Or Quantum or whatever else the latest tech is that they're offering to us at $500 a user.
But it's ready for that. It's a web application. The technology's all the same. So I can expand into that at any point in time.
So really quickly, designers that was like, one of the first people they were looking at. Then managers and project managers, that's how we tried to approach to the mission control. And there's tools for every single one of these people in there.
Challenge-- basically the training sucks. It does. You can quote me on this. I know they're recording this, so I'm going to be famous and never invited again to AU.
Yeah, like I was saying, you really can't teach then what you want them to do and not to do in Revit. You just kind of have to get them into the models, have to allow them to screw things up. And unfortunately, Revit makes it easy. And there's nothing else we can do about this. Yeah, you can quote me on this as well.
Yeah, you just can't expect people to walk in and know what to do. And there's a lot of handholding involved. And I mean, the best form of training I've ever been able to do was really, really hands on long form, like multiple days with the same person.
And you just let them go in and do their thing. So the real goal over here was to try to remove as many obstacles as you can. And basically lower the barrier of entry. So I'm not interested in training people anymore. Like, I'm done with this. I'm so over training.
So what we try and do with this is just let people make mistakes. And we're trying to catch them. We're trying to catch them and tell them if they're potentially making mistakes. So we'll get to that in a second. Gosh, am I repeating myself? Never mind.
So yeah, BIM managers, they're juggling multiple projects. HOK is a big company so each one of the BIM managers in each office will have two, three, four, five. Now, back in the days when I was in that role myself, I'm juggling six or seven of them at the same time. Yeah, you guys are working hard. How many BIM managers are here? Yeah, you know what I'm talking about. It's not easy.
So we looked at just giving you some sort of high level overview for the projects. So you can identify bottlenecks and not open every project. So that you can kind of have this what we call mission control. A center where you can go and look at the projects. Looking to identify tendencies in workflows.
Because at the end of the day, as [? Alan ?] has been preaching for a long, long time data is at the center of everything. If you're not writing it down, and if you're not recording, if you're not storing it in a database it doesn't exist. If you haven't written it down it doesn't exist.
Because we as humans are made so that we keep lying to ourselves. We do look for things that confirm what we initially thought is true. And we don't win we like to believe that we're doing something wrong. So the only way to prevent that is you got to record stuff and you got store it.
And then you've got to look at your tendencies over time. And then obviously, they're BIM managers. So they like to enforce standards.
Then we have project managers. I can train people to actually work in the models. There's no way I can teach anyone Revit, that doesn't work in the model. So we try to do something for them so they don't have to be in the Revit models.
So we get started with designers. So the main question was how people learn. And for anyone to be able to learn something you need practice and you need feedback. This works pretty much like this. If you touch something hot, you're probably going to catch on fire. There's no magic about it.
But Revit is not exactly built that way. Feedback is not the strongest part of Revit, right? You kind of do things and if you've angered Revit gods, ship goes down and they ask you to submit some crash files. No one ever does that.
Or it just works. It just works, and you don't really know if it actually works. Because you're deliverables and everything's months down the line. So yeah, feedback is not immediate for us. It's not immediate enough so that you learn.
So I like this quote by Richard Thaler. It's, one reason why teenagers are such risky drivers is that their automatic systems had not have much practice, and using the reflective system is much slower. This basically goes to say that 99% of things that we do are just based on our intuition. We ask ourselves questions constantly in our head. If you don't know answers for them, you just pick a different question that you try to answer. That's how people come up with very creative workarounds.
And this pretty much works like this. I mean, obviously not everyone dies in a car crash. There's ways of correcting that, right? So we'll get to that in a second.
Probably someone somewhere said this, it's pretty much the same deal with Revit models. People don't stop and think about doing certain things. They just click on things. And that's how software should work. It should be intuitive, should be easy to figure out. You shouldn't have to ask a BIM manager every time you want to click something because you're potentially destroying the whole project.
Yeah, this sinking ship analogy. I remember this meme once, the tipped over ship. And the question next to it, have you synced today? That's one of those things that people forget to do.
So how do we correct that behavior? Basically we just we're just given kids our cars, buy more expensive insurance, and just let them drive. Because if they can't drive they're never going to learn.
And at the end of the day, you hope that they get better at it. They don't kill themselves, they maybe just injure themselves. So can bad Revit-- and an endless, list of things that can go bad with Revit. So can that be corrected? So we thought that an opportunity to practice and immediate feedback will be the two things that can help you with that.
So finally getting to mission control. So one of the first things that Jinsol started, how do you give people immediate feedback about things that you can potentially mess up in the Revit model? So we looked at grids first.
That was the easy, low hanging fruit, right? When you're moving your grids, when you're drag in the 3D extends, when you're renaming your grades. It's all hunky-dory in the very first phases of the model, right? What happens when you get to see these and you're relying on location names and extends on your grids for coordination? If someone goes in there and starts moving them around and renaming them, it can go bad.
Here comes a cat. This is what happens when you turn on mission control and you start moving grids around. Obviously this is checkbox kind of functionality. You can turn it on. And we wouldn't turn it on until later in the product phase. But this is what happens.
People can still add grids. And this works for levels, toolboxes, and a bunch of other stuff. You can still add those things, and perfectly fine. But once you add them and once you sync the model, a cat will bother you a lot if you start moving stuff around.
And this happens because, I mean, links are the same way. How many of us have dragged a link and copied it without ever realizing that we've done this? I've done this a handful of times. So a cat will tell you like, you're not supposed to, really. It gives you a little message and an explanation why you shouldn't be doing that.
Obviously, I'm not interested in just being the Revit police. So you can override this. But if you override this, I'm recording you. We play a little NSA. We haven't really like, went after people with this yet. We're running this thing maybe 20 projects right now. It's like a pilot project.
But it's just good to know. It's just good to know. Because you can come out to that person and be like, hey, you know, you've obviously seen the pop up. And you still decided to go move that grid. Are you sure about this? It's good to know.
So how do you make people do what you want them to do? First and foremost, you got to remove all of the barriers. And like I was saying, well, it sucks. You can mess this thing up by opening the file. Imagine if you could kill your iPhone by turning it on. Like, literally it just dies and crashes and burns and like lights on fire. It's not a Samsung. Samsungs do that.
It just works, right? It's supposed to work. That's how good design is supposed to be. It's just not one of those things. So you want to remove all the barriers. And you want to give people some defaults. And there's a lot of things that come up, a lot of questions the Revit will ask you. And you kind of want to intercept as much as possible of that to give people a default that works for you, that complies with your standards and all that.
So one of the things we did was make sure that the tools available has to be available and has to be visible. So if we're pulling data out of it, and we are recording it and analyzing it, and trying to figure out what works and what doesn't work. There's a little dashboard docked in your Revit. And you can see it right away.
But it's not always about availability. It's about removing the barriers. If I'm telling you that your links suck because you have about 100 imports in that model, well, you're like shrugging their shoulders like, how do I fix this though? Well, so there's a button right next to that. You just click that and window comes up. You can delete whatever you want to delete all of the model that's supposedly bad for it.
So removing the barriers, basically just one click solutions. Let people fix the things that you think are wrong with the model. And then information, there's a website component to that, obviously. I wasn't able to put all that text and all that explanation stuff in Revit. It just makes no sense.
So we have a website where you can get more details. These little menus dropped down and you can read about why it's bad to have a million object styles and exploding imported DWGs and stuff like this.
And then obviously, you've got to have some sort of feedback for people. So it's not just looking at overall projects, overall Revit models. Always looking at individual people's performance. So we're trying to track some basic metrics about how people are doing, individual people in the model. Because then you can use that data and go talk to them. Maybe they didn't know they can do things better.
This particular one is tracking how many worksets you open when you're opening the model, or how many worksets you have open when you sync into central file. Why does it matter?
I think Revit still eats all of your RAM if you open all of the worksets on opening. And it doesn't release it when you close it. That's bad Revit. No one knows about it, no one thinks about it. So that's why you want to kind of let people know that you can save yourself some RAM if you do that. Your computer will run faster.
And then defaults. Lowering the barriers, putting in some defaults. There's this tool that you can turn on that has a shared parameter monitor. You probably notice that if you go in and add a shared parameter to a project it allows you to browse to a different file. It might not be the file for that given project. It might be a file for a different project.
And then all of a sudden you have this jungle of shared parameter files that the project's pointing at. And you just got to keep deleting and adding new ones. And you never reconcile it.
Well, you can set a default here. And then every time someone goes to that menu it's pointing at one file. So I think it's like, 90% less chance that they're going to go and change it. Because of inertia. People don't like to do extra clicks. So if you give them a decent default, hopefully they'll just follow it.
And yeah, you still can click on browse and pull in extra parameters. But again, I'm not Revit police. I'm not going to prevent people from doing things. I'm more interested about pushing them in the right directions.
Right, so then you've got your BIM managers. They're the Revit experts. We're the people that everyone comes to when they need to import their Rhino models in Revit. You're also that one person that's there on the zero day to make sure the prints come out right out of the plotter. I don't know how this is still possible, but--
So again that 10,000 feed view of the project. So we're pulling all this data out and kind of trying to grade and rate all the things that are in the model. You don't want to open every single one of them. So there's a little dashboard thing going on. And we're scoring all the models. And you can see, potentially, really quickly before you even open the models what's going on and what's wrong with them.
And then obviously once you get into it, it's a little bit more detail. It's a few more tools available for you to really dig into all the specifics. We're doing a lot of charts and timelines to look at the progress throughout the projects. So if you see anomalies in charts, huge spikes, you can start asking yourself questions.
It's like, just a basic thing that we do as BIM managers. We spot these things. And we kind of know like, 100 extra views. How did you even get in there? Like, in one day? You're really working hard. Or you just like, ran this Dynamo script that screwed everything up and gave you 100 new views.
And then the last thing is actually an action, actually interacting with the Revit model. So this is just a view of the family's manage I'm going to show you in a second. You can basically isolate all of these families. So multiple parameter space. This is kudos to Aaron Miller for bugging me on Twitter So much about, it's not about the file size. Well, I know it's not about the file size. So I put a few more things in there for each one of the family. It's looking at reference [? planes, ?] imports, nested families, nested parameters, and all that stuff in the families. And you can use that chart to filter out all of the bad apples, or potentially bad apples.
And then you can schedule a sort of cleanup task. You can send it to someone specifically. So that's the recipient button over there. And this one says [INAUDIBLE]. That's basically my email at HOK so that everyone knows who you're talking about, right?
And only that one person is going to get it. So on the Revit side, next to the health report dashboard, there's a tab for tasks. And that's what's going to show up over there. And this is individualized. Like, if I send something to you no one else gets it. You're responsible for cleaning that up type of deal.
And then obviously lowering the barriers. I mean, finding those Revit families in the browser, still. 15, 20 minute task to track down that one specific that you want. Well, we already have all that information. So there's an edit family button that will just open the family right for you. So you can go look at it. And the window doesn't go away. So you still know what's potentially wrong with the metrics that we're looking at for that specific family.
And then we've got project managers. So this is really just a PO, Proof Of concept at this point. I have been looking at this tool for like, two weeks maybe at the moment. So it's not a very fleshed out yet. But we thought to the sheet management, the task of-- I don't know how I ended up doing all that on the sheet management. And drawing less management between all the consultants as a BIM manager.
This can be very, very easily done by a project manager or project architect. It's not rocket science. Well, Revit makes it incredibly hard to do that. So we're trying to look at adding tools to the web app to make it a little bit easier.
So it pulls all the sheets out of all the models. So you get a grand view of all of them. You can filter them and look at them individually per model if you wanted to.
And then the color code stuff. You can propose from the website to add new sheets. And they're going to be green color coded. You can propose changes to sheets that are existing in the models. They're going to get yellow. And then you can propose deleting stuff out of the model.
If you decide you want to add a sheet we're trying to make this as easy as possible. There's a little pop up that's going to greet you. You can tell it how many sheets you want to create. And then you can specify sheet number, sheet name. And obviously this can be expanded, I just didn't have time to really dig into it.
So we can allow people to set title blocks parameters and all sorts of other things with it. For now it's just a sheet name and a number. And whether it's a placeholder sheet or regular, live sheet.
And then you have these components which is just basically like in the previous slide I was saying. You can do a prefix so if you want five sheets they all have to be named A something. And then the numbering starts at 101. And it will just figure out the numbering for you.
And then that's being submitted to the Revit model to a specific user for them to accept it. Because I want to make sure that people that've never touched Revit maybe shouldn't be making changes to Revit at all times. So we have someone just like, click OK.
So you can click OK and it will just create them. Or there's the dialog boxes that come up when you click on these tasks. A little bit different for each type of action that you're doing.
All right, so I'm going to do a quick demo of this, just quickly in summary. Collect data, and as Mark Twain once said, it ain't what you don't know that gets you in trouble. It's what for sure that just ain't so. So you've got to collect the data, and look at it, analyze it, and get smarter that way.
And like I was saying, it's just we find evidence of things that confirm our assumptions. And just collecting data and looking at it from that 10,000 feet overview type of deal will keep you honest, basically. You won't you won't get yourself in trouble. People make mistakes.
You kind of want to observe what they do and record. This goes back to collecting data. But that's the only way pretty much to make better decisions. And then you've got to allow them to give you feedback. So we're running this as pilots.
We've set up the website on Github that people can submit issues. I badger them a lot about all of this. I mean, I don't know if it works. I'm supposed to be a software dev. People give me ideas. I put them in there.
I check if they're using them or not. That's pretty much as much as I know. How they're using it, I can do that. But everything else, if they're clicking at the right things, I just don't know. So you got to allow people to give you feedback to be able to speak up. Because they are the people working in the projects. They know better.
All right, so let's see this thing in action. Yeah, so this is your [? splash ?] new page. Then you go to you go to projects for reasons of this is a real, actual dismantling of an actual database. I just stored it locally on my computer. So I had to rename all the projects. There was one thing that they didn't want me to release was all the projects.
Yeah, so this is just kind of like data so I had to rename all of them. So they're like patients nowadays. So every project is a patient.
So real quickly you'll go into projects. And another thing that we're doing with this is you have to have a project so that we're not tracking every single Revit model. We're not interested in all the noise. So we've set this up the way when you come over here, you're basically just going to go through the set up. And internet's not working. This is a Google map. So it would help if I had wi-fi here, but I don't.
So you have to add a project. You give it the project name, project number, and that kind of gives the ability to then start tracking certain specific Revit models. So the way you do that is there's this setup button.
And then we have all these, you can add all these Revit models to it. You can check whether you want to monitor all those grids, levels, that's the cat that comes up every time you try to move these things. You set up the message that you can give people. There's a couple other tools in here. You know, tracking sheets.
You don't have to do all of these things on every model. You can turn them on as you go as you progress throughout the project. Allowing people or preventing people from unloading links for all users. This is kind of a new thing in 17 and 18 for Revit.
If we're asking anyone to put the link on the work site, that you can turn off the work site and it will turn off the link. Well, I know why people still right click and unload it for everyone. So we put this thing in so that it prevents that from happening. And then the health report aggregation. And then all of these, all the reports when people actually override us.
And then we have the actual health report where we are aggregating all the data for a given model. So these are all the models added to that project that we're tracking currently. And I realize this is all red. Yes, we're still kind of fine tuning what we're tracking and what we're not tracking and how we grading it. And the products are really not that bad, although they have some really, really interesting things in them.
So then you've got your families tab where you can kind of take a deeper look into how your families in the model are doing. And things that were interested in is what are the oversights. [? Aaron's ?] going to hate me for that.
But what are they misnamed? There's a naming standard that HOK is supposed to follow. No one ever does. I need to probably add an option. Because some products have their own specific naming requirements for families. So we have to be able to override that.
But this is still proof of concept very much. And then once you're here you can sort of pull it up. So let's look at all the families that we have in there that have more than 40 parameters. And I know, a bunch of nested families in them.
And they'll filter the table for you so you can start looking at all of these things in a little bit closer looks. There's a fun one in there that-- I think it was like there's like a golden nugget in there. Oh, there it is. It's the contract border 24 by 56. It's a 10 megabyte title block family. And there's 400 instances of it.
AUDIENCE: [INAUDIBLE]
PRESENTER: Yeah. Yeah, sounds about right to me. And it has 90 parameters in it. It's doing all the things that we need for sure. So yeah, so is basically just trying to spot the things that that are probably messing up your model. And if you're complaining that it's taken too long to open, there's the answer right there.
And model's statistics, so we're tracking some basic stuff like how long it takes to open the model. How long it takes to just sync the model, and so here it is. Anomalies, so this is a strange one. Someone actually spent an hour and 48 minutes syncing that model. I'm asking myself how. How is this even physically possible?
The only answer that I could have come up with is someone had synced and walked away and took a two hour lunch. And there was some sort of warning that happened in between. And it just stuck there and it was just sitting there. I have no other answer.
And so this is one of the things that like, once this popped up I'm already thinking like, OK so it's possible for someone to do this. And It's possible to put that Revit model in that weird state when you're out of sync and you cannot reconcile anymore by doing this. So maybe the next tool I write is actually really checking when people had the sync button.
So I can measure the time that they've been in between starting a syncing and then ending the sync. And intercept that and maybe just close it down or something. Or send them an email. Be like, are you eating lunch now when you're supposed to be hitting OK on that button there?
So yeah, if you track and you can come up with these things and you start spotting all these weird anomalies in the model. Work sets, right now it's pretty basic, just looking at whether you have work sets in the model. What made you have a [? workshare ?] model without work sets? But if you've got 58 of them and a bunch of them at the bottom over here are not even used. There's nothing on that work set.
Someone had an idea that they're going to create a work set. They never put anything on it. And they're putting everything on the one works set. Yeah, maybe we need to come up with a better way of splitting up that model content. Because it doesn't matter that you closed all of your works is and you only opened one if everything is on that one work set.
It's not doing anything. So these kind of things let you know that like, maybe there's something wrong with this. And then obviously we're tracking individual people's performance. So like, looking at how many work sets you got open, how many work sets you've got open and syncing while opening the model. And then you get these overviews kind of deal.
Looking at lengths, we're tracking imported object styles and they pretty much run in parallel with exploding [? allocate ?] imports into the models. So we'll highlight those in red if they're imported. I've been tempted to just disable that button. Or just reroute it every time someone clicks on that button. And just make it actually pull up the link menu. But we'll think about it. I haven't gotten to that point yet.
Yeah, so this is kind of giving you the overview. And then in the presentation I said there is not a tool on the other side that lets you actually take action and fix that. So we'll get that in the second. And then views, finally, yeah 3,700 views in there. Majority of them are not in sheets. They're working view.
So the goal would be here to keep both of these lines. The working view's down at the down at the bottom. How many of those are actually in a sheet? You want to keep those two as close as possible. So the further apart you are, you kind of start cleaning up your model a little bit.
And same thing with schedules. You just don't want to keep running all of these schedules that are not doing anything in your model. And then like, basic stuff that we've been tracking. How many of these views are on the sheet and how many of them are actually using a few templates? One of those things I have no idea why would anyone want to track. Someone asked me to put this in. So we're like trying things out.
We talked about the model, yeah. Let's look at the sheet manager, maybe. I'm going to pull up patient zero.
So obviously, this is just the web tool. There's also interactions I was talking about previously. If you spot anything here in this menu you can always click on that little blue icon that hovers, that comes up. And you can schedule a task and then name it very intelligently. Since I'm running on my local, it's not going to be a [INAUDIBLE]. When I'm at HOK, that's what it usually is. But this is actually a computer name as well, not just email. And you can schedule this given family to be set up for tasks. So when I did that, if I popped over to Revit, that will automatically pop up. You don't have to restart Revit or anything. It will just tell you someone's sending you stuff.
And then you can click on that, bring it up. It tells you who sent it to you. Most of the time it's just the lab. It gives you the same statistics that you have from the other side without opening the family. So you can kind of start. But if you wanted to you can at any point in time just jump straight into the family. And you're free to do stuff in there, fix it, reload it.
You know, sync. It will update the dashboards on the web. And you're good to go. You can fix some stuff. This was more like a management type of tool. We're still working through the actual semantics of like, well, we're pointing out all these things. But how do you actually fix them?
So trying to lower the barriers for people. We're trying to build some more tools where maybe you just click a button and it automatically removes all the unnamed reference [? plates. ?] You know, unused parameters that people would just leave them hanging out in there, that kind of stuff. So they have to be one click solutions or I don't expect anyone else to use it.
What else was there? We talked about sheets, yes. So pretty much the same deal. The last tab over here is your sheet manager. So this is pulling all of the sheets out of the model. Actually in this case it's two models I have in there. So it's aggregating all of them across both of those models. You can go in and you can propose making changes.
Send them to yourself, this is pretty much the only field that matters. And again, same thing if I send this, it will show up over here. And then you can bring this up. You can jump into the sheet real quickly if you want to visually inspect it, check out what's going on with that specific drawing. Why someone is sending it to me.
It's probably going to say here in the comment why would someone want you to do stuff to it. And you approve it, it will run through it. And rename it to that weird name just because I changed the sheet number. So obviously we're looking at adding more stuff to it. You know, tracking revisions all across the projects. All of them, adding revisions to projects with one button click for multiple models.
So you don't have to open the models yourself. Know what kinds of things adding parameters and just kind of importing new sheets from Excel. You can start looking at it. You can start tracking how people are actually using any of these sheet tools. If they're creating repeating-- if there's patterns of how many-- if they're creating a floor plan for a level we can set up premade templates.
Like, there's a button and you can just make a sheet for every level type of deal. So same thing here. When I go in I'm going to make a new sheet. I want five of them. I want them to start at 101. It's just naming like this. And I always call them level. I can't type.
And then you can add these, you can build your own. There's some premade ones over here. Like for interiors, it'll have an I prefix, or for structural I have S or whatnot. You can add a number series after that. And if you name a new level, you can just build your own parametric sheet number type of deal.
Again, send it to myself. Don't make it a place holder. Hit OK. They'll show up over here as proposed new sheets. They'll show up in your mission control as proposed new sheets. This is empty, we're just kind of telling you we'll make a new one. You hit create. And it will just go through and crash Revit. So that's the beauty of live demo. I was hoping it wouldn't happen, but--
So like I'll saying, this one is actually pretty experimental at this point. I spent a couple weeks on this only. But, yeah. That's the idea. It works in my room. It will crash and burn and that's it.
So I don't think I have anything else around this one. Maybe just one last thing I was doing. This is more just for me. Like all these plugins I've been building for Revit. First thing I did, actually, with this was add tracking into each one of the plugins. So that I know which plugins I'm spending time on and people are never using.
So anytime someone uses any one of the plugins I've written for HOK, they get they get tracked over here. And then you can start looking at that. Who's actually using the plugins and how often. You can filter that by the office.
No one in St. Louis is doing anything with those. Perhaps New York, yeah. So that I know for next year I'm not spending time on this plugin because no one's using it, that kind of thing. So yeah, data. It's all about data. You just got to collect it. And then do things with it.
We still have 15 minutes for questions.
AUDIENCE: Can you talk about how you developed this? Like with having it interface with Revit?
PRESENTER: Oh, yeah. Revit's not easy to interface with. So like I was saying originally in the first few slides, the website itself is a Mongo database. With the data stored in the Mongo database. There is a node.js server that we're running this on.
The data schema is being passed through Express. And then the front end is an angular app with a Twitter bootstrap for the graphics. All the charts are D3 charts. And then the way it's talking to Revit is actually a piece of technology called WebSocket.
So I could say oh, I don't know if people are familiar with this. Slack is using it, for example, I think for messaging. TREBEL will use that for messaging. You basically broadcast a message from the browser and you have a client listening on a computer.
So the client has to listen non-stop. So the way I've been able to do this so far is I'm spinning a client on a separate thread on Revit so that it doesn't bother What you're doing actually in the model. So that's sitting on a separate thread and it's just constantly listening for messages. When messages come in it's those task. When they come through they have a payload on them that tell it what you need to do with it. And the rest is history.
AUDIENCE: Is that affecting [? 3Z, ?] any kind of-- what's the form?
PRESENTER: Well since Revit's single threaded, if I'm spinning a new thread it has nothing to do with Revit. So is usins the external event anytime I need to interact with Revit itself. So everything, the whole UI, this way the windows are modelless. You're not bugging Revit at all. You're on a separate thread. That's what's altogether.
Anytime you need to interact with the model you just hook yourself into the idling event or external event. I'm using external events for that. So it will put a task in the queue. And when Revit's not doing anything it'll bring it up and do what it needs to do. So it's trying to make those as hands off for Revit as possible so that we don't bother users. They don't see any lag or delay.
AUDIENCE: I mean like on the computer itself. Not Revit specifically. Like, I know that Slack can be a [INAUDIBLE]
PRESENTER: OK, well the problem with Slacker is that they're pulling in the entire Chromium browser. It's an electron app if I'm not mistaken. [? Robin ?] can correct me on that, he knows more about this. Yes? Yeah, so it's an electron app. And it has the entire Chromium browser embedded in it. I mean, if you've noticed, if you're running Chrome-- and I have Chrome open so I can probably show you that.
Every tab is like an instance of Chrome. So Slack is doing the same thing. Like it's just going to spin up tens of Chromium instances. That's eating your RAM. That's the problem. But Revit doesn't. Any more questions? Any feedback? Obviously apart from crashing it. I did make a disclaimer, the last one is a little bit experimental. Still working through that.
AUDIENCE: Is the end produced to do the least?
PRESENTER: Yeah, that's a very good question. And the one that I would ask myself. I'm an open source guy. I'm talking and badgering my bosses at HOK about open sourcing this.
AUDIENCE: Can I just ask you like where to get it from?
PRESENTER: I'm sorry?
AUDIENCE: Can I order this? [INAUDIBLE]
PRESENTER: Well, they have Forge. And last time I heard, and for the last few days I'll be talking about there's going to be a Revit I/O which is going to do pretty much the same thing. It's going to let you do things to Revit from the web browser. And they're starting to pull out certain functionality out of Revit and splitting it off.
I don't know, I think they mentioned like the family editor, it's going to be like its own web based service where you can upload a family, do things to it, send it back to Revit type of deal. So I mean, they're on top of this. It's not rocket science so to speak. Personally I just couldn't wait for that. And I don't know when they're going to release this. This is an early beta.
So we wanted to do certain things, we wanted to try new things. You got to do it yourself. Out of this, we will eventually figure this out. They'll come through and they'll probably have a more stable, well maintained product that we can use. I'm going to be well versed in web technology by then. And I will be able to quickly integrate that if we needed to. And if we have the tokens to spend. Because it still costs a lot of tokens.
AUDIENCE: Do your Revit users have access to the web based application? Where are they going to go and see the help themselves?
PRESENTER: Yeah, so right now there is no security whatsoever. I probably need to stop thinking about that a little bit. That's probably the next thing we want to do. I mean, obviously I know who the people are in every model at any point in time. We've been talking about creating teams, like a teams app where you can start managing who has access to what and what they can do.
I mean, this can go back and forth. Like, I can submit a a doc to someone, they can send it back to me. And we can go in and delete it on the website and be done. And pretend like it's all good type of thing, right? So, we've talked about security and user access.
Right now it's open to everyone with a caveat that it's still a beta tool. So you actually have to click a button to install it. So we haven't released it to thousands of people at HOK. It's only on 20 projects. And those people in those projects have it for now. Because we're testing it.
AUDIENCE: I noticed you're using Revit server Does it have to be Revit?
PRESENTER: It doesn't have to be Revit server at all. I'm running this locally. So it works on the local, it works on the Revit server projects. I haven't tried it on the collaboration for Revit yet. But like, it's going to work on that too.
AUDIENCE: My question is do you have a specific ability to, as you spin up a new project to populate the project? Or like basically save you the time of, OK--
PRESENTER: Oh, yeah. At some point we're considering that. Just like not doing that. Right now, since we're testing it makes sense for me to just like specifically hook up into those 20 projects. But eventually yeah, it will be automatic.
AUDIENCE: How much of your time has been shifted to developing this versus managing Revit projects?
PRESENTER: That's all I do. Yeah, that Revit. Revit plugins that they've had, maintain that, update that, write new stuff. Automation workflows, Dynamo. And people know that I'm like pretty good with Dynamo. So they obviously ask me a lot of questions about that. But I haven't touched a Revit projects project in a while now.
AUDIENCE: I'm just going to ask so-- all of this information is sitting in Mongo, right?
PRESENTER: Yes.
AUDIENCE: Is that hosted in [INAUDIBLE]. Because you're in US [INAUDIBLE].
PRESENTER: At the moment we're running this locally off of our own server. It's no big deal. I mean, I had tests running on the [INAUDIBLE]. But you can host the database somewhere else.
AUDIENCE: And you literally [INAUDIBLE] number of sheets created or something like that?
PRESENTER: Yeah, yeah.
AUDIENCE: Do you have a plan to-- based on [INAUDIBLE] over the current year learn--
PRESENTER: Yeah, that's exact--
AUDIENCE: Dates? Because at the moment, it's just you looking at these things, right? It's not [INAUDIBLE].
PRESENTER: Yeah, that's exactly why I was trying to say with the sheets. I mean, if I see people adding this sheet to every project. Or if we know that every [INAUDIBLE] projects starts with something, then we can start getting ahead of that. And giving people a one button solution to add all the sheets that we normally add to interiors type of deal.
Obviously, there's templates that everyone has already. But then it's an exercise of actually deleting stuff where you always have an overloaded template. So we're going to start looking at that and hopefully learning from this.
AUDIENCE: So what's your workflow when a user closes this mission control properly?
PRESENTER: Oh, it doesn't matter.
AUDIENCE: But if you send them a notification or whatever.
PRESENTER: If I send a [INAUDIBLE]?
AUDIENCE: Yeah. And it's closed and they come up with an excuse. Saying, oh, I didn't get it or whatever.
PRESENTER: I can always reopen it. So for example, we're looking at the families. This one and this one's telling me that it's still open. User hasn't completed it. So I can still go in and play around with it. And make changes to it and reassign it to someone else. And it will shift it to someone else.
But if they were here and they completed it, it removes it from their dashboard here. And if I was to reload my page it will tell me that it's complete over here. And then when I go to edit it, it's all kind of blacked out. But I can always reopen it.
And reopening it will send it back to them. And it comes back on their dashboard. So we can go back. That's what I meant by like, they can keep going back and forth with this forever until we're both happy.
AUDIENCE: And can you track like how long-- you issued It. And say a week passed and--
PRESENTER: Yeah, each one of these is timestamped. So, yeah we can keep [? an eye ?] on that.
AUDIENCE: Were there any specific challenges pushing the data coming out of Revit into the BSON type that Mongo uses? [INAUDIBLE]
PRESENTER: No, Mongo itself stores everything as BSON. But it's really JSON. It's binary JSON. I mean, JSON's been around forever. It's pretty straightforward. There is nothing special about it.
AUDIENCE: And you're using Mongoose over your Express [INAUDIBLE]?
PRESENTER: Yeah, yeah exactly.
AUDIENCE: Did you have an interface to send tickets back from the user in Revit during a ticket? Or something to come back through? Like, you're going through assingned tasks. But it I'm a user, oh, I need a family. Or my thing takes 20 minutes to load.
PRESENTER: Yeah, that's a good idea. I haven't thought of that yet.
AUDIENCE: I know you probably got enough [INAUDIBLE] anyway. But it's another way to have in [INAUDIBLE].
PRESENTER: Yeah, so this will be good for our content manager. Because I mean, this families overview thing is it's really just our content manager and us trying to figure out what slows the Revit models down. Yeah. Definitely, yeah. I mean this is--
AUDIENCE: Huge.
PRESENTER: Yeah, I mean, you can do anything with this to be honest. Anything you can do with another API you can just-- All right. I think that's it. Thank you so much for coming out.
[APPLAUSE]
Downloads
Étiquettes
Produit | |
Secteurs d'activité | |
Thèmes |