A plugin to keep in a drawer ... or not. (Inventor + Blender + Revit + C# + Rust)
This article is to tell you about something that has happened to me, with the idea that it might serve as a point of reflection for me. About three weeks ago I was told by a friend that there was a possibility of an offer from a company to join their team to provide workflow optimisation solutions. These solutions for me, always include not only improving the use of their software. Optimising the programs they use, including others or programming solutions to make them more productive. Obviously because of my profile of Software Developer and Architect I can always give a realistic approach, knowing very well all the software and the part that I like the most, developing new software.
The truth is that I'm always looking for a good contract in a company, and I'm tired of people who call me believing that I'm going to give them my work, companies that the supposed computer expert asks you questions, that more than once, I've wanted to tell him "kid, when you were still in your father's treasure bag I was already programming". But focusing on the current case, a defect of mine is to get excited about everything I do and I started on my own to develop a solution to optimise their work, a big mistake perhaps.
The first thing I found out, and which caught my attention, is the use of Revit for everything. Autodesk is a company that has a large catalogue of solutions for BIM, industrial drawing, CNC or video game development, among many other solutions. Among their solutions they have high quality programs such as Inventor, which for me is one of the best programs they have in their catalogue. In programming it is said that: "every language has its own programme and every programme has its own language". If we look at it from the BIM side, I would say don't do industrial drawing with Revit, don't do BIM with Inventor. Is it possible? Yes, of course you can, but is it the right thing to do? No. Modelling industrial parts with Revit can be a headache and time consuming, and if we add to that the fact that they are adaptive, even worse.
My first step was to draw a part in the style I assumed they were drawing, as fast as I could but with all the parameters they need to comply with BIM made in Inventor. Because I didn't have any of the parts they use, I selected a part I had as a sample, from a company widely contrasted for quality. I modelled it in Inventor and with some of my own scripting tricks and a little bit of another program like Blender I created a family for Revit.
One of the particularities that I could find out about them, is the obsession to quantify of this company, nothing illogical when it comes to BIM. So I set out to create a plugin for their workers to insert the elements of their catalogue in a transparent way. Before I tackle this part, I would like to clarify a few things.
领英推荐
Ever since I started with computers as a child there is one aspect that is currently throwing me off. This is "over-specialisation in the use of a program". For me, knowing how to use a program means being able to manage all its facets. Sometimes we will draw, sometimes we will make measurements, sometimes we will program solutions, which is the part I like the most. But I have started to find many professionals who only know one facet of the programme and are completely unaware of the other facets. In some countries this is even leading to so-called degrees. I don't believe that a graphic designer would tell me: I only paint, I only use masks, I am an expert in Photoshop layers. Or a surgeon who is an expert in opening and another in closing, but neither of them knows how to perform the other's task because they were validated in their degree with a double-line paper on the marvellous world of artichoke cultivation. The little I have found out about this company is that they are over-specialised and that is not good. This often results in workers refusing to learn the use of a new feature or the use of other software. They are happy with the current workflow because it is effortless, even if it is uneconomical.
And in this case, I think we would be dealing with people who already find it difficult to open Dynamo and run a script. And understanding the situation on the part of their team leaders, you have to adapt with what you have, it is not a question of breaking everything and damaging the environment, but optimising and improving the work environment. This is where the creation of the plugin comes in handy, as the biggest disruption to their day-to-day work would be to see one more button or one more tab in the menu of the programme they use. Not to mention that a plugin has, and must have, its unit tests, integration tests and production phases, necessary to guarantee as much as possible that these new features adapt to the workflow without producing errors. I can assure you that I have seen these barbarities generated by scripts made by "the boss's nephew", using the copy and paste technique, where they were supposed to make certain measurements and amounts in the budgets with economic losses or breakage and denormalisation of databases. And unfortunately, thanks to the rise of AIs, where code is copied and pasted believing that everything they generate is valid.
I developed the plugin as an experiment but functional, using the C# language connected to parts made in the Rust language to guarantee the maximum quality and to be able to use my geometry engine, which is made in Rust, if I need it in the future. And as a graphical interface I used Slint which is my favourite library. For the Revit part a little bit of Windows Presentation, nothing of WinUI 3 (this would give for a whole article) And we have the magic of a plugin that not only inserts your objects from your catalogue, but could enhance your corporate image and value to your company. It allows you to track and quantify the usage of the families inserted through it. You can add more features such as database connection to the warehouse to forecast stocking. And with it you can optimise your workflow.
Moral of the situation. Not only have I not received any mail (long live education). And I imagine that they have come up with the solution, if I hire a lot of interns, and I whip them with force and constancy (I can't get rid of the image of the great Jean Renó throwing the leftovers to Christian Clavier in the film The Visitors), maybe one day it will work out well, because hiring an expert is no longer fashionable. What will I do with the plugin? There is the possibility of finishing it as a global solution and selling it, I don't know yet. True, I will keep looking for that good contract in a company that wants these ideas and my skills, I would love to join a development team, and along the way I continue with my personal project when I have time.