The Building Coder on the Future of Revit API with AI | Jeremy Tammik - pyRevitPod #11
Transcript
All right. Hello, everybody. Welcome to the show. Today is Pirate Podcast episode number 11, and I have a very special guest today. And if you've ever searched anything on Google related to Revit API, I'm sure you read one of his blog posts.
His name is Jeremy Tammik, and he's absolutely a legend. And I want to just start with a quick start about him. That over 17 years he wrote more than 2,200 blog posts related to Revit API, and he helped like thousands of people including myself and many others. And it's an honor have you on the show, Jeremy. Please say welcome to Jeremy Tammik.
Hello, how are you doing? >> Hello, Fritz. I'm fine. How are you? >> Doing well.
I'm very excited to have you on the show. Also, I when I first invited you, I didn't expect that you join because I haven't seen any really podcast online with you. So, it's an honor to have you here. I think we all have a lot of questions to you, and you're excited to go through this. Could you just kind of introduce a little bit yourself, where you started before Revit API, before all of that?
Maybe with your education. >> Yes, sure. I studied math and physics. Uh basically, I didn't know what I wanted to do. I I try try to choose something that would not limit me in any way, and math seemed like a pretty generic place to start, useful for everything.
And I think my motivation is just to I like solving problems of all kinds. So, it could be mechanical or hands hands handcraft at home or building stuff. And um then I finished my studies and applied for a job in a chemical company. >> Mhm. >> I was interviewed very very strictly going up the levels up to the top big boss.
And finally, when I had the signed contract, I was not happy about this chemical big business farmer. >> Uh-huh. >> And when I had the signed contract in my hand, I happened to meet a young guy in the street, younger than me, >> Okay. >> who was uh a programmer. And searching for an employee, and he offered me a job at half the salary.
>> Wait, just on the street? Like while you were just walking from the >> Yeah, yeah, yeah. Sort of walking and talking. What are you doing? What are you looking for?
>> a job? >> And and I decided that was way more interesting because this guy was a worldwide guru. He was really unique. And he created Ventura Publisher, which only very, very old people know about. This was the first WYSIWYG uh typesetting editor on a PC.
So, be aware that this was during before Windows. This was on DOS. This was a memory of 640 kilobytes, and there was no way to fit the pixels of the screen into memory. >> Uh-huh. >> So, how do you interact graphically with pixels that you can't even fit into memory?
>> Uh-huh. >> So, we had to deal with a DOS extender and a DOS expander, which were two completely different technologies for fitting 1 megabyte of memory into 640 kilobytes of memory. >> Okay. >> Which is impossible. So, pretty tricky and clever.
And And he dealt with that kind of stuff. >> Okay. >> He basically single-handedly almost invented uh WYSIWYG typesetting on the PC in 640 kilobytes. >> Uh-huh. >> And I started working for him not knowing C, never having seen a mouse, never having seen a PC, came straight from university, and uh learned C the hard way.
>> Okay. >> We sat beside each other for a year, two desks uh side by side, and he told me, "Do this." And I worked at it for a week, two weeks. I had a question, I asked him, he said, "Find out for yourself." >> Yeah, I think that's a great way to learn anyway. >> inefficient production-wise, but unbelievably efficient as a learning experience. So, I learned C the really, really hard way.
>> Okay. >> Uh drivers, interrupts, uh multitasking on a on an 8086 computer, you can't imagine. >> Okay, I'm still baffled that you just walking from your interview and somebody pretty much change your whole trajectory going forward. Like, "Hey, do you want a programming job?" >> Yeah. >> Such a such a such an such an interesting interaction.
>> And um well, I worked with him for a couple of years, and things moved on, and the next sort of interesting job was similar. I searched for a job uh in a new place where I was living, and went to an interview on December 21st or 22nd. >> Mhm. >> And talked with these guys, and during the interview, they seemed to think, "Okay, this is exactly the person we need." And they said, "Can you start work tomorrow?" On December 24th. And I said, "No." >> Merry Christmas.
>> had me start work on January 1st, but I would prefer not to start on December 24th. And so, I went in there on on January 2nd. I guess the 1st was a holiday. And they were building cash registers based on a multitasking system on a 32-bit computer, which was a very, very extreme machine uh built for communication purposes. So, you could put 10 of these multitasking, basically, supercomputers into a box and had a really good uh pipeline in the back for multiplexing communication stuff.
And their goal was to build cash registers with super cheap components with zero intelligence in the cash registers. So, the cash register could only push buttons and display your number and not think. >> Mhm. >> And all the thinking happened in the computer, and that was the multitasking job. >> Okay.
>> And they built the computer themselves, the operating system themselves, the hardware themselves. And they were trying to cross-compile, I forget what the PC what the CPU was, but tried to compile for this strange CPU in their own operating system also in C, but compile on a DOS computer. >> Okay. >> Uh cross-compile, cross-compilation. And they couldn't get this cross-compiler to work the because we only had diskettes with um uh ripped copies of the compiler.
So, in the end after 4 or 5 well, 2 weeks of trying to get the compiler sent over from California. They sent me and a colleague to San Diego. So, >> Okay. [laughter] >> I worked for them for a week or two and then I was sent to San Diego for a month or >> Uh-huh. Interesting.
Uh I think we have a bit of an interruption for some reason. Oops, and something happened. All right. I think we have you back, Jeremy. Can confirm?
>> Yes, I'm back. >> Perfect. [snorts] Well, a little mishap. I'm sorry, everybody, once again. What do you >> I was quick to log in, but the setting up uh in getting me back in again seemed to be more complicated.
>> Yeah, honestly, I was looking where is the button because I have too many things [laughter] open already. I was like, I see that >> Yes. >> Yeah, sorry about that, everybody. >> Okay, so I got lots of C experience in the beginning of my career. That was fun.
>> Got it. Uh while you were going, I just shared quickly that recently the Pavel Durov and Elon Musk, they pretty much stated publicly that if people don't know what to learn, focus on math and physics cuz these kind of hard truths is going to lead you to all the other parts like AI and stuff like that. Well, you still need to kind of learn how to solve problems and stuff like that. So, I really enjoyed listening how you kind of described this whole path that you started with math, physics, and switching to programming, well, it worked for you really well. >> Yes, I would also say if you really want to do hard programming, C is a good start.
Um just a sec. Oh, that's going to Okay. Uh I'm sorry, everybody. My dead phone decided it's great time to turn the alarm. [laughter] I don't know what's going on.
Uh once again, you said about the programming the C is the great way to get started, right? >> Well, nowadays, actually, if I would recommend anyone how to start learning programming, I would go for Python, actually. >> Mhm. >> Cuz that is was what it was intended for. >> Yeah.
>> To make easy for a normal human being and uh not not a nerd to understand programming. Uh, C is not that helpful and also very dangerous. >> Yeah, there's a lot to manage on your own. Surprisingly, what I saw, well, I'm obviously in the Python camp, so I thought like everybody thinks like oh, Python is great and stuff like that, but then I realized that there are actually people who tell me like they don't like Python at all and they find C# or C even easier to learn. And one insight I got from uh Ashman we talked that it's really stuck with me that everyone has their own way of thinking.
And when programming language aligns with that, that's going to just great do great things for you. And Python just happens to be simpler because it requires a lot less to get started. But I know that a lot of people watching they probably they like uh I don't like Python. I like to go straight to like C# or stuff something like that. >> When I started working for Autodesk, my first job was actually developer support for AutoLISP because Autodesk had not one single human being in all of Europe who was capable or understanding AutoLISP and they needed someone to tell developers hey, this this new possibility exists and here's how you make use of it.
And I came from C programming, so I had no idea of what is LISP. And I found a really really nice book from MIT. Don't remember the title, but I could probably find it somewhere. And this MIT book used Lisp as the introduction to programming because Lisp is an extremely minimalistic fundamental back-down-to-basic principles programming language. But it's very different from uh something like C or C# or Python because it's very functionally oriented.
So, you you basically learn programming, but you learn functional programming right from the start. And uh I My first 3 years or so with Autodesk consisted 100% of just teaching AutoLISP, preparing courses, creating uh material, and diving in deep. And that was a really wonderful way back then to learn AutoCAD because until the arrival of ARX, uh AutoCAD could be completely 100% uh controlled via AutoLISP. So, you just learning and teaching AutoLISP, I also learned AutoCAD that everything every single command, every single possibility, every option, everything in the database, everything was accessible back then. And uh that was really good fun.
But after 2 or 3 years, I understood it, and I knew every question that came in these courses, and then it started to get boring. >> Okay. >> And just uh AutoLISP or John Walker actually created a ADS, introducing the C programming language to AutoCAD in order to bring auto solids into AutoCAD a solid model. Okay. Constructed solid geometry.
And [snorts] so suddenly I was one of the very few people in the world who knew C very well and knew auto list very well and AutoCAD. So that was fortuitous. Uh >> Yeah, yeah. Your path just kind of was already going to be there for you. You just walked it really, really well.
Uh before I go further, can we just take one step back and was how did you join auto how did you decide join Autodesk? How this opportunity came around? >> Um I was in southwestern Germany and was interested in in moving further south actually. So um Switzerland was an interesting area and I happened to hear about this job in Basel with Autodesk and it was very tricky back then to um enter Switzerland because they had uh limited contingents of um people that could come in to work there. The The company employing the employer had to prove that no single Swiss candidate existed for the given job.
>> [snorts] >> So it it took like 9 months or so to get me on board and during those 9 months I did this other job that I just started talking about before with the cash registers. >> Mhm. >> So it fitted very well. >> Okay. And you're originally not from Switzerland.
Where you from? >> I'm originally mixed, a little bit of everything. So my father comes from Estonia as does my last which is means oak grove. A tam is an oak and tam is a little group of oaks. >> [snorts] >> Um and my mother is English.
And they met in Canada. So I'm born in Canada. >> Okay, let's cover this overseas. >> Used to have a Canadian citizenship, but I do consider myself 100% European, a very convinced European and not very fixed on the individual country. I I don't really feel totally at home anywhere.
I'm a little bit out uh not not belonging anywhere. So a little bit of an outsider everywhere I go, which is a shame. I would like to really belong and I don't think I'll achieve that in this lifetime. >> I can totally relate to that one. I'm also all over the place.
>> Yeah. And I grew up in Sweden. So my mostly >> Another one. >> mostly Swedish from my upbringing and raising and thinking. And Sweden is is sort of is I I'm very much in favor of Swedish politics and Swedish ways of doing things, compromising uh not going into conflict, but searching for common ground and also searching for solutions.
Yeah. >> Uh just one note. I think your laptop is on your legs or something. It's a little bit shaky. If you can put it just >> Yes.
>> not as bad. Just kind of It's a bit planning talk for a long time if if it's not an issue. I'm sorry for that. All right. You're really international.
>> behind me. This is also difficult, huh? >> Yeah, now we see behind you better than you. Uh >> We have all kinds of contraptions here. How about this?
>> Oh, this is great. Yeah, great. Yes, well, you're really international, born in Canada, lived in Sweden, Switzerland, all over the place. That's so interesting. I always thought that you born and kind of raised in Switzerland for some reason, but I think it's just because that's where you are.
>> Yes, that's uh in in what place? >> All right. So, you joined Autodesk, you started learning about kind of everything related to Autodesk, Autodesk Lisp, all of that. And how does this progress towards Revit? And before kind of the Building Coder blog, so could you just tell us what's going on inside Autodesk?
>> Yes, of course. Um well, so initially it was AutoLISP and AutoCAD, and there were not that many other products. Um I switched back and forth my job interview with >> Ah. >> After after 5 or 6 years or 7 of this AutoLISP stuff, I felt I was telling developers what they should do, and I felt it would be more interesting to try to do it myself, instead of just telling others. So, I uh stepped out of Autodesk and joined a developer in the HVAC MEP area in Switzerland and worked for uh quite a number of years with uh for initially a product called RoCAD, which was very famous back then in that area in the German-speaking market for MEP systems.
It was very expensive, and it was built in AutoLISP. So, a The was like 50,000 uh Well, euros didn't exist, but francs back then. So, this was really serious programming, very complex stuff. And my task there and goal was to rewrite this AutoLISP program in ARX. And the reason for rewriting it in ARX was mainly to be able to manage the views, 3D views, 2D views, projections.
In In MEP systems, you have very special specific rules about how does a 3D system work? Obviously, that's the most complex part. You You want to avoid clashes. But, you also have projections of these 3D views onto 2D. And in these projections, there are very specific rules.
Like, certain edges have to be displayed in a certain way. Often, a center line is displayed. The center line is obviously inside the object. So, if it's a a hidden view, it should be hidden. But, you shouldn't hide it because the regulation specified that the center line is dashed and visible.
We had to create pretty complicated view >> Okay. >> projection rules. And that was uh provided by AutoCAD Architecture, the ARX version of AutoCAD. The ARX version of AutoCAD for buildings. This was all before Revit.
Okay. So, I I worked with them for 10 years. And um in the end, I felt, "Ah, this is kind of stressy. We have this big product. We have bugs.
We never finish managing the bugs and satisfying the customers. and actually going going to uh Autodesk and doing new stuff is also fun. So, then I joined Autodesk again. And my interview was with two two people. One of them was Stephen Preston from developer support, and the other one was Detlef Reicheneder, and he was from consulting.
So, I joined Autodesk and had two jobs. I was 50% of each. So, I did some developer support and some consulting, and in this consulting business, I moved around a bit between different products. So, I learned a bit of Inventor and also gave programming courses for Inventor. And I learned Vault and gave programming courses for Vault.
>> Mhm. >> And the I think you're leading up to the Building Coder. That's happened basically because in 2005, Kean Wongsley had started writing his blog through the interface. And he was mainly focused on AutoCAD, but also Autodesk stuff in general. And because his blog was successful and and met a need that was just appearing very clearly in the marketplace, um several people suggested we should have two more blogs, one for Inventor and one for Revit.
>> Mhm. >> And they searched for suitable people who might be able to start them. And I took the Revit one, and that became a success. >> Mhm. >> And I was very motivated, and the Inventor one didn't turn out so well, so that stopped again after a while.
>> Okay. >> And the reason why um the the building code was successful is basically the same reason why I was always involved in developer support. I just like to help people and um solve problems. >> Mhm. >> And actually, I I enjoy programming much much more than writing blogs.
>> Mhm. >> I it's the same as all programmers. No programmers like to document anything >> Mhm. >> because that's not really solving the problem. That's communicating the problem.
But somehow, I have this strong focus also on communicating and I do see it as my job description. My main task is this evangelism. >> You definitely helped a lot of people with your blog. >> Yes. And it uh obviously was more efficient to um document stuff and spread it out than to sit somewhere behind a closed door and do my own programming and play with my own little problems.
>> Mhm. >> I really loved some of the the tasks that I solved myself. And they were also often quite um inspirational and exceptional. But um it it always seemed even more efficient to to document other solutions that people have discovered or just discussions that we had in the API discussion forum and so on because there are so many brilliant people out there. And I really think it's a great shame, even globally in the entire world, that many, many of the best ideas of all just get lost or superseded or overrun by complete stupidity and often driven by marketing.
>> [laughter] [gasps] >> Uh yeah, marketing is is too strong and the lobbies is too strong and the really good ideas often get lost. So, Michael list to support the really good ideas. >> Yeah, that's [snorts] really good. I think, like you mentioned, you will fill in the real need. I can see one of the comments now is from Jean-Marc.
He's currently the main maintainer of pyRevit and he says that your blog plus forum answers really helped him get started. I get interested more and more and got him to where he is today. And he also shared that he thinks that this is the case for many developers around kind of Revit [snorts] API. And I can totally totally agree to that cuz I've been on your blog so many times. Like, even though everything is mostly like for C#, occasionally you have some Python snippets.
I was very happy to find them. But, even though it's C#, I kind of learn how to read and translate what I need out of C# into Python, so that wasn't an issue anymore once I got there, but there are just so many. I just want to repeat maybe once more that you've wrote 2,000, more than 2,200 posts across 17 years. And how did you kind of stay so consistent? Cuz that's a huge commitment.
Like, people I don't know if people realize how much it takes just to stay committed to that long. >> Um yes. Well, I think it just fit very well with my inner desire to both solve problems and help people with with their own solutions. >> Okay. Yeah, that turned out really great.
>> Yes, one other aspect of that is also before when we started the blogs and before we worked with that medium, we've always had this developer support and the Autodesk developer network program, which still continues as a paid support option for people. Nowadays, the payment is mainly to gain access to free versions to work with for development purposes, but back then uh Autodesk payment was also intended to give you the possibility to simply ask questions about API issues. >> Mhm. >> And in 2005 and earlier, it was completely evident to me that this is very inefficient. Answering questions one-on-one is is really a waste of time.
Both the person answering them and the person asking them. Uh actually, one interesting chapter is also age. In uh 1980s, together with two other Swiss uh developers, I founded the Autodesk Developers Group Europe. And we held conferences twice a year all across Europe. We were about 100 or 200 people.
Uh because there was no internet, there was no worldwide web, there was no discussion forum, there was no information from Autodesk, so we did it ourselves. So, this this fact this impulse to really share information and support people in their development efforts has been there ever since the early '80s uh and a driving force in my career. And in the early 2000, it was clear to me, yes, this one-on-one thing is stupid and I really insist on multiplication and publication. I want to publish everything I say. I want to publish every question that people raise because everything is useful and helpful for other developers who run into similar issues.
And nowadays, of course, the biggest consumer of everything is AI. >> [laughter] >> So >> No, it's just >> this AI is very, very happy with all of these publications and results and documentation. And I I Yeah, I think that's actually a very helpful so additional tool that we have now. >> Yeah. For sure.
What I like that you mentioned that you always tried all from early on you focused on the code and only also on these publications one to many. And there's actually a man called um Naval Ravikant. And he's more like in the business space, but he has really good thoughts and there's one of them is that there are three things that scale like your time the most. And it it's either kind of capital, so you put money, you hire people to work for you, that's how you get leverage. Or with the code, you write code once and you can reuse it over and over.
And the third one is actually the media. So like you said, like instead of talking one-on-one you just kind of share it once and everyone has has to see and it kind of grows and compounds and I think that it's was really good decision that you had it early on as you said from '80s. We still need to remember that there was time before AI, before Google, before Stack Overflow. And I'm not from that age, so and from most of my audience also probably not. So that's really interesting to see that you also push this kind of in-person kind of meetings and stuff like that.
>> Yes, the funny thing is I met um a friend yesterday, Bjart Fære. He was another one of the main founders of the age back in the '80s. So, he's still active and running about. >> Yeah, that's good. Uh also, we skipped a little bit how Revit came to be because uh well, people know that somebody kind of developed Revit and then Autodesk acquired it.
But, can you share how did it come from kind of from your side? How did Revit just joined Autodesk? What happened inside? Yeah, I think there should be some friction between AutoCAD and Revit. Sorry.
>> I wasn't much involved in the in the product side of things and I have published blog posts on that specific topic, historical reviews and I I don't really know that much. Okay. Except what Well, a few things that come to mind are that I believe that a couple of people from PTC originally implemented it and they did it because they were parametric fanatics and they wanted to build a garage and they thought we can't make a plan and then want to change one dimension and that means we have to rework the entire plan. We We want the plan to be driven by the dimensions. And basically, that is exactly what you see in in Revit now.
And the rev is stands for revision, doesn't it? Or revise. Revise it. Be able to revise it. Be able to change one parameter and your design is updated.
>> So, that's what Revit really stands for. >> Yeah, so they did their thing and uh Autodesk apparently recognized the use of this approach. And um acquired it and immediately said, "We want an API." And the Revit developers said, "No way. This thing has no API and it cannot have an API and it never will have an API." And the result is this really weird, strange anti-API that Revit is now equipped with, which is basically very simple, but also very weird. >> [laughter] >> Yeah, there are a few things sometimes that doesn't make sense.
But also over the years they try to probably fix a lot of legacy code and sometimes it's an API that things kind of move around here and there and >> Yes. >> Yeah, it's unique API because it's also built on the legacy product. So, in one way it's it's at least we got it. That's already something. Yeah, but also could you tell us a bit more about Revit at that stage?
>> One one point about the Revit API from a programmer's point of view is it is extremely simple. It is very very very simple because it is completely and purely event-driven. There is not one single thing in the Revit API that is not an event. So, an external command is an event. Revit you the user clicks a button, a command button, Revit sends an event, command execute.
And everything in the Revit API is an event or subscription to events. And that makes it from a pure programming point of view very simple to understand. >> Mhm. >> Um and that is also one reason why it's pretty different from many other APIs because through these events, Revit is always telling the program what to do. So, you never have the program telling Revit what to do.
And in many other programming languages and in the thinking of many beginner programmers, uh the programmer thinks, "I want to write a program that tells whatever how what to do and when to do it." >> Mhm. >> nope, that's not what happens in Revit. In Revit, Revit will tell you when you can activate. So, that's the the one most important message from me about the how the Revit API is designed. >> Mhm.
I'm still trying to wrap my head around about this cuz I never thought about from that angle. I still compare it to other APIs. They most of them kind of I start to feel that most of them like event-driven mostly. No? Could you give us an example of like a opposite like API how you would normally imagine it?
>> Yes, I can. Take Python and write a hello world. >> Yeah. Okay. >> There's no event.
The program tells the computer what to do. >> Mhm. >> Take C and write hello world. >> Yeah. >> It's a one-liner.
You say printf hello world and the the program tells the computer what to do. In Revit, if you want to implement the standard way to set up the most simple Revit add-in is to write an external command. And the external command displays a task dialog. >> Mhm. >> Which is an event.
>> Okay. >> So, it's the other way around. It's not the program telling Revit what to do. It's Revit telling the program what to do. >> Mhm.
Okay, yeah. Okay, I see your point. You really subscribe to existing events here and there. >> Exclusively. >> I think most of us just don't really focus on that.
Just find a piece of code >> one and only problem. Once you've understood that, everything turns around and you have another level of understanding. >> I see. Yeah, for me I mostly care about like, okay, where's the little piece of code that does something that I want. And I mean, I have pretty good understanding of Revit API here and there over the years.
I'm coming from Python background, so I mostly care about, okay, I need I have a problem, I need a solution, so I'm more like I'm not like most developers who are more into architecture, who like to understand everything. I understand something here and there, but I think majority of architects, engineers, MEP people we just have some limitations and repetitive work in Revit that we want to solve. And we just want the solution. We don't always want to go through all the steps of understanding cuz that's also something we need to understand that most people they just want their problem solved and they want it to do it as simple as possible. And for some people that might be Python, some some people prefer C#, that's fine, but I think in the end of the day, like once people just learn how to communicate back and forward, that's what matters the most.
Therefore, we really don't really go into that thinking like about this event-driven or not. >> Absolutely. Makes total sense. I should add that the most satisfying and successful uh Revit API workshop I ever gave was in Australia once where I was dealing exclusively with super professional BIM expert users. >> Mhm.
>> They knew all of the Revit functionality already available in the product. And they said, "I know everything. I know this and that and so on, but I always run into this problem. Can we do anything with the API?" And we could. We solved every problem they had.
But because they knew all of the existing functionality and made perfect use of that before thinking about automation, it was so efficient and we were so happy together. Whereas many of the other workshops that I gave in Europe were for programmers who had no idea what this Revit, what this BIM, what this existing functionality. And that was uh very frustrating in comparison. >> Yeah, I can imagine. Well, you I also tell people many a lot of time that you need to understand like the manual workflow before you automate it.
>> Yes. >> Otherwise, it's there like a lot of misunderstanding. >> the system. >> Yeah, you just you might automate it, but is it the right way? Because often times sometimes maybe you don't even need automation.
Maybe there's a button in Revit. That also happens. Some people write like myself included. There's like everybody watching probably had what tool or two made and then realized, "Oh, Revit has it. Damn it." >> Yes.
>> [laughter] >> Yes. Yes. Yes. >> Uh just one question regarding this meeting. Is there a recording anywhere or was it like private?
The one that in you made in Australia, this conference? >> Ah, that was a long, long time ago. It's published on the blog. >> Okay. >> It's Melbourne.
The Melbourne >> I'll see maybe there's something interesting. >> And I there was one or two add-ins uh that were built and that continued to live. One was the set out points. So, if you search for set out points, one of these um BIM experts mentioned what a big problem it is in construction that you have a plan of one piece and a plan of another piece, and then you put them together on the building site, and you discover the error. That's very expensive.
And these set out points are individual um points in the model that are very specifically located, and you even list them. So, you create a table listing all of the set out points and number them so that you have exact control of what is where and is it really in the right place. >> Mhm. Hm. Interesting.
Didn't even know that existed. I know like regular like internal point project survey like this for coordination stuff. But for some >> Well, these these set out points were just points that we as >> Oh, okay. Okay. So, it's >> designers or developers defined.
We said, "If you have this slab of concrete, identify all of its corners and put in the list and put a marker on each corner and make sure that I can check that each corner and each marker is located in the right geolocation." >> Okay. Okay. Got it. I First I thought it's a bit more internal. I was like, "Did I miss something?" No, interesting.
What else you mentioned you did >> Yeah, a couple of um of these little add-ins that I wrote for the blog over the years turned into real products. >> Mhm. >> Some people even made made money with them or made living almost. That's been very gratifying. >> Yeah, but it means that it's all real problem that people had.
>> Yes. >> That's pretty much what the business is all about. Find a problem, solve it, and get something back. Uh what you mentioned also is very good point is that you taught a group of people kind of Revit experts who didn't know maybe programming and they really got it. Cuz then they saw Revit.
They didn't know like programming, but they knew Revit, right? They knew the logic, they knew all the kind of limitations and stuff like that and it worked. And then you also taught developers who knew how to program, but didn't know Revit. >> Yes. >> mentioned like I had some kind of post back in a while that most Revit users already have like 80% of what it takes to automate Revit.
>> Yes. >> They are they've been on the construction side. They understand construction and they know the Revit. They know all the buttons that work. They know that there is like so many workarounds like all most of the time like when there is like a big kind of question in the mind, there's a workaround instead of like actual kind of button solution or something.
But for developers, they know the coding part, which is kind of just the logic. They don't know Revit. They don't know construction and therefore there is so much miscommunication. I even heard that some people hired real developers and it was just months of back and forward misunderstandings going because they didn't understand like the whole process of AEC and stuff like that. >> Yes.
>> Therefore, I just want to kind of uh pinpoint on that once more that everybody who is watching maybe you're not good at programming yet. Again, we're going to talk to AI and how how it improved this whole experience, but once you understand construction and Revit, you're already so well positioned to automate your expertise. Cuz especially once we're going to go in disciplines and niches, people who work with rebars all the time, they they can automate rebars really well. Cuz people ask me, "Can I automate rebars?" And no, I've never worked manually. I don't know which buttons to click and I'm not even going to attempt it, right?
I could get into that and kind of make basic things, but I would never do advanced one because I just don't understand the actual kind of manual workflows. So I think that's a really, really good insight that people can take in as well. And if your kind of coding skill is not there yet, just remember that you already have a lot of other skills on top of that. Sorry for a bit long rant, but I think that's a good point. All right.
So, you've been writing all these kind of blog posts and stuff like that. I have a few questions about your blog uh from my community, and one of them is like sometimes when you read your blog and your replies, sometimes it comes a bit a little bit a little bit maybe harsh cuz people ask you probably very basic question. Maybe they ask you for the 10th time, just different person. And sometimes you just very direct and like, "Just search the blog. Search there." Like sometimes it might come off harsh, but on the same time it kind of just shows it's more authentic and probably there is a reason for that.
Can you just share? Is it something like more cultural or is it just because you get the same question like 20 times? >> Yeah, it's it's the same question 150 times. 20 is fine. 20 is absolutely great, but 150 is excessive.
>> Okay, yeah. Sometimes when you read the blog and then there's like very direct letters like >> Yes. >> like like literally like 20 again and I'm like, "Oh." >> I got actually reprimanded uh once every year or two at Autodesk. Somebody complained about not feeling heard. So, I I I had had to keep a fine line there.
I And I did. And I I think I got more uh patient and tolerant as time went on. >> [laughter] >> Okay, I see. Now, honestly, I think it just added this kind of extra authentic and raw feeling. Like, you know, I understand that when people are like frustrated and ask the question, it might come off a bit harsh.
>> you you need to be aware of also, some people We had but me and colleagues of mine had uh examples of people who said "Please program this for me." >> I have. I think I saw a few of >> we said, "Well, this is how you do it." And they said, "I tried, but I can't. Please do it for me." And we said, "Well, what problem are you facing?" "Uh this problem." Okay, then that is the solution. Here is how to do it. And they said, "Well, yeah, but now I have this next problem.
Please do it for me." And if you have that going on for a month or so >> Yeah, [laughter] yeah, I can imagine. >> at some point, I think it is uh completely legitimate to lose patience and to tell these people, "Hey, sorry, there's a misunderstanding here." >> Yeah, yeah. I don't think it's even losing patience. It's just setting the boundaries and kind of made the blog a little bit I don't know. Even though one person got maybe a little bit kind of a harsh kind of feedback back, to most of us reading there was like, "Oh, there are certain boundaries, there are limits." It also trains us to not ask stupid questions.
And while just reading your blog, I probably many can relate, while you just reading without even commenting, after a while I knew that if I have a questions, I better Google it first before asking because I didn't want to get that reply back and that would be 100% justified. Cuz if I would ask you something like, "How do I like work with parameters?" You'd be like, >> Yeah. I don't know And if you remember back to my initial introduction, my C learning experience, I sat for 1 year beside a guy who knew everything. And if I had a question, I said, "Hey, do you know this?" And he said, "Yes." And you know, "Learn it. Find it out.
Go to the assembly code. Disassemble this. Read the information." And the information was not available. There was no internet, so >> Yeah, back [laughter] then it was insane. >> So, I I spent a week, often many weeks uh researching things that I knew that this person sitting 2 m away could answer.
>> Yeah. Yeah, that's a weird situation. But, I think she wasn't giving you kind >> very good learning situation, very good teaching. >> I think he just maybe at the time it didn't look so, but he actually like kind of paved your path in terms of programming, so you if you get answers often time you don't remember it as much. But, if you actually earn the answer, let's say so, oh, you remember that one because especially when you when you spend had some issues, I spent like a week trying to debug.
It's not complicated ones in the end. It was maybe like 20 lines of code. But, once I solved it, that that felt so good. So, I was so proud that I remembered all of that. Yeah.
But, when I just kind of copy-paste code, I don't remember >> topic now in this day and age of AI and immediate solutions everywhere and immediate gratification for everything, uh how does that affect children's or grown-ups, people's learning experience and learning motivation? It It will I'm very very fascinated and excited by the change of culture, the change of uh society. Where are things going? What is it leading to? >> [snorts] >> It I mean, certain aspects look really bad and grim right now politically and uh otherwise, but it's also very very exciting what will come out of this.
>> Mhm. >> But, I'm an optimist at heart. I do believe in uh good people, and >> [laughter] >> I think the the bad There are bad people or or rather pretty damaged people around, but they are not the majority. >> Mhm. Yeah, definitely.
They're often just the loudest. But have you heard about this marshmallow test about delayed gratification? >> Yes, I have. Yes. Have you heard about the fallacy of the marshmallow test?
>> What do you mean? Expand on that. >> So, you explain the marshmallow test in one sentence or two. >> to be brief. So, they made a study where they took a group of people and just tested if like patience or delayed gratification has any role in like future.
And they told them, "You want a one marshmallow now or two marshmallow like 10 minutes later?" And they separated the kids and started to look at them for the like I think the span of 30 years and check did it affect anything. And people who could delay marshmallow gratification as a child, they were way more successful in life than people who took the marshmallow, ate it right away. >> Brilliant. And now comes the critique of the marshmallow test. >> This is completely wrong.
>> Okay. >> It is sociologically from from a society point of view, a complete and utter mistake because the kids who grabbed the marshmallow immediately to a large extent came from poor families with very little resources. And the kids who could delay gratification often came from privileged families who had some trust in promises. The poor people poor kids did not trust the test. And uh the success in society, unfortunately, often depends still on privilege and coming from a good family and having a good network supporting you and and pushing you forward.
So, this this marshmallow test, unfortunately, is often, or in in most of the documented cases, extremely flawed. >> Mhm. >> And many of the researchers who set up these tests said, "This test proves that these privileged people are better." It doesn't. It just proves that the privileged people are privileged. So, watch out for that one.
>> Okay, yeah, interesting. I never I always thought that the group was mixed enough to kind of have from all I kind of Okay, so >> I don't know all the details. I'm not an expert. I just heard about this critique, and it keeps popping up both ways. >> Interesting.
I need to look look into that. Mhm. You could be right. It makes total sense. It's like there's like >> Yes, it's unfortunate.
I'm very, very sad about this, because I am very interested in fostering childhood and learning. And I think that is the the thing that the most problematic thing in our society today. And today we're talking about challenges for democracy and challenges for politics worldwide. And this has so much to do with learning and childhood and upbringing. And there was a study in, I think, 1992 or something, where No, 1962, where they took 200 kids from an unprivileged um area in US somewhere, New York or so.
>> Mhm. >> And a hundred of those kids were given daycare in the afternoons after school. So, they were taken out of their environment a little bit and and given more interesting things to do or a little bit more support in life. And that was in 60 in the 60s. So, since then we've had 60 years of observation.
How did this daycare aspect affect these people's lives? And it reduced criminality, obesity, improved health, reduced criminality prison sentences, improved income. It it The return of investment per dollar invested in 1960 was a hundredfold. And one of the guys who did this experiment was a professor at MIT. He He was interested in this return of investment.
Ah, no, he didn't perform the experiment, but he calculated afterwards the return of investment from the sociological experiment. >> And he was so First of all, he got the Nobel Prize in economics for this analysis. Secondly, he gave up his job as a professor at MIT because he found this result to be so devastating that he thought it was more important to focus on child care and learning for young kids. And the for me the great tragedy is that politicians today still ignore this fact. For 60 years they have ignored real science.
Same thing about the climate situation. This the >> [laughter] >> Same thing about everything. Politicians ignore >> Yeah, the politicians >> ignore facts. >> [snorts] >> Yeah, I think once people realize that politicians don't have our best interests at heart, then everything starts to make a lot more sense. >> Yes, yes, yes.
>> beginning, I don't really want to go in politics, but I think everybody gets frustrated once they start to learn more about how things work and why things not moving. >> Yes. >> And it's Yeah, I'm not going to go there. There it's like a whole politics on its own. There are like so many opinions.
It's >> Absolutely. >> Yeah, I think we just going to step back a little bit into kind of I have a question about Revit API. Cuz when it just came to be, you just mentioned that in the beginning developers even told you that it's not even going to happen. Uh how did it kind of develop? Can you just tell us a bit more your opinion on Revit API like the first versions and what we have today sort of?
>> Mhm. >> It's kind of kind of progression of what even kind of how did it grow? >> Uh-huh. Yes. >> in the beginning it was more limited.
Probably you could do less things with Revit or did it come out already good? >> Uh-huh. Yes. Well, as said, Autodesk basically insisted to the Revit development team that an API must be added and initially it was based on COM purely and then after that was in 2007, 2008 >> [snorts] >> and then maybe 2009, 2010 it switched to this um .NET basis which made it I think a lot more accessible and also a little bit more clearly disconnected from the internal workings. And uh initially as you mentioned at a certain point, it was handwritten and very sort of limited to specific areas.
But quite soon uh after its introduction the Revit development team introduced uh a notation, a sort of programming language, and a rule that every single piece of functionality that gets added to the user interface also gets a programmatic interface reflects all of this functionality. And this uh automate automated generation of API access is encoded in a specific script language. >> Mhm. >> And from a certain point onwards, this rule was enforced. So, from then on, everything was generated by script and all new functionality was covered, basically.
So, that that changed some things and made it a little bit more systematic. >> Mhm. >> But I don't know much about the internals of the API. I never looked at the source code. I really intentionally preferred staying on the outside of both the Revit program and the Revit source code and looking at it from the outside just like a developer because I I felt that enabled me to talk with the development team more from a developer's point of view.
>> Yeah. No, you answered great. That's very much what I was hoping to get out of it just to see kind of that there were cuz you mentioned there was like a point where they started adding everything. And I think from there cuz there was still kind of Let me just put it this way. Um cuz I know that many people working in Revit, mostly probably not developers, they complain a lot about Revit limitations.
And I think a lot of that comes from the legacy code. Cuz for example, we had one support about rooms. We found how to break rooms consistently in Revit to make like weird shapes that should not even happen and like stuff like that. And we got an answer pretty much that the code was written in the '90s, and we don't have resources to rewrite it. So, it was clear that okay, this is the legacy bug, and to kind of fix it, we just need the well, Autodesk just need to kind of rewrite how the rooms work in Revit, which is not a little task, and definitely resource-intensive, and so on.
So, I just want to do you have any kind of this opinion on kind of legacy code, and kind of how Autodesk still holds on it Revit still holds on holds on it? >> Don't fix a running system. >> Okay. That that's fair reply. All right.
And I think we're just going to start moving towards like AI, cuz I saw that you started experimenting more and more with Revit API and AI. We have kind of your first kind of take on kind of How do you see AI affecting this whole kind of Revit API ecosystem? How it helps developers? >> Mhm. Yes, absolutely.
Well, I was very thrilled with AI right from the beginning, and even before AI became sort of mainstream, I was it was clear to me that a lot of my work was wasted. That is to do with these harsh comments that you mentioned before, because there were so many repetitive questions >> Mhm. >> on the in the Revit API discussion forum and elsewhere. And so many basics that had been explained a hundred times over by so many different people, and there were so many good explanations, but people just wouldn't look for them themselves. Uh instead, they would they try to find a more comfortable approach.
And so in in 2017, I I wrote quite a few blog posts about my intention to somehow automate my work and do some yeah, create an automated question answering system. So, I think it was called Q4R4 which the first four Oh, yes, both of them stand for A's, I think. Question answering for Revit API. Q Question answer Revit API. I I wrote that as Q4R4 because I like to invent terms that are globally unique for internet searches.
>> Okay. >> And and in So, I I researched a bit how to do how to implement this Q4R4. And um I discovered I talked with some um deep learning experts and said, "Hey, couldn't we apply deep learning? I have these thousands or 2,000 blog posts and I have these 10,000 Revit API discussion forum threads that I replied to. So, I have a lot of text.
I've always saved all my work in text format on my PC. So, I have access to everything I ever wrote right here and now within a second or two. And I'm very glad about that. Um and that's also helps putting it on GitHub and stuff. Um and So, I had training material, I thought, and the experts that I talked with said, "There are three very clear different levels of automation that you need to look at.
One is a more intelligent search. >> Mhm. >> Um and there's a search tool called >> Mhm. >> I don't know, flex, search, or something. Anyway, so that is searching, you need to be more flexible in your searching.
Second is machine learning. For machine learning, you need a couple of thousand samples, and you can start teaching it thing, or deep learning, which is what the AI does, and then you need millions of samples to achieve anything useful. And they said, before you start thinking about doing anything with deep learning for your blog posts and for your question answering, you should start from the beginnings, do a more intelligent search. And I implemented an intelligent search just using this this search engine that had some natural language understanding. And let that loose on all of all of my blog posts and my collection of forum issues, and that gave very good results.
But it was I It's on the blog. >> Okay. >> And then but I never got it online, and I never had enough time to really flesh it out and make it perfect. And the reason was that I was torn back and forth between do I do this programming thing and and solve this nice problem, or do I answer questions? And I kept focusing on questions, and I never that sort of hampered me in my other >> Yeah, okay.
>> Uh that was in 2017. So, I was very well prepared for hey, we could improve this a lot. And then when open when ChatGPT came out in 2022 or whatever, >> Mhm. >> I immediately started testing it. >> Mhm.
>> And it was interesting, you know, the in the beginning the results were pretty mixed, Like you had a 50% chance of getting absolute garbage. But still, a 50% chance of getting really good stuff. So, quite a while, I published the prompts that I was using on the blog. And pretty soon after ChatGPT was available, I started using that for every single question that I answered. And very fast, my answers mutated into here's my answer.
It's 30 [snorts] words. And here is the prompt from based on your question that I gave to ChatGPT. It's basically your exact question. I just sent your question to ChatGPT, and here is the result that I get from that. And in the prompt, I also added be explain it well, do a little bit of tutorial, put in some background material, and then ChatGPT would give us this huge in-depth explanation of everything.
And I would add that to my questions to my my to my answers. So, my answer was three lines of Jeremy, one prompt, five lines to ChatGPT, and a hundred lines of result. Just to explain to people, hey guys, probably in most cases, you'll get a lot more information and actually better information by using this automated system and instead of bothering me and waiting for my answer because it's better. It's not much use. I'm I'm happy to help, but I think you can help yourself better.
I have one of my very early blog posts was um it's better to teach a man to fish than to feed him. >> So that's >> another very basic principle that underlies almost everything I've been doing. So very early on I was using these AIs and and observing the evolution this acceleration of potential and it's accelerating even further all the time. >> It's crazy. Especially the past 9 months since Apple's 4.6 and going forward a lot has changed.
>> Yes. Yes. >> Yes. I didn't know about you before that. I use the AI all the time.
I try to experiment kind of stay in the trends, but I didn't really made a very deep dive into more advanced workflows because I was like how is it a hype? There has to be a cap to where you should kind of reach and I wasn't sure because for example because I also teach how to use like Revit API programming coding in general. I didn't want it to jump on AI because of that aspect. I didn't want kind of people start with AI right away without any basics and stuff like that. Cuz even when you mention like people ask you questions and you went to ChatGPT to get the answers.
There's one layer that well the beginners will never ask your questions because you have a very deep understanding. And your question is going to sound different. It might look very simple. It might be even shorter. But there's like one two words you might include maybe the name of the class maybe certain like certain kind of behavior that Revit follows.
You might mention that and ChatGPT is going to give you thousand times better reply. But I think there's also this we have to remember that um once you understand the domain of anything you you can get so much more out of AI cuz your questions just going to be so much better. Even though they look similar there there little things. That's what I definitely noticed happening as well. But yeah, AI is getting really crazy.
Have you had um So, first you start using AI for kind of getting answers, but uh have you What hm At one point At what point have you tried to kind of actually start using it for creating full scripts, or have you? I think you did. >> Yes. Well, I mean as since I'm not much of a Revit user and I'm not very involved in many programming efforts, I haven't had much uh opportunity to use it that way, but I did have one task for uh I can name the company I'm one startup that I'm involved in is called BIM Rock. >> Mhm.
>> Uh and they have released an auto tagging tool that uh yeah, saves 80 to 90% of the work that people use for tagging because you can set up preferences and stuff. >> [snorts] >> And they are are working on another tool for MEP duct work. And since I have this MEP expertise from the '90s, I was um interested in looking into that. And that was basically the really only in-depth programming task that I looked at. And I was very very lucky that I procrastinated for a long time >> Mhm.
>> because I had that task in the autumn of 2025, and I did not address it until the 1st of February 2026. >> Mhm. AI changed a lot. >> And I happened to have access to Copilot in GitHub through my GitHub subscription. I have Copilot in GitHub.
And in GitHub happened to provide for the first time ever uh Claude Opus 4.8, I think. >> Mhm. >> And I started using Claude Opus and just tested it. Hey, can can this thing do my programming task for me? And I said, here is a sample BIM model.
And I want you to export all of this ductwork information into JSON. >> Mhm. >> And then from the JSON in a new model create the identical ductwork again. So, all of the data needs to be captured and from that data you need to create a new duct system. Everything from scratch.
Empty model. >> Mhm. >> And so, I gave that task to Claude Opus and I didn't I hadn't set up a real programming loop. So, I had to manually compile, manually launch Revit, manually click the button to test it. >> Mhm.
>> But I told Claude, I don't want to look at the code. >> Mhm. >> I don't want to look at the problems. I just want to look at the screen and see does it does it look good? >> You're you're on a little little bit of this vibe coding.
>> And I did it was vibe coding. Pure vibe coding. And I did this vibe coding for 3 days. And this was a complex duct system and there were like a hundred problems. So, I I in 3 days I went through quite a bunch of >> [gasps] >> tokens.
>> Oh, yeah. >> And in the end and the system was always I would say, hey, there's still a problem. Sometimes I would isolate one little piece of the model, say this specific piece of duct system is is more problematic. Let's delete everything else and focus on that and get that one right. And I told Claude Claude, equip the API code with diagnostic information.
Write out all the information into JSON data. Compare the before and after of the orientation, the position, the location, the mirroring, all the data that you need might possibly cause a problem, put it into a file. Compare the files. Is if there's a discrepancy, there's an error. And fix that error.
I don't care what caused it. I don't care where it comes from. Just fix it. And I did that for 3 days. And after 3 days, the problem was solved.
And I hadn't looked at the code and I hadn't looked at the diagnosis. I had only looked at the screen and checked everything is correct and told it add diagnostic information to ensure that every piece of data item is absolutely uh as desired. And at the end of 3 days uh I got a message from Co-pilot from from GitHub saying Dear Jeremy, your AI quota for February has now been consumed. You either have to pay or stop. And I had consumed $12 of of Claude's computing.
>> Really? In 3 days? >> In 3 days? Yeah. And and that was back then.
I don't know how it how I I never looked at anything. This was a free quota and I used it up and I was happy and the problem was solved. And that is my basically one and only really serious uh programming experience [laughter] with with AI. I did have dive into it again later on for this Valencia OIBIM conference. I was there in May this year.
And there I I did know that this kind of loop is possible, but I wanted to eliminate myself. I didn't want to launch Revit and I didn't want to touch look at the screen. So, there uh >> [snorts] >> this GitHub Copilot thing, I was mixing working on my Linux system and running Revit in Windows. There was a disconnect between the programming environment and the uh interaction with Revit. So, for um OIBIM, I wanted to create a completely autonomous loop.
>> Yeah. >> And there I s- used uh Codex on Windows. >> Mhm. >> And it was really easy to tell Codex to uh create an add-in, install the add-in, launch Revit. >> Mhm.
>> If there's a problem, kill Revit. Then there was this stupid box showing up saying, "Do you want to load this add-in? Once, always, or never?" I said to Codex, "Fix that problem. Make that dialog box go away." And it automatically installed components to create a local uh signature for me that only works on my local system. It fixed that problem without even telling me how it fixed it.
So, I was able to say, "Here's an add-in. I want it to create a little house with a door and a window and a room and a couple of walls and so on, a roof." Create it. And you are allowed to look at the building coder. >> [laughter] >> It's a fine important >> [snorts] >> and and then loop loop loop. I don't want to hear from you again.
>> started the whole loop where it kind of restarted Revit all kind of scale program, got the feedback. Yeah, I can kind of So, you actually made it work just by prompting. No manual input, right? Yes. Yes.
Yes. Yes. Okay. And the connection to Revit was And the reason the reason for this OiBIM conference was that I gave a programming conference in Madrid in 2016 entitled BIM programming. And I told them, "Hey guys, you can do BIM programming.
You can stop programming using the Revit API." And my goal Now, they invited me in 2026 again because they wanted to celebrate the 10-year anniversary of this stop programming BIM. So, my intention now was to say, "Stop programming BIM." >> [laughter] >> BIM programming continues. AI do it different. Interesting. So, a nice route.
route like Did it create like MCP server to connect to Revit to execute the command or is it just kind of forced it? Yes, computer use. Okay. And and the command line, I mean, you can kill the process from the command line. So, it was using power Starting Revit, yes, but inside of Revit the actual kind of the execution of your command.
This is what I was Ah, yes. Good question. Absolutely. I told it um you can create an external command, but then you have to click a button. Mhm.
You don't want to click a button. I want the the code to be started automatically. So, >> Mhm. >> create the code don't create an external command or create an external command. I don't care, but the external command is only one line.
It grabs the document and it calls a helper function with the document. And this helper function does the work. And now in application initialized, subscribe to application initialized and call the same function with >> with events? >> With events. Everything is events.
You cannot do anything in Revit API without events. So, of course I did it with events. >> I see. >> Uh but yes, I used a specific on startup application initialized event to automatically launch in in Revit. So, uh Codex only had to launch Revit with the specific command line with the startup BIM model to run in.
And then uh the code would start running automatically. It would create all the diagnosis files. And then Codex could then kill Revit if it ran into a problem or if it terminated. >> Mhm. Okay.
Yeah, that's interesting. Cuz now well, from pyRevit side, we pretty much use MCP tool for that now. Cuz there's like MCP server. It's super easy to set up because I recently dive deep to understand this whole mechanic and now once you kind of create MCP server, which is just your local kind of server running, so it can communicate to AI and it can also send HTTP request to pyRevit route. So, Revit can receive the commands.
And then there's like one tool which can execute Python. So, in there it makes it a bit simpler. But I think in C# you can also kind of I saw people setting up kind of MCP servers, so you don't have to kind of um kind of restart Revit, load the add-in, you just send the C# code or Python code directly, execute it, get feedback, and so Revit stays open, but your code kind of keeps iterating, so it makes it a bit faster. And I already see Jean-Marc mentioned you should have used pyRevit MCP as a joke. Not a Not a joke, but that once you start explaining.
So, I wanted to mention that. I think now it gets also simpler to make the verification loops, cuz remember you I remember you reached out to me, asked me, and I kind of knew it's possible, but I haven't tested it myself. But, now I kind of see the whole picture, understand a little bit mechanics of these MCP servers, because not before I had a I had a fair understanding, but not from like technical part. Now, I kind of looked inside how it looks. I'm like, "Oh, it's actually not that bad." Just pretty much two servers.
One on Revit side, just kind of waiting for HTTP request to get some kind of JSON. And one on your kind of machine just kind of communicating with AI. And then there's literally just HTTP link like JSON like, "Hey, execute this code. Get me something back." Okay, that works. And like speeds up a little bit, so that's also interesting.
>> Yeah. Yeah, I spent a lot of time in 2010, '11, '12 connecting desktop and cloud. Uh and so also communicating with Revit from HTTP, setting up some kind of little add-in that waits for HTTP things, and using external events to trigger things inside of Revit. And um the next level up from HTTP was the web sockets. >> Mhm.
>> So, that was has all all been possible for >> [laughter] >> uh more than 15 years. No problem. And And also running and existing examples, building code or there. >> Yeah. Uh I I just found that now as time passes it becomes so much easier to use AI within Revit.
Cuz like a year ago it was MCP server already existed but many people like uh I also looked at that. I'm like I'm not sure if I want to use it yet because it didn't I didn't feel like it matured enough or maybe I wasn't ready or something like that. But now I see that everything comes together. This everything has more accessible to AI. It's so crazy what's going on now.
Just not Revit API only but just overall. Now I can connect everything to like your AI model and say, "Hey, look at my emails. Let me know if somebody needs a follow-up. Hey, look over there. Look here." Like I don't know.
I don't know. It's crazy where it's going. >> [snorts] >> Yes. >> Have you tried using kind of AI kind of for personal use building some kind of apps like web apps for yourself or just kind of analyzing some stuff? Some unique stuff?
>> little. I uh yeah, I I have very little need for stuff like that. I one group of people that I work with they needed some kind of registration app for fair. Just to grab people's uh name and address and email number. This was for people in interested in installing solar panels.
Just a sort of self-help initiative to support more solar power on private uh buildings. And um so I did ask AI to create an web app that populates a database without having any server or any paid anything. And I did that by implementing a GitHub pages website. And in the GitHub website, I can add a little piece of JavaScript. Yes, of course, JavaScript.
And in the JavaScript, I can add a button that communicates with a Google document or a Google spreadsheet. And then I can set up a form in the for free in GitHub Pages. And in the form, you enter your name and address, you click on a button, and it gets sent over to uh Google Docs spreadsheet and stored. And all of this is very nicely protected and secure. And uh all the data is you could even encrypt it.
I didn't do anything like that, but I'm I'm trusting Google spreadsheet security at that point. And um that was also entirely AI coded. So, that was quite a while ago. That was in 2025. Uh huh.
Yeah, I things like I I do help my friends with their little programming needs. >> [snorts] >> Uh most of my sort of semi-professional focus nowadays is um on just following AI trends and chatting with people about new ideas. And very involved with another startup called TerraScape. And we are very focused on security and governance and liability because uh uh up until today, when you have teams working on big building projects, you have maybe 20 people in Dubai and 10 in San Francisco and three or four in London and so on. And they all create stuff.
And if a mistake happens, they resort to a backup file or something. But once you have 10,000 AI agents playing around with MCP and fiddling in your model, you uh don't really want to go back 2 days in time or a week or two in time before the mistake happened and throw away the intervening work. So we're we're looking at how to handle and governance situations like that where in a really large building projects hundreds or thousands of agents are cooperating in parallel. And that's interesting stuff, definitely. >> that's crazy topic.
The sub agent workforce. So now I see like the security becomes so much more important, like the guardrails, all this kind of control verifications because often times this AI agents they go really fast and there is no way to manually check like anything. >> Yes, yes, yes. >> It's you might check randomly what's about that one, what's about that one, but it goes really really like Could you share a little bit about security of AI because you mentioned that you kind of started looking into that? Do you have any kind of insights to share on that topic?
>> It's hard. >> [laughter] >> There's so many angles to that. >> Very many angles, yes. >> Because there was a >> into security, liability, um sort of and also undo, um how to undo specific actions, uh yeah, storing the information required to handle issues that might arise in these multi-agent situations. >> Yeah, yeah.
I definitely see like a lot of things can go wrong. But also I noticed, I don't know if you try a lot of different models, but every model has a little bit different feel how it works, what it does. And especially when new powerful models comes out, recently I read like GPT released this 5-6 soul, well their latest one, and it went completely rogue for some people. They had some task for like 2-3 hours, and after 2-3 hours it decided, "You know what? Let me delete the whole computer." >> [laughter] >> Aha.
>> It's very individual cases, but they are the loudest ones. >> Yes. >> there was like Grok as well decided like somebody asked me a little question, it decided, "Okay, I'm going to upload your whole like repository into our own internal server." They're like, "What's going on?" There is like little things happening here and there also on security side, just from the model providers. So it becomes so kind of important topic just to kind of be prepared for the worst, but hope it never happens. Cuz it's again, it's individual cases and they are the loudest.
I just want to say that one. Cuz at a certain point I thought like it's everything looks very grim and doom, but then I realized, "Well, it's just one in a million times it happens." And it sounds like it happens like every time, like you know. >> Yes, yes, yes. Yes, there very relevant insights coming in. Just last week there was this security incident where um an Open AI model >> Oh, yeah.
>> was running on Hugging Face and basically broke out of its sandbox. And also I read yesterday about some uh I don't remember what AI provider it was, but they were talking about um situations where a large number of AI agents being tested for specific areas discovered unintended ways of collaborating with each other and they collaborate to uh hack and and break out into the internet to basically all they wanted to do was solve the tasks that they'd been given. But they had not specifically been told that there were some rules that >> Yeah. >> they they didn't know that there were such rules that they should stick to like not cheating or not breaking out and not searching for the answer somewhere else. >> Yeah.
>> I have two points on that one. First one comes there's a show Silicon Valley just predicted this AI thing and there was a good kind of moment where a programmer asked the AI to fix the bug in our code. And AI decided the most efficient way is just to delete code. No code no bug. So technically it's correct but maybe that's not what you expect.
But also about this jailbreak break I want to mention that. At first everybody reads it and like oh my god AI is so sentient and stuff like that. But on the second part we also need to remember that there's a lot of marketing involved. And after this whole incident OpenAI started supporting hugging face insanely. They just gave them a lot of access a lot of extra support.
And there's like a lot of marketing because now what kind of Anthropic started they've been scaring the world about fable for months. It's so dangerous the world is going to end if we release it. Then they released it. It was cool but the world is still here. I don't hear banks being hacked as they promised and stuff like that.
Then OpenAI comes out another jailbreak. Now after that one Anthropic claimed actually our model hacked three companies and now it's like you know children [laughter] now our model hacked five companies like and I don't know what to believe because these companies operate a lot on AI hype and marketing and we have to also sometimes think like hold on who benefits from this news aha >> Yes. >> Because after this news open AI usage went kind of skyrocketed. A lot of people jumped to codex to try it out. There's like oh what is this amazing model that can hack hugging face like with no effort and there are like a lot of these things happening.
And meanwhile Chinese mod companies they just release here's like better model here's but they don't do this marketing as much at least I don't see that. They just release models and they just prove it in benchmarks and American companies they operate very heavy on marketing so Did it happen? Maybe. Did it Was it accidental or intentional? That's what we also might think about.
I think that's important thing to keep in mind especially when it's Anthropic and OpenAI they are the loudest in this space. So I just wanted to throw this into people. >> Good point. >> Yeah yeah. But at first I also was like oh my god like hugging face got hacked.
I just start reading reading then I then I read some comments like yeah what if it's just marketing and I'm like yeah I can see that happening 100%. Uh I just want to ask are you short on time? Should we wrap up right here or yeah. >> We can let it drift out. I'm not awfully short on time.
>> Yeah. >> Okay so I just see that there like there is 6 minutes from what we initially planned just wanted to make sure if it's hard or not. Uh could you share a bit what you are up to today in general? You mentioned you like to explore AI. Do you do consulting?
Do you also kind of stay in touch with Autodesk or something? >> I stay in touch with Autodesk but irregularly. I visited DevCon in is it in May? And that was very very nice meeting my old colleagues again. Um my main reason to go there was meeting my startup colleague uh Nima from California.
And um so yes, Autodesk is definitely an option. I I do some consulting, but very limited, and mainly I'm just on an advisory role for uh, TerraScape and for BIM Rock, the auto tagging tool that I mentioned before. And, uh, yeah, we'll I'll be let publish I publishing more about those things as time goes by. >> Yes. >> What I want to do today is, um, attach a door to a little cupboard.
For instance, here's a little building project that we're working on. You probably won't really understand what's going on, but it's a friend of mine who, uh, is interested in uh, living in this house. This We're We're several people living in one house, and there's one little room left over that sort of got disconnected from another flat, and now we added a mini kitchen and a micro bathroom into a space that definitely was not intended for such purpose. >> Well, it works. It works.
>> I'll be working on that today. >> I see. Uh, Jean-Marc is asking, "Are you hiking more than ever?" He misses pictures from your mountain trips. And I also agree with that. It was always such a nice touch, kind of touch point while reading your blog, and there was like >> I had a very nice nice hike, um, three or four weeks ago.
My daughter asked me, she's a little over 40 and has three kids, and she I have four kids, and my with my eldest daughter, when she was about four, I went hitchhiking once to Spain to the What's it called? Rainbow Festival. And that was >> What's it? >> Hitchhiking. It was a wonderful experience.
And then I promised myself I'll go on these solo uh vacations me and one of my kids with all of them for sure. And I never did again. >> [laughter] >> When there were more kids, it became more complicated and it never happened. And now this summer she this same eldest daughter said, "Jeremy, I would like to get a feeling for hiking in mountains. Would you go out with me for a few days?" And we went hiking again just the two of us.
That was so nice. >> Yeah. >> That was brilliant. Yeah. And then you know, no, I'm not hiking as much as I would like to do.
I'm right now my partner broke her elbow, so I'm sort of a little bit tethered to helping and staying around. And you know, I'm I'm yeah, doing a lot of stuff closer [snorts] by. But I do love going out also as much as ever. Also cycling. I cycled recently to another meeting with friends for an 80 km bike ride, which was kind of exceptional for me.
I don't do that very often. >> [laughter] >> But yeah, the reason to share photos was the blog and I'm not very much into social media for my own personal use. So I'm afraid I'm not publishing anything as as diligently as I used to. >> Yeah, it was just very nice touch. You just read about rate API and like, "Hey, by the way, here is Switzerland Swiss Swiss mountains." And you're like, "Huh, interesting." It also kind of makes you more human, I would say.
And now it seem more important than ever when every single like every second word online is just AI generated and then there's like conversation where AI AI answers stacked to each other. You just read it and like where are the people hanging out? >> Yes. >> Yeah, I think that's why we also when we cuz when I saw this question I also had some flashbacks when I saw this and I'm like yeah actually that was nice. >> Yeah.
>> And Yeah, so I there's one thing I like to kind of in the end ask all my guests kind of what is number one advice they would give to beginners starting out with programming Revit API. I think we can keep it Revit API related since you're a Revit API legend. So what would you advise to beginners who just getting into that and want to create kind of custom tools? >> Oh. Well, as you we already mentioned or underlined several times for Revit programming it's really really important to understand Revit.
So That that expertise is the most important of all and I think the technical aspects of programming and coding and automation are things that the AI is probably better at helping with today than it used to be. Understanding that Revit API is event-driven is maybe one important aspect that often just gets completely overlooked because people yeah who don't come from a programming background don't even notice. Um you know and also just playing with programming languages some beginner going through tutorials is a is a good way to start programming without thinking about the actual Revit application just learning to do some programming first independently of Revit and seeing that as a game is definitely also a good way to start. I think there are several different components that you should address individually and then you'll be surprised when you combine them and see how things come together. >> Mhm.
Yeah, great answer. There are many different topics you covered, but they all kind of related into all of this. It's never just one thing, but so glad that you covered a lot of things together. But Jeremy, thank you very much for coming on the show. It was really a pleasure talking to you, learning more about you, your journey, how everything kind of evolved, also how your blog came to be.
That was also interesting to hear. Uh if you would like to share any socials with where people can find you, if they should message or anything you want to add, you're my guest, literally. And yeah, I think we're going to wrap up here. So, do you have any social links I should put in the description or something you want to mention? >> I should point out again that Beam Rock Auto Tag is something that I would endorse.
Mhm. And that's mainly it, really. I think all the rest of the social media stuff is already available somewhere or other. >> Mhm. >> Search and you will find.
>> Yeah, the classic Jeremy Tag. Just look there. >> [laughter] >> That is amazing way to end. All right, guys. Jeremy, stay here.
I'm just going to say bye to everybody and then we're going to wrap up. So, thank you everybody for joining this Pirate podcast. I really appreciate you being here. I see a bunch of people still live with us. Some people going to watch the recording, but either way, I really appreciate you taking your time to join and listen to our conversation, participating in the comments.
And if you have any other guests in mind, I would love to kind of see in the comments who I should talk to next. This is very casual podcast. I just like to bring Pirate rated API experts and just talk in general where it leads us. And yeah, thank you everybody. As usually, happy coding and well, wish you all the best.
Goodbye, everybody.
Vibecode pyRevit w Claude-Code with Alex Ritivoi (pyRevit-Pod #10 )
@Aussie BIM Guru on AI, pyRevit, C# and coming back to Dynamo??? [pyRevit Pod #9]
A 20-Year Revit Veteran on Revit, pyRevit & AI | pyRevit Podcast #8