A medium-term Revit replacement

The synergy produced by open source software development is wonderful.

From Argentina I am in contact with the careers of architecture and computer science, and there is much interest in collaborating to generate a replacement for Revit in the medium term.

The tool we need must have an efficient engine to generate interaction between a 3D model and the construction documentation. And this relationship must be interactive: If the 3D is modified, the 2D documentation is modified, but if it is edited in 2D, the same must happen with the 3D.

From what I've seen of Freecad so far, the way to achieving this interaction on large projects is far away. And I also see Freecad more mechanically oriented (even though @yorik makes excellent efforts to add BIM tools).

As for Blender, I love it as a modeling tool and I see that @Moult is making an enormous effort to generate construction documentation from these models, but I suppose that for now the 3D / 2D interaction must be very incipient.

So I ask: Isn't it time to generate a dedicated BIM platform that takes the best of FreeCAD, Blender (and perhaps Inkscape for 2D drawing)? If that platform existed, there would be a huge synergy of users of Revit, Archicad, etc. for supporting this initiative.

From Argentina I have the intention of putting together an organization that from the National Universities supports an initiative like this in order not to have to use Revit in the medium term.

What do you think about this?



  • Hi. Nice to know there is interest on make things different.

    IMHO, a possible and realistic strategy (for the medium term) is to define limited goals to achieve. I mean, small areas of application . To win a war through small battles. Rather to think in a full and high technological platform for every kind of project and workflow, it would be maybe better to to think in areas of application with low level of requirements and complexity. Domestic designs of houses for instance is an area of business with many small architecture offices that could get great benefice of tools like FreeCAD and Blender, with the additional BIM addons and BIM improvements needed for more efficient arch/eng workflows. That, I think is a very possible goal to achieve in the medium term.

    Of course, if you have the necessary budget, technology and people you can think in the creation of your own software. But that could take more than 10 years (if you take as reference the development time of Blender and FreeCAD).

  • Thanks for the reply! I am very happy to feel that many of us are going the same way!

    I agree with the strategy of giving small battles.

    My battle now is to work on BIM implementation in public organizations that design school buildings (buildings of approximately 3000 m2). And we are implementing in Revit, giving training, putting together common libraries among the universities, etc.

    We are a state organization (Universities) and we do not want to advance as much with proprietary software (Revit).

    That is why we have from here the possibility of forming a small initial group of two programmers to start a project to accelerate the times of migrating from Revit to opensource software.

    The first question is whether to make our programmers work based on Freecad or Blender. The most important thing for us is the power of the modeling engine and especially the agility of two-dimensional 3D / 2D interaction.

  • I also do my small contribution. I help to the FreeCAD project with translation, bug reporting, forum discussion, architectural workflow test and icons design for UI.

    You are in the right place to ask for where to start. Here are @Moult BlenderBIM and @yorik FreeCAD/BIM. Anyway, there are many things your team can do for both projects. Not only coding, also discussion, bug reporting, tutorials, etc. Now, If you want to do coding, probably your proposal will be some kind of addon (Blender does not consider to move its master branch to the CAD industry). Therefore you always will have independence to develop whatever you whant. Why not something agnostic, like Moult mentioned in the FreeCAD forum? Something that can be useful for both projects.

  • The features in the BlenderBIM Add-on that relate to construction documentation are actually half decoupled from Blender already.

    I think the most important thing is to be able to consistently and highly efficiently cut objects from an IFC file. Then the IFC may come from FreeCAD, the BlenderBIM Add-on, ArchiCAD, Revit, it doesn't matter - it can be sent to a system which can cut it.

    The output requires a standard for representing vector data. SVG is the current only contender for this. A convention of SVG classes can be written up, and then any standard SVG viewer (a browser, Inkscape, Illustrator) can view it.

    Did you see the construction documentation demo given at the monthly meetup over the weekend? If not, check out the recording, it might answer some questions.

  • I find it very interesting to start from an IFC to generate the construction documentation, but is it possible to achieve interactivity? Because many times it is more precise to work in 2D and for those modifications to be reflected in 3D.

    @Moult , where can I see the demo of the monthly meeting?. I am very interested to see it !!

    bitacovir I am very interested in contributing personally by reporting bugs, etc. But I am also interested in finding ways for my university to allocate resources to speed up the times to obtain a BIM application to replace commercial ones. And for that I have to be clear about the path to achieve it.

    @yorik , Surely your idea is to achieve in a few years a good BIM software based on FreeCAD. I am interested in contributing to make 3D / 2D interaction consistent and support important projects. Count on us for it!

  • Starting at 42 minutes in, use https://peertube.social/videos/watch/af5f5e3d-bd0c-4dfd-9caf-d6b9a7993b30 or https://www.youtube.com/watch?v=uhypG45pqD0

    It doesn't demonstrate the full features (i.e. auto view naming/numbering, the rest of the annotation features) but it gives an idea.

  • I work on a collaborative information system, but it would be commercial, probably two-three startups

    One of them called DfMALab (DfMALab.com)

    Besides our current startup in Smart-FM field which hopfully will launch after COVID-19 disease, and temporarily called DGFOM

    If you want develop an information system from scratch first of all you have to choose an geometric modeling kernel, both FreeCAD and IfcOpenShell chose Open CASCADE (https://github.com/tpaviot/oce)

  • I prefer to add and not divide. I join FreeCAD but asking ... does the Open Cascade engine allow us to wait until we become technologically competitive with Revit?

  • Talking about competition with Revit, I guess you refer mostly to the convenience of Revit's User Interface that helps modelling faster (such as plan and 3d view sync, temporary dimensions, etc.), not the geometry core. That said, FreeCAD's GUI needs to be improved so much more to compete with Revit.

  • I'm not so concerned with the graphical interface. In this, much progress can be made with the contribution of many people.

    I am more concerned with the graphics engine, because progress requires more specific specialist input. .....if the processing speed is not enough to work with large models, it will be an insurmountable problem. And if the interaction between 3D / 2D is not smooth, also ...

    I do not know what technology base Revit or Archicad has. Does anyone know anything about this?

  • @htlcnn Some months ago I shared the same advises to FreeCAD community, specially @yorik and @Moult but they didn't accept that if Revit is successful is because is user-friendly and anything is clear from the start to the end (UX/UI, ...)

    However, a couple of months latter Dion came with Blender addon and I saw potentials Blender has

  • I reiterate that for me the most important thing is to know that the graphics engine will resist ... With Revit you can do projects of any size without fear.

    I am a teacher at the graduate school of the University of Buenos Aires and we teach with Revit. What Revit has (and Archicad too) is that its graphics engines are powerful and 2D / 3D interactivity is excellent. The relationship between the model, the construction documentation and the data is very good.

    If  @yorik and @Moult tell me that the Freecad graphics engine (or Blender) is going to be able to do something similar ... all good! We will work to achieve the best interface !!

    I do not know what technical characteristics have the graphic engines of Revit, Archicad or others ... does anyone know that?

  • OpenCascade is a mature geometry kernel. It is used by FreeCAD, IfcOpenShell, and XBim. However, the problem is a bit more complex.

    The reason Revit and ArchiCAD perform so well geometrically in its ability to convert from 3D objects to hidden line renderings and therefore 2D representations is because it limits the geometric representation to perfectly manifold solids, and especially in Revit's case, even doesn't allow small dimensions to prevent numerical tolerance issues. This has a pro and con: the pro is that shapes can be highly optimised for boolean and HLR algorithms, but the con is that the modeling capabilities become really limited. As you can see, their geometry kernel is powerful, yes, but more importantly are the restrictions they have placed on the users' ability to create geometry.

    In IFC, the story is different. IFC supports a huge variety of geometric representations - from surfaces, meshes, NURBs, extrusions, sweeps, booleans, point clouds, mixtures between the two, and even I-beam shaped profiles. There isn't a single geometry kernel in the world that treats all of these representations as native data types. Therefore, to allow consistent manipulation of geometry, the geometry kernel needs to be processed to a common geometric representation. This is a slow procedure that prioritises compatibility over speed, regardless of geometry kernel, and does not mean the kernel is not capable, but simply the strategy in which we have to use the kernel is restricted.

    This is true of any application dealing with IFC - even in Revit, their geometry kernel has to parse the dozens of geometric representations possible with IFC and then convert it into their own format. This is a huge challenge, especially given the internal restrictions of their geometry kernel. For this reason, IFC takes a long time to import into Revit, and many IFC objects (depending on the representation) will become uneditable once imported.

    Currently the approach taken with OpenCascade in all of its end-user applications (e.g. FreeCAD, XBim, etc) is to convert all IFC geometry into a brep. This is very good for compatibility, but perhaps less ideal for HLR algorithms. However, it is perhaps a necessary evil first implementation strategy when you are dealing with IFC's dozens of representation types.

    That isn't to say that it is the only solution - OpenCascade can be used differently and parse shapes in different ways, which would drastically change its abilities to quickly represent and draw geometry. For example, this is happening now with rebar - a circle swept along a path. A Brep conversion of rebar is ridiculous, but FreeCAD bypasses IfcOpenShell's conversion, and directly reads the profile curve and does its own rebar. This makes a huge difference in scalability - much faster imports, lighter models, and therefore efficient rendering.

    This discussion isn't complete with mentioning other geometry kernels. For example, CGAL is also extremely capable as a kernel, but comes with pros and cons too - for example, although it is much more modern as opposed to the small community around OpenCascade, there is a strong reason all of the BIM programs so far have chosen OpenCascade: really good STEP support, which the most common format of IFC is based on. However, IfcOpenShell is actually geometry-kernel agnostic. Version 0.7.0 of IfcOpenShell actually allows you to switch between OpenCascade and CGAL. I wouldn't call it stable, though :)

    I hope this explains some of the complexities in looking at the geometry kernel.

    In my current implementation of construction documentation, there is a three step process:

    1. The IFC file geometry is converted into OpenCascade Breps, thanks to IfcOpenShell. This is the slowest process currently.
    2. OpenCascade does a boolean slice where the section cut is. This is also slow, but slightly faster as only a subset of geometry is booleaned.
    3. I don't even process the shapes in the background, I delegate that to a rasterised Blender render, which is practically instant. The bottleneck in this step is the file writing.

    The first two steps have some basic optimisations: the first step is cached, for subsequent cuts from any direction in the model. The second step uses bounding box checks to ensure only the relevant geometry is booleaned.

    These are just the beginning of the optimisations. Here are a list off the top of my head which could make things so much faster:

    1. Multicore geometry processing in IfcOpenShell (half implemented)
    2. Certain geometry is processed differently, especially swept solids
    3. Process geometry only where the cut is - requires bounding boxes.
    4. Write it in C++! My prototype is in Python. This is slow. Very slow.
    5. Send hints from the Blender (or FreeCAD?) UI with its rasterised render to tell the OpenCascade kernel what to process - this can lead to huge speed improvements.

    I hope this made sense.

  • Thanks @Moult for sharing.

    I think Revit has reasons to restrict basic geometries. It will be easier to manage what you're dealing with when it comes to auditing a model. At the end, all of the geometries are going to be built/fabricated on site, so making them as simple as possible is the way to ensure they are constructible. This also makes it faster to do geometric operations, while allowing complex geometry will surely make it slower to process the model.

    Furthermore, the convenience comes with how Revit forces users to manage in its way by presenting element hierarchy (category, family, type, instance). This will lead to somewhat an unified method of organizing the model, also easier for auditors because they already know how the model is built up from scratch and how it is organized. I don't see it in FreeCAD because it lets users to organize their data in any way they want.

    About Blender, it becomes harder for auditors to ensure modelers don't use modifiers like subsurface because it may come to an unconstructible model. My Blender knowledge is also limited that I don't see how to make reusable parametric components like the family system in Revit.

  • @htlcnn - yes, the current discussion is around the geometry kernel. The UI is quite easy to modify later to enforce certain things and relax other things (e.g. in Blender, the spatial tree and IFC class assignment is enforced very strictly). There are always pros and cons to UI decisions, but a strong geometry kernel is important to get right first.

    It is possible to have reusable parametric components in Blender, but that is a discussion for another thread :)

  • How about geometry's site constructibility and quality management aspect of the software? I think that's also important to make software feature decisions.

  • One more clarification, Revit most certainly cannot do projects of any size without fear. The solid representation, although better at a HLR (2D diagram representation), also comes as a raster rendering cost - this is why in a large project, Revit's UI becomes very, very laggy. I have worked on projects where this speed decrease is so ridiculous until productivity levels drop significantly. (Note: certain Australian projects from what I have seen model much more than the rest of the world, so my definition of large model may be different to your definition) In contrast, the same geometry in Brep form in Blender is instantaneous. Polygons, and especially triangles, are almost always the fastest geometry when it comes to raster rendering - that's why the movie and game industry uses it.

    A second thing to note is the differences in how the movie and game industry handle geometric assets with how the AEC industry handle geometric assets. The movie and game industry extensively decouple geometry from scene placement, and thus end up which highly complex asset management structures which are all linked into one another to compose a scene. This has huge performance implications. In contrast, the AEC industry tend to like to load everything into a single file. See Graphisoft's monolithic model database, or Revit's lack of mature linking capabilities. If this is also taken into consideration, especially since IFC can link many models together, then this changes the game and may be something to consider, more than just the geometry kernel. The future for IFC-SPF will be not just single files, but an entire hierarchy of referencing IFC-SPF files, and a more database-like interaction.

    @htlcnn - site constructibility can be enforced via UI - for example, for 3D printing, Blender has tools to check correctness: overhangs, manifold geometry, watertightness, etc. However, that's export-only. Regardless of geometry kernel, so long as we support IFC, we have to deal with the dozens of complex geometric representations in an IFC file, and once that's in the game, nobody can guarantee site constructibility on import. We can only influence users to a level.

    Speaking from experience modeling objects to be fabricated in Blender, I do not see an issue. Some objects I find more natural to model in FreeCAD, and so I use FreeCAD too. Some objects are easier in Blender, so I use both. Also keep in mind that for a long time in the concept, design, and tendering phase, BIM objects only need to superficially resemble their physical counterpart - we are a long way from the holy grail of a single object being able to be instantly brought into any simulation package for any physics engine, and be fed into any CAM machine in a factory. A geometry kernel does not solve this, and will never solve this.

    I'm not sure what you mean by "quality management aspect", can you please elaborate?

  • @Moult Dion, you talked about almost anything and explained anything really good

    I have a question, does FreeCAD support PMI? If yes why you don't implement it in BlenderBIM to have a dynamic presentations and representations?


    Yes in the future (maybe 2021) IFC will support multi-body

    You have a really good knowledge about geometries, however, I don't know why you don't talk about "implicit modeling" 😉



  • Hi guys,

    My two cents here (mostly same direction as @Moult pointed).. Basically when people say "being competitive with Revit" it contains all kinds of things sometimes even contradictory. We had the same with AutoCAD a while back, and we must pay attention that some users will only be satisfied when FreeCAD or Blender would have become a perfect clone of Revit. This is basically because the application we are most used to will always feel the best to us.

    But Revit has large shortcomings. The 3D engine of FreeCAD is IMHO way more powerful than Revit already. Try modeling something like [Zaha Hadid](https://duckduckgo.com/?q=zaha+hadid+architecture&t=ffab&iar=images&iax=images&ia=images)'s work in Revit... It will be way easier in FreeCAD and in Blender even more...

    The "large model support" of Revit is also not so beautiful as it should be. You quickly need to split large models into pieces, be it only for manageability between several people, and then your nightmares begin ;)

    In Blender, absurdly huge models are possible. You loose a bit of ability (it's only meshes, so no curves), but everything is a trade-off anyway. In FreeCAD, the new referencing/linking tools are behaving quite well and the size of models you can handle is growing fast, so I'm not worried at all that we are on our way there. Plus, we have more cards in our sleeves (the 3D representation of objects is decoupled from their geometry construction), that could make FreeCAD able to handle absurdly huge models with ease.

    The only area where Revit is very, very much better than both Blender and FreeCAD is generating complete, annotated, beautiful and manageable 2D drawings. I know this will horrify more than one, but to me Revit is mostly a very good drawing board, not a very good modelling app... I see the ability of editing the 2D drawing directly (and reflect in the 3D model) as not really important (if you have a good 3D system, where you can easily find and isolate objects, work orthogonally, etc, you are fine) but the speed of the 2D rendering and the ability to add non-geometry stuff (hatches, symbols, texts, dimensions) are very important. Any arch drawing is made of about 50% geometry and 50% annotations I would say...

    But as @Moult says this doesn't need to happen inside FreeCAD or Blender. In the FOSS world all-in-one software is absolutely not necessary. Some app that could take an IFC file, slice it and allow you to add dimensions, texts, symbols, hatches... Would be a blessing. This could even be made in a 2D CAD app like LibreCAD maybe, actually... But there is much more to be tested there, for ex. cutting through a mesh is much faster than through breps. I'm currently experimenting with this in FreeCAD too.

    ArchiCAD also struggles with 2D rendering... Look that it uses a kind of caching system, that seems to recalculate 2D views in the background when you are not looking at them. That's maybe a clever approach, but they at the core have the same problem that we have, even having flocks of software engineers at their disposal ;)

    Regarding user-friendliness. This seems simple to say, but it's actually extremely hard to achieve. What we call user-friendly depends on every different person. You put an architect used to Revit in front of FreeCAD, he will complain for hours that it's the hardest software he has ever seen. You put a child in front of FreeCAD, he learns it in half an hour (seen this personally many times). In the FreeCAD community we all think FreeCAD should be more user friendly. But every single person has a different idea of what that means. In Blender, it's been a central question for the last 5 years or so. And they also don't have an obvious answer yet.

    When we say Revit is user friendly, I honestly don't think so. There is counter-intuitive stuff all over the place, not to mention the cryptic message box that says "you are not allowed to do that" all the time... Mostly, Revit is the software most of us is used to. So it becomes user-friendly to us. But remember learning it.Remember how that user-friendliness has been force-fed on you, bitter spoonful after bitter spoonful...

    Ton Roosendaal, the father of Blender, said once that "user-friendliness is the opposite of hackability". I think it's a bit bold but not entirely untrue... And we praise hackability and extensibility MUCH with FreeCAD...

    The good point is that user-friendliness doesn't absolutely need to be thought as a core thing. You can have a very barebone, powerful, hackable app, that has no polish and ease on the user, and have a "layer" on top of it which masks some of the complexity and presents things in a nicer way to the user. That's what we are trying with the BIM workbench of FreeCAD.

    Also, a very large part of the user-friendliness, I think, is not in the software itself, but everything around: Documentation, translation, ease of obtaining help, ease of obtaining assets. This can be done right now by anybody ;)

  • @yorik You didn't mention does FreeCAD support PMI?

    As far as I know it supports (somewhat) parametric modeling, does it support feature-based modeling? I can go one step ahead, however, till now these two are enough to me

    Does FreeCAD have any plan to support STEP AP 242?

  • What is PMI?

    FreeCAD is a feature-based parametric modeler. As for STEP AP242, nothing done yet but there are others interested: https://forum.freecadweb.org/viewtopic.php?f=8&t=43509

  • Thanks @yorik it sounds great. microelly2 did a great job as well

    Product and Manufacturing Information (PMI) (https://en.wikipedia.org/wiki/Product_and_manufacturing_information)

    Also (https://www.capvidia.com/blog/what-is-pmi-product-manufacturing-information)

  • Thanks @Moult for clarifying things. My point here is that: with existing geometry tools of Revit, we could be able to create many types of constructible geometry. It also helps documenting easier. How would you document triangulated meshes for constructors and how would they build them?

    "Quality management aspect": I mean the workflow to collaborate in modelling, do model checks.

    For FreeCAD BIM Workbench, I really appreciate hard work that @yorik have been doing to put it into production. But I found it hard to:

    • Navigate around the viewport. This is partly due to my familiarity with Revit's viewport navigation, but when I changed to Revit navigation mode, Shift + Middle click still rotates the viewport even after I release the Middle mouse button (and still keeping Shift button press). I think it's more natural when you just release one of two buttons to stop the hotkey combination.
    • Start a new project with datum elements. Levels are created in BIM Views, however, I can't see them clearly in the model. They are very small crosses icon and hard to notice. I don't know if I should locate them using their Position property or Move them up in Z direction, because their Level property in BIM Views Manager can not be editted.

    That's two barriers for me to achieve a plausible BIM workflow with FreeCAD.

  • Those might be easy problems to overcome... Agree with you on the first one, I'll have a look if I can change that.

    For the second one, I'm still not 100% happy with the BIM views manager anyway... I end up not using it so much as I wish, which is a sign that it's not totally useful. You're right about the Levels being hard to spot. Maybe we would just need to make them bigger? Or let users specify the default size.

    One thing I'm becoming a big fan, is preferenceless preferences: The tool just remembers the last used setting. You don't need to go through complex preferences screens and the app generally adapts as you work with it...

  • preferenceless preferences: The tool just remembers the last used setting. You don't need to go through complex preferences screens and the app generally adapts as you work with it...

    This sounds interesting indeed

  • Lately, I followed BIM ingame tutorial and found it a little struggling:

    - There was no Manage -> Layers Manager. IIRC it was replaced by BIM Views manager, which you currently don't use it so much.

    - You have Project Setup to set information for IFC. But I couldn't find how to create and manage IfcBuildingStorey (a Level) from the beginning of the workflow. You can create a group later and them assign its properties to IfcBuildingStorey, but I find that approach not a managed workflow. Some properties of Building Parts of a level like a wall should be dependent on its Level's properties such as Elevation. Linked parameters is also a feature I could not find in FreeCAD. You let users organize the model freely but don't give them tools to fully manage information in a connected way (such as depended/link properties, or inherited properties like Revit).

    I'm not an Autodesk/Revit fan and I'm also seeking for alternatives. In my opinion, geometry capability is not something to discuss here, but how we manage the modelling process and the information in the model in an united way. Revit has reasons not to allow basic users to model complex geometries and add Dynamo & DirectShape later for experienced users. Actually Revit's geometry capability hasn't evolved much since version 2013-2015. Instead, they spent quite a lot effort on improving information management capability and make guides on how users should do it. That's a big gap I found between Revit and alternatives.

  • Indeed docs become obsolete very quick.. That's a general problem with open-source projects and specially with FreeCAD... There are more people ready to code than ready to update the docs... (my own fault there too).

    There is a Layers Manager in BIM yes. And there is a Level tool too...

    But the BIM project tool also needs some more polish, I fully agree ;)

    Mostly the issues you point at are documentation problems. And as you rightly point out, that's a plus point of Revit, information is generally easy to find.

  • @htlcnn This is why IfcXtreme will change everything

    IfcXtreme will act as IDM toolkit as well as a "DATA MODELER INSIDE THE SOFTWARE"

    However, maybe FreeCAD team says we work on PyFlow for the same reason, I don't know, but I know that IfcXtreme would be more advanced than what PyFlow provides

  • Basically as long as it's usable from Python or C++ and doesn't rely on too complicated or OS-specific libraries, anything can be used inside FreeCAD. If some people prefer the PyFlow way, nothing prevents others to use IfcXtreme!

  • I read a few thing here, he is a reaction from one civil engineer trying to do 3d. @yorik statement

    "The only area where Revit is very, very much better than both Blender and FreeCAD is generating complete, annotated, beautiful and manageable 2D drawings. I know this will horrify more than one, but to me Revit is mostly a very good drawing board, not a very good modelling app."

    I agree particularly. The mindtwist in good " bim software' is the ability to produce readable 2d drawings. .. say what??!! That really is happening. If you ask me the drawing that i see from revit are very low quality. Only if your model is square you get decent drawings.

    As dion mentioned i am more thinking of bim as a set of data and models. Drawings DO NOT have to cone directly from the model. If we let loose of this insane thought the industry and software development in 'BIM' can make progress much more easily. Fusion of data!

Sign In or Register to comment.