Bob Barnett
===
[00:00:00] Hey there, I'm Michael Kilkelly and welcome to the ARK Smarter Podcast, where we explore the intersection of architecture, engineering, construction, and technology. In today's episode, I'm talking with Bob Barnett, a structural engineer who's been combining his engineering expertise with programming since the days of punch cards and Fortran. Now, Bob's story is fascinating and it starts back when carrying 8K of memory required two people to physically lift it.
And it continues on to his current work, creating sophisticated Revit add ins that catch potential structural errors before they actually happen. Now we'll talk about how he's using code to transform his structural engineering workflows and using them to eliminate costly mistakes. And this ultimately helps him sleep better at night knowing his designs are solid.
So whether you're a programmer, an engineer, or someone who's just curious about how technology is changing the building industry, I think you'll find Bob's journey both inspiring and practical. So let's go ahead and dive in.
[00:00:56] Michael: Bob, thanks for joining me. So why don't you tell us who you are [00:01:00] and what you do.
[00:01:00] Bob: Okay, I am Bob Barnett. I'm a structural engineer, down in Alabama and, we keep buildings from falling down and I tell people we barely keep them falling down because anybody can design a building that won't fall down and just make it too big.
But, you know, we try to keep our buildings economical. There's a double edged sword, you can make them too light. So that's the other thing you had to face when you're a structural engineer.
[00:01:27] Michael: There's that fine point between, yeah, super safe and then super expensive. Yeah.
So tell me a little bit about your background, with programming. I know you had mentioned you've done a lot of programming previously, but when you started, in the Revit add in bootcamp and then with Revit, what kind of programming background did you have?
[00:01:49] Bob: Oh, God, Michael, it goes back. I tell people that I started the universe to Alabama when computers did, I mean, they got their first computer when I was [00:02:00] there and I had a course in Fortran programming back then and kind of fell in love with the concept of being able to make a machine. Do stuff a lot faster than I could do.
And that's probably wasted a lot more time. You know how college juniors are, they can waste time on what they're not supposed to be doing. So, you know, I wrote a bunch of programs back then in Fortran. And that's when you use cards, you had to use punch cards.
My thesis was done using, Strudel on a computer. The computers were dedicated to the, uh, administration during the day and the engineers could use them at night. So I could only get one run a night. The program took 19 minutes to run, and today I can run that same program running down the highway on my laptop in like three seconds.
So we've come a long way.
[00:02:53] Michael: That's true. My dad was a machinist and he was using CNC and he had tape that he would use with punch, [00:03:00] punch notes, like, you know, punches in it that he would run through. Yeah. It's crazy.
Yeah, there's probably more.
Pretty
[00:03:06] Bob: cool. You go in there and you watch your machines with a big old mag tape and they were flipping back and forth. I mean, it was, it was kind of fun to watch the machines work. You know, I had a friend who was actually graduating into electrical engineering. And he was installing IBM computers at the time.
He's talking about it took two of them to carry 8k of memory into a building. ,
[00:03:28] Michael: it was much more physical back then. Like, you know, physical, mechanical, you know, equipment that was heavy and big. It was, it was hot. Yeah. It's not like your phone.
[00:03:38] Bob: Yeah. So, you know, when I left college. I went to work and I went back to using slide rule for a while and then, you know, the office finally got a freedom 132.
I don't know if you're from here. Now, it would as track multiply and divide and take square root. Square root is a big deal. And it [00:04:00] costs like 3, 500 and I could buy a new truck for 3, 200, you know, these expensive stuff. So, you know, but it wasn't programmable. That's what we used to do calculations with.
And then over the years, you know, I got programmable calculators, finally got, an old, 8080 machine, in the 70s, that have flip switches on the front where you could like program it, use a flip switch. And I started writing basic programs in and then from there, you know, it just kind of progressed on.
We've got spreadsheets we could do almost everything we need to do. Actually, the spreadsheet, uh, and then, I got into visual programming, but, you know, when we got into Revit, it's like. Revit has everything I need in it. And so all I got to do is capture it. And so I was kind of got fascinated with it before Revit, I actually done a bunch of programming at Lisp,
you know,
[00:04:59] Bob: [00:05:00] AutoCAD.
some of these programs right now, I actually had in Lisp, uh, but we, we dumped AutoCAD, I don't know, 12, 13, 14 years ago now. , And so, but, you know, we lost those programs. So, I felt like the information is in the model, you know, when you got a beam on the screen, it knows the length of it. It knows all the properties of it.
And so I can take all that information and check and see if it's okay. So that's the adventure I'm on. The first program. That I actually developed was one to design bar joists and it was, , because when you design a bar joist, the bull crowd, people really want you to give them the loads, because they don't, they don't make a joist for anything.
Uh, if you give them a 24K8. That [00:06:00] bounds them to a certain thing, but if you give them the lows and they can lighten it up and get you a more economical design. So that was a goal. But I had to find the joystick side of it. So I had to write all that code and,, it became a real adventure.
I have enjoyed doing it. I kind of get a kick out it when, you know,
[00:06:20] Michael: I know exactly what you mean.
[00:06:24] Bob: You want to commit suicide when it doesn't. Yes.
[00:06:28] Michael: I have a dent in my forehead for all the times I've smashed my head into my keyboard.
[00:06:33] Bob: I Recognize this like a bunch of years ago, but never could crack it, you know, , I got Revit API, that whole mess of stuff and I went trying to read it and trying to figure out how to access it.
And then I finally figured out I had to learn C sharp programming before I could do any of that. So I took on learning C sharp programming, , actually took a [00:07:00] course at the university here. The problem with those type of courses that they don't work in the world that we work in.
Right. Sometimes you get a little discouraged. I mean, you know, when they're telling you to like, add up grades or something like that, you know, I don't care about that. Yeah,
you
[00:07:20] Bob: know. Yeah, but you know, you have to kind of like work through that and see, how you can use it. So I got to where I was pretty efficient in, in C sharp program and like with the console apps and stuff like that.
And, I went back into Revit again and like, I was getting nowhere. I signed up for one of those courses you can do overline, you know, you academy or something like that. Yep.
And I finally just got discouraged with it and like gave up. And then, and all of a sudden you showed up one day and thought, well, I don't know, three or four times, maybe. [00:08:00] And so, you know, I took your course, and life has been good since then.
[00:08:06] Michael: It's been fun watching what you've been doing and just what you're coming out. I know enough about structural engineering to be dangerous, as an architect, but, I can see where you're going with, and I don't obviously understand the calculations and what, what's going on under the hood, but I really appreciate, like, you know what you want to do.
[00:08:25] Bob: Yeah.
[00:08:26] Michael: And, and you're just working systematically through it. And it's really fun to see that. And particularly too, when you, like you're working on a problem, you're like, I just, you know, I, what you said the other day, I just need to spend some time on it. I'll get there, but I just need to spend some time.
Um, but it's absolutely true that that moment, when it actually works, you know, like, wow, it's, you know, it's really satisfying. Um, and I found You know, when I was practicing architecture and buildings take a long time. And [00:09:00] so you don't really get that sense of satisfaction. If you design it and you see it built like that, there's a lot of satisfaction there, but it might take a few years.
And there's something that's very immediate in programming where you're, you're problem solving and you're seeing it. Right before you it works or it doesn't work. So that's kind of that's what hooked me. Um, yeah,
[00:09:24] Bob: and you know, it's just something I've always kind of enjoyed doing. And with my health problems I've had this year, I've had plenty of time to do it, you know, because I'm not spending my weekends on my boat or building boats in my shop.
So, I mean, you know, um, I've been able to spend a lot of time, you know, in front of the screen working on some of this stuff. And it's, uh, It's been challenging. It's been rewarding. And, you know, a lot of times I thought, well, you know, I could just send Michael a text and say, Michael, how do I do this?
And you would have come back and told me, but I wouldn't have learned if I'd done that. [00:10:00] So, you know, I've been trying to not bug you that much. I mean, you know, I'll hit you if I got something I really can't understand. But, you know, I think it's more up to me to try to learn this stuff. And, you know, it just sometimes it.
It takes working through it, you know, and I told you about my adventures with the beam system. Oh, yeah. You know, and it just, it finally worked out that I got to do this mathematically. And so, you know, I had to figure out how to do it mathematically. And I got the right answers once I did that. But, you know, I kept looking for Revit to have the information in there, which really kind of surprised me it did.
Um, you know, you, I mean, you got a beam system and you tell it you want, beams of maximum 5 foot on centers. And, it looks at it and says, okay, your real answer is [00:11:00] 4 foot, 6 inches. Well, 4 foot, 6 inches is never stored in there, unless you forget. So, I mean, you would think it would be, but it wasn't.
So, I just, I had to work through issues like that. like I said, it's been kind of fascinating actually.
[00:11:17] Michael: What I found interesting is like within the bootcamp and the academy, there's people from all different disciplines. So I kind of know what I know and just the different parts of the API, the Revit API that I've worked on.
But then there's always somebody like, Oh, I want to do, do something with. You know, assemblies or I want to do something with like beam systems. I'm like, Oh, I have no idea. I can, help you sort of work through it, but I can't give you any code. I haven't done that. So it's kind of like, let me point you in the right direction.
And then you come back and tell me how you did it because I have no idea. Um, but yeah, beam systems, you know, I understand I've used them in Revit. I know how they work, but under the hood, I, agree with you. You'd think that there was [00:12:00] some, I could just pull out some parameter values that would give me the spacing or some other values.
And it's like, you came back and said, Nope, I just got to figure it out.
Yep.
[00:12:10] Bob: One of the things that's been fascinating to me is to, when you have the, Thursday afternoon sessions where everybody kind of checks in and some of the really cool stuff that other people are doing is like, you know, I have no interest in doing electrical schedules.
Right? Yes. Yep. But Jason's really good at how he did it. You know, um, I mean, it's something I'll never use, but I mean, it's kind of fascinating to see what other people are working on that. Boy, that is just seeing what other people are doing.
[00:12:47] Michael: And that's my favorite part too, because again, I know what I know and I've done what I've done, but seeing what other and how people will solve different problems.
Um, yeah, that's been, that's really fun. [00:13:00] That's the, that's what I, that's my favorite part. Yeah. And, and same goes to you seeing what you're working on, Bob, because I know you've been building out a whole suite of tools. Yeah. and what I appreciate too is your. Your, your approach is very much that, I'm going to create these tools to help me, as a structural engineer and help me be more efficient.
And that's, that's the goal.
[00:13:22] Bob: Well, you know, there's two goals there. One is to be more efficient. The other one is to get rid of mistakes. If I look up a beam on a screen and it's 24 feet and six inches and I write down 22 feet and six inches, right, relation where I screwed up, you know, you got a problem.
We got a problem. So, you know, it's being able to use the data that's in , the program and the model is a huge difference in error correction. That to me is the real big part about what I'm doing is stops [00:14:00] errors. And if you can stop errors, you've gone a long way toward getting good job.
Right. 1 things that we can do is we can run these huge models that does a whole floor at 1 time. I don't like those things because. I'm not seeing all the different bits and pieces that go into that. When I look at it, when I'm doing each being, I can see what the deflections are impacting the stuff around it.
If you run in one of those big models, you just like, it just pops up and change all your beam sizes and you say, okay, it's been printed out. And then, you know, you wind up with something happening, like happened down in New Orleans with that, uh, Hard Rock Hotel came down because they had a, a W12 inch beam that weighed like 300 pounds a foot and had two bolts.
It makes you think about what you're doing, I think, better if you're doing one piece at a time. [00:15:00]
[00:15:00] Michael: That's interesting, too, because you, you're able to look at each individual piece this way, as opposed to, yeah, doing an analysis in ETABS or, or RAM, um, and, and that way. I know a lot of the engineers I work with, it's like they want to really understand the calculations down to a very granular level so that they feel comfortable with it.
And I think your approach that I'm going to just use the data that's given to me to do those calculations. So I'm not transposing, you're taking the kind of the human error element out of it so that. You can avoid just like transcription errors. Yeah. And so that's really smart because there's no value in just typing the number in.
And if you can have it, you can still get that level of control that you want. The automation is really in taking away the stuff that doesn't bring any value to that operation.
[00:15:58] Bob: You the things we're worried about [00:16:00] is deflections. We don't want stuff deflecting too much. If you got a, a beam that's like three feet away from a wall and it's 30 feet long, it can have inch deflection in it.
And what happens to your ceiling grid when it deflects an inch and two feet, it's not going to look good. You know?
[00:16:21] Michael: Nobody likes that.
[00:16:23] Bob: Nobody likes that. I mean, that's the type of thing I'm looking for when you're doing one at a time. And I don't think you get that when you go through one of these big, you know, resale models or.
Mm
hmm.
[00:16:37] Bob: Uh, whatever models, I mean, you, you just don't get that, that low control that you have when you do it one at a time. And maybe I'm just, you know, showing my age, being an old man and no, no, no, no technology. But I mean, I feel a lot better about what I'm doing and, you know, in the day you got to sleep.
[00:16:58] Michael: Exactly. I was just going to say that. Yeah. [00:17:00]
You go to Bed
[00:17:01] Bob: Night, you gotta know that what you did was okay for that day. , right?
[00:17:05] Michael: Yeah. And it's, you know, it's your name on it. It's your stamp on it. It's, yeah. And whatever you can do to make it. So that you can sleep at night. But still, you know, get the job done.
Get it out the door. Interesting. When you were going through, um, the bootcamp, like you had mentioned that you had tried different times to learn programming, and in particular with the Revit API, but what was the the first add in you created that made you think, okay, I can do this.
[00:17:35] Bob: The big one was the collector,
filter element
[00:17:38] Michael: collector.
[00:17:38] Bob: Yeah.
I
[00:17:41] Bob: mean, that was like a revelation to me. And there's probably something that's very, very basic, but it was a big revelation. And then to be able to see how deep I could go in it, you know, you know, you had me doing room names. Is it like, I think I've never done a whole lot.
You did
[00:17:59] Michael: [00:18:00] say that. That's right.
[00:18:01] Bob: And you had me doing tables. Mm
[00:18:03] Michael: hmm.
[00:18:04] Bob: There was part of furniture and so, you know, I don't care about a table or furniture in a building, but what I do care about is a barge or this part of a stroke system. It's like three layers deep and it showed me the path into that. So, I mean, while I was doing furniture, that was in my mind, I was seeing how I go down, you know, and get the barge or I need, or the steel beam I need, or the footing I need, you know, because they're, they're layered down there, several layers deep.
Right. Yeah. So, I mean, to be able to access that stuff, was real plus, I think I've told you that the math behind what I'm doing is really simple. Uh, but it takes 400 lines of code, you [00:19:00]
[00:19:00] Michael: know, that's true.
Yeah. Because you have to get it. You have to filter it. You have to make sure you have the right things.
And it takes may take several steps to get to the point to do your simple. Calculation.
[00:19:14] Bob: Yeah.
[00:19:15] Michael: Yeah. Um, it's interesting. You said filtered element collectors too, because that I remember when I was learning to code, that was something that really struck me as well, because that's not, you never think about that when you're using Revit, you're not thinking about, Oh, I'm going to create a filter.
Like, I didn't even know what a filtered element collector was. And then it's like, Oh, that's how you get things out of the model. So that's how I can get some elements. And then that's kind of started to crack open things a bit like, Oh. I got it. So from here, now I can do this, and now I have those things, that was a revelation.
Um, and, you know, now I can crank out filtered element collector after filtered element collector. But it's kind of that first taste of, you know, the, the API that I think [00:20:00] is, makes it a lot more, or a little, at least a little more accessible. Yeah.
So, do you have, uh, anything, 'cause I know you've, you've done a number of different, uh, beam and calculation related add-ins. Do you have anything else that you're. Um,
[00:20:16] Bob: yeah, uh, when I get through this, beam system, you know, what I'm taking is I'm taking the, the members that we put most in a job. Okay. I mean, if you're going, you know, let's do the one we use 300 times in a project.
Instead of the one we do one time in a project, I'm gonna write code, you know, so that's why I'm working on been concentrating on Joyce. And so because we use them so much. But my next big one is to take on steel beams. And, you know, it's a lot of the same coding. Uh, that I use for the choice for getting loads and distances between stuff and stuff like that.[00:21:00]
But then the Mac is a little bit weird because, you know, there's so many, so many more equations you got to deal with. And when I want to be able to do is have it list. Like three most economical, beams. Mm mm-hmm .
That,
[00:21:18] Bob: you know, carry that load and that, you know, you say that's pretty fast and it's not hard, but you know, when you increase the flange width you in, you increase the calculations on lateral instability.
So, I mean, you just, it think snowballs on you real quick. Right. And it, it mounts up real quick. I think I can get there. And I think it would be a really cool program when I do. And then once I get finished with that, I'll probably take on composite members because we allow.
A fair amount of composite steel sections. That's that's kind of the path I'm going down. Uh, you know, it's the stuff, [00:22:00] you know, I'm just not going to ever do it deal with it. I deal with a beam and has like 8 loads on it once every 5 years. I
mean,
[00:22:10] Bob: when I want to program it, you know, just do it by hand.
[00:22:16] Michael: I mean, that's, that's a great point too, is yeah, we're like looking at where, where you can get, like where your time is best spent on, on doing that.
[00:22:26] Bob: Yeah.
[00:22:27] Michael: And I think you, you know, you have enough experience to know, all right, that's not a problem. I really want to.
[00:22:32] Bob: Yeah,
[00:22:32] Michael: and you have enough programming experience to know to like, it's not gonna kind of pay for itself, even though it might be interesting and sort of fun program to noodle on, but In the end of the day, it's not going to help you get the job or you're not going to have to deal with it all that much.
It's always exciting to, to see. I love, I said this before, but I'll say it again. Just the kind of problems that you bring in, because it's their fun sort of programming problems. It's like, okay, how, you know, [00:23:00] how, what is the best way to approach this? And, and you're good at.
Here's the problem I'm on and I'm gonna go and figure it out and I'll let you know, you know, I, I just give you a little nudges here and there, but, but you're sort of working through the problem and, and, and figuring it out. So, it's always, you know, I always like to see what you bring into our Thursday sessions, Q and A's, because I'm like, Oh, it's got to be a good one.
[00:23:27] Bob: , they have been fascinating, and a lot of stuff is just not like what you expected it to be like, okay, I got to take a different path now. Right. That path just, it wound up in a big old dead end. So, you know, you turn around and go. See if you can find a different method.
Um, and you know, to be honest with you, AI has helped an enormous amount. I mean, it really has, um, if nothing else than just in writing the code quickly. Um, [00:24:00] I'm, I'm getting pretty lazy. It's like, okay, check GPT, select a beam system and tell me the length of the first two members. Now I can write that code, okay, but it does it faster and I can write it.
I mean, it really does. I mean, you know, it doesn't have a misplaced quotation mark or a comma or a semicolon. Yep. You know, um, so it has been a real plus. It got rid of a lot of the frustration I had back when I was learning C sharp and just, you know, typing in code and it was like, you get these errors and like, Oh God, where is this thing coming from?
You know? Yeah. And some of it, you know, it doesn't really make sense when you read it.
Um, all those, you know, that's got better. I think now you can like highlight and it'll give you like, okay, these are ways around that. And like, [00:25:00] you look at them and like, oh, that's crazy. I'm never going to do that.
And then, like, oh, I need to change the name and put a 1 behind it and it'll work. It'll work. Right. So, you know, the AI really been helpful.
[00:25:18] Michael: Yeah, I totally agree. Um, although I think there's, there's kind of two parts to it. One is, you know, knowing enough about what you're trying to accomplish to be able to articulate what you're looking for.
And then the second part is knowing how to evaluate what you're getting back to determine whether it's. Useful or like complete garbage and gonna cause you some serious problems?
[00:25:43] Bob: A lot of it's just knowing how to ask the question. Mm-hmm . And, and, and a lot of it to me is learning.
Like last night I was couldn't sleep. I, I thought, I wonder if I could pop up a message using WPF mm-hmm . And [00:26:00] let it stay up there for five seconds and then go away. And so. I asked Chet GBD, he gave me a code for it and it was like, Oh, this is really cool. And I see how it does it, you know, so I didn't put it in and try it, but you know, I thought, well, there's a method for doing stuff like that, that would have been, I mean, how many books would you had to read to find out?
[00:26:23] Michael: Yeah. And, and Googling and then just.
[00:26:26] Bob: Yeah,
[00:26:27] Michael: trying stuff out. This sort of launchpad project that I'm working on has been heavy AI. And like, I know what I want. I can evaluate what the code looks like and then just go back and forth to be able to get something that works.
And, and if I feel like it's going, it's getting too complicated, I'll, I'll say. This is really complicated. Can you, you know, can you write this in a, you know, in a simpler way or a more elegant way, or, you know, can you code this better? Um, and it, it's, it's [00:27:00] great. Uh, cause it's not going to roll its eyes at you and I'll go back like, all right, you know, this is way too complicated for, I'm just a dumb architect.
Like you need to dumb this down. , but I, I found that to be a useful strategy cause it will. Sometimes it'll give you on the first attempt something that's just way, you know, bells and whistles and then more bells and then a whole bunch of whistles and stuff that I'm never going to be able to like maintain that code.
And if I, if I go at it a couple of times and ask it to simplify, I can get something that. I know we'll work and I know that I understand and I can implement.
Mm
[00:27:36] Bob: hmm. Yeah. And, you know, sometimes it's fascinating the stuff it makes up. Oh, I know. Yeah. Yeah. Exactly.
[00:27:44] Michael: Oh, I didn't know this, , Revit API method existed and put it, and it didn't.
[00:27:51] Bob: Yeah. It came up yesterday and I was like, that doesn't look right. Yeah. Revit API and see if that. Cause that exists. No, it didn't.
[00:27:59] Michael: No, I [00:28:00] know. That's more often than not. If it's like, Oh, I didn't know that exists. It's probably because it doesn't. So, so about what, um, if you, if there was somebody who was thinking about, you know, getting started with the Revit API, was thinking about the bootcamp, but wasn't sure. , what advice would you give them?
[00:28:17] Bob: You know, to me, it's been a great experience. I think your teaching methods are really good. Um, and you know, the way you walk through stuff. And sometimes you actually do it a couple of times. And like, sometimes I listen to stuff two or three times. Uh, because I'll miss parts of it.
And it's like, you know, it, it's been a great learning experience. It really has. I mean, I can't recommend bootcamp high enough. I mean, it has been great for me. So, uh, I have thoroughly enjoyed it. Um, and I think anybody that took it would, you know, it is time consuming. It's true. Yeah. You got to put some time in it, you know, and you can't like, okay, I'll do this for an hour or [00:29:00] two of a day.
[00:29:00] Bob: I mean, I had some days I had to spend all day just trying to get something to work. Uh, but I did, you know, and so there's a real food and accomplishment when you get all done. Uh, and like I said, it's, uh, it's been a really great learning experience for me.
[00:29:17] Michael: Well, it's been a pleasure having you. In the bootcamp, and it's been a pleasure talking to you right now.
So thanks, Bob.
[00:29:25] Bob: Yes, sir. I'm glad to do it. Look forward to seeing you this week.
And that wraps up my conversation with Bob Barnett. I'm always fascinated by the different ways AEC professionals are using programming to solve real problems in their daily work. And Bob's journey from punch cards to creating sophisticated Revit structural analysis tools is a perfect example of working smarter, not harder.
Now, what really stood out to me was Bob's focus on eliminating errors rather than just saving time. And as he put it so well, at the end of the day, You got to [00:30:00] sleep at night. Knowing your work is accurate because you've automated the error prone parts is really invaluable. So if you enjoyed this episode, please take a moment to subscribe to the ArcSmarter podcast, wherever you get your podcasts.
And if you know somebody who could benefit from that episode, feel free to share it with them. I really appreciate it. And then lastly, if you're curious about learning to code yourself, check out the show notes for links to resources, including the Revit add in bootcamp that Bob mentioned. Alright, until next time, this is Michael Kilkelly reminding you to keep working smarter, not harder.