The Arch Reference tool is used within Arch/BIM workbenches to include parts of models that are saved in other FreeCAD files. There is a mechanism that detects if the file has been modified externally and offers to reload it. The Arch Reference object can also not load the full shape of the objects it references, but only their 3D representation, which speeds up recomputing a lot.
Now that tool has been received a number of upgrades:
Translations are fixed, everything the tool does should now be fully translatable
Reference objects can now use whole file contents instead of having to choose a part inside
Support for DXF files: A DXF file can be used as a Reference object. In that case, everything the file contains is gathered into one single shape.
Support for IFC files. This is only available if NativeIFC is available. With that, the Reference object looks and works exactly like a NativeIFC project, only it cannot be expanded.
General code cleanup
With this, another chapter of our 2024 roadmap is now complete.
Preparing Arch/BIM/NativeIFC merge
That merge was scheduled for the last moment, at the end of the road map. However, the work on Toponaming is going fast and is close to completion, which means the lights could become green soon for a feature freeze and a new release of FreeCAD. And we decided it would be really cool to have BIM/NativeIFC merged for FreeCAD 1.0. So I will now work on that first, and the next chapters right after the merge.
That means basically, in the next release, when you open FreeCAD, you will be presented with the BIM workbench, which has all the tools of Arch, plus the NativeIFC functionality enabled. IfcOpenShell is also included by default in all official FreeCAD installers now, so there is basically nothing more to worry about, nothing more to install.
The BIM workbench is basically and mostly an extended and refined version of Arch, so for Arch users there shouldn't be any disruption. And for the BIM workbench users, well, you'll be at home already, with the comfort of not having to install anything yourself anymore ;)
If you are wondering, the above screenshot is me playing with a "minimal" tool bars setup. There is an ongoing discussion about reorganizing the BIM menus and tool bars, feel free to participate!
If you already have the BIM add-on installed, you will see a pop-up window telling you to uninstall the BIM add-on before venturing forth. Unfortunately I couldn't find a way to do it automatically, but it's also a good thing because so will people be aware of the change.
Just a last note about NativeIFC: We sped up on this Arch/BIM/NativeIFC merge for very good reasons (see below), but the planned work is far from finished and NativeIFC functionality is not complete yet. So tread there with care, and excuse the bugs! Don't hesitate to report them, though, or, even better, help fix them ;)
Built-in IfcOpenShell updater tool
That's another piece of our roadmap. Although it might hopefully be obsoleted at birth because IfcOpenShell is not integrated in FreeCAD installers, in the BIM -> Utils menu, there is now a tool that allows you to install and update your version of IfcOpenShell. It uses the add-on manager under the hood, and installs it at the same place where your FreeCAD add-ons get installed, so all the hassle of choosing the right version for you is taken care of automatically.
This should help fixing and reducing remaining difficulties related to IfcOpenShell, and hopefully help more people start using IFC.
FreeCAD release 1.0 scheduled
That's probably the most epic news since a long time, we are finally, after more than 20 years work, ready for the mythical 1.0 release of FreeCAD. The feature freeze should begin on June 1st, 2024, and the release date is estimated around mid-July. Of course, as always, this could delay, as bugs have the nasty habit of appearing at the last minute, and we'll take the necessary time to fix things as best as possible before releasing.
Although it's just a number, and does not per se mean anything like "FreeCAD is production-ready" (It has been for years already), the 1.0 number means a lot to us. It is a milestone we have since very early in the project, when Jürgen was still there leading the project. It is understood since then that we would reach 1.0 when 1) we have a good, built-in assembly workbench, and 2) Toponaming problems are solved, or at least solved enough. Well, I'm happy to announce that these two goals can now be considered reached.
The Assembly workbench
Point 1, a built-in assembly workbench, is now done, we now have a very good, even if still brand-new Assembly workbench in FreeCAD. Did I tell you the incredible story behind that workbench yet? (Sorry if the answer is yes, please skip!) Well, sit and listen, kids:
Once upon a time, in the years 2000 an something, there were two FreeCAD. Two projects named FreeCAD. One is ours, the other one, that at that time we called "the other FreeCAD", was a kinetic simulation application made by a single person, Dr. Aik-Song Koh. For some time, both were evenly recognized and referenced on the internet, which led to quite some interesting mix-ups and confusions. After a time, our FreeCAD grew a lot bigger, and development on the "other FreeCAD" stopped. It was also not open-source.
Last year, Sliptonic, a FreeCAD maintainer and also now CEO of Ondsel, bumped into Dr. Koh, and raised the idea: "Say, we need something like that in FreeCAD. wouldn't you be interested in working on it?" Dr. Koh jumped in, and ported his FreeCAD over to our FreeCAD, which is now the "engine" behind the new Assembly workbench. After all these years, in an epic, mythical, sublime move of the universe, the two FreeCAD have united, and our world is no longer the same!
Although Dr. Koh's kinetic solver was developed for and thanks to Ondsel, and not originally part of the FreeCAD project, it's important to know that it's still fully and totally free and open-source (it uses the same LGPL license as FreeCAD). We wouldn't have it any other way, of course.
What about the several other assembly add-ons that FreeCAD offers via the add-ons manager then? Well nothing changed there, they still work fine, and you're still more than encouraged to keep using them. So far there is no compatibility between all these and the new built-in assembly, but the new solver/assembly API offers new possibilities and add-on developers are looking at it, so maybe in the future much could be done in that regard.
Toponaming mitigation
Point 2, that we got used to call "the Toponaming problem", is a well-known and very old problem of FreeCAD, that I talked a lot about on this blog. When recomputing the shape of an object, the order of its subelements (faces, edges, vertices) might change. Face1 might become Face6, Edge18 might become Edge4, etc. This is due to how many of the underlying components of FreeCAD (the sketcher solver, the OpenCasCade engine) work. These components have a complex way to build their geometry, and that's how both can reach the good results they yield.
Unfortunately that order is of paramount importance for referencing subparts of a shape. For example, when a sketch is placed on a face of an object, or uses an underlying edge. So if that order changes, the sketch can break, which is a common scenario in FreeCAD.
Many people have worked and tried to build solutions to the problem in the past, until finally one emerged as a solid and working solution, which is the base of Realthunder's linkstage3 branch, a FreeCAD fork developed by developer Realthunder, where he developed and put to work his Toponaming mitigation algorithm. The linkstage3 version of FreeCAD has now been used for a long time by many people, and the feedback has been excellent. Fro many people, the problem is solved (this is not an absolute truth, more about that below).
A very long and hard work has been needed by a lot of FreeCAD developers toghether with Realthunder, to bring the Toponaming mitigation functionality of linkstage3 to FreeCAD's main codebase, tie and test everything, and it is now done. Since a few weeks, that functionality is enabled by default and running, and the results we have are thrilling. It works, and the effect on FreeCAD's performance, that we all dreaded, is so far almost negligible.
It's important to understand how this works: Every shape used in FreeCAD now has a conversion table. Every time a shape is recalculated, the different components are analyzed, and remapped as best as possible. In other words, the engine tries to find which of the new edges is the old Edge4, and remap everything so everything keeps the same name as before. So every time a shape changes, there is a little additional calculation. the result is, when calling for Edge4, you should always get the same edge now.
A few things are interesting here:
1) Although we all think the results are excellent so far, the calculation could fail or give wrong results in more specific or rare cases, so there can still be Toponaming problems. There will certainly be refinement and further work needed down the road.
2) Models don't break only because of Toponaming. Parametric models offer large opportunities for wrongdoing or fragile connections, so good modelling is still important.
3) The renaming and the conversion table system offer new possibilities: It's now possible to not only use default names like Edge4 or Face6, but also custom names like TopFace. Although this is not yet used by FreeCAD tools, it offers very interesting possibilities, where subcomponents could be referenced not by their order in a list, but by more meaningful characteristics. This might lead to very interesting developments in the future.
The integration is finished, tested, and as far as we can tell, most bugs are killed and you will have a perfectly functional workbench with all Arch and BIM tools working. Native IFC, of course, is still a work in progress. So the idea is to keep it available, but out of your way in FreeCAD 1.0. If you don't need it, you won't see it. If you want to enable it, it's there at your fingertips: You just need to create an IFC project or load an IFC file.
The main changes for existing Arch users will be:
The Arch Project tool is removed and replaced by a new IFC Project tool. There was not much sense in using an Arch Project if you weren't going to go IFC anyway, so better do things right from the start here. When you create an IFC project, it is NativeIFC enabled right from the start, and everything you add to it is NativeIFC. If you don't want to go nativeIFC, you just don't create an IFC project. You can, even so, still export your model to IFC.
The "combo" tools of Arch (the Structure tool, the Window tool, the BuildingPart tool...) are still there but now have been split into different more semantic tools: Structure is replaced by Beam, Column and Slab, Window is replaced by Window and Door, and BuildingPart is replaced by Building and Level. Underneath, they are all still the same tool, but they start with different settings and remember their settings individually. At the beginning I thought this overkill, why not have fewer but more powerful tools, but I ended up changing my mind, because in 99% of the time it's actually time-saving to choose the right button and save a few mouse clicks.
The menus and toolbars have been reorganized (see more here) and separated into more BIM-like categories. There are more menus, but hopefully things are more instinctive and easier to find. And step by step, we are structuring a true and powerful BIM environment.
The pipe tool can now do rectangular sections, so it can be used to build HVAC ducts. There is more to do there, such as adding flanges, etc.. But we are on our way to build HVAC tools in BIM.
IfcOpenShell, the engine behind the IFC functionality of the BIM workbench, is now included by default in all official installer packages of FreeCAD on all platforms. This is the most recent version of IfcOpenShell (v0.7), and should be good to go for the lifecycle of FreeCAD 1.0. In other words, if you use one of these packages, you shouldn't have to worry about IFcOpenShell anymore.
The problem is of course if you use a third-party package, such as snap, flatpack or the FreeCAd packages provided by Linux distributions. Most of these won't include IfcOpenShell, as it is often not available on these platforms. For these, we have included an IfcOpenShell installer tool in the BIM workbench's Utils menu. This tool uses the FreeCAD addons manager (which in turn uses Python's pip tool) to install IfcOpenShell in a private, FreeCAD-only location (among other FreeCAD addons). Hopefully, the world will progrssively adopt IfcOpenShell as it should, and this problem will vanish over time.
Note also that IfcOpenShell is not at all mandatory to use the BIM workbench. You will only need it if you work with IFC files.
Preparations for 1.0 (and help needed!)
Things are going well and fast, and we just entered the second part of our feature freeze. UI and user-visible texts are now frozen, so translators and document writers can now work without the risk that things change while they're working.
This is also a moment when all help is welcome! We need to do three things now, where you can help: test, translate and write documentation.
Testing is easy: Download a development release of FreeCAD (you can run it side-by-side with your current FreeCAD installation), test the BIM tools as much as possible, and report any bug you find on the FreeCAD issues tracker. To not create additional work for the developers, though, make sure:
Your bug is really a bug and not just something you didn't do correctly, or something that wasn't implemented yet. A good rule of thumb is: Something you are sure should be working, but is not. For example: a button that says "This button does XXX", but when you click the button it does not do XXX.
You can reproduce the bug, and provide instructions for other people to reproduce the problem. Ex: 1) press X, 2) press Y, 3) Z should happen but instead, FreeCAD crashes
Since we are close to the release, only critical bug fixes wil be processed at this time. Less urgent things are left for after the release. If you find something annoying but not critical, still report it of course, but keep in mind it won't be processed immediately. Processing means being looked at and verified by the FreeCAD maintainers, it does not necessarily means fixed, as the fix might be complex and take more time.
Make sure you include your FreeCAD version, so we know exactly which version presents the problem.
Translating can be done by anybody, jsut head to https://crowdin.com/project/freecad, create yourself an account and start translating! Concretedog wrote a good explanation of how everything works on the FreeCAD blog.
Writing documentation: The BIM documentation lives at https://wiki.freecad.org/BIM_Workbench. It still lacks a lot of content (all the red links are missing pages). If you think you can help writing, checking the existing pages for errors or fix inaccuracies, you are more than welcome to help! Editing a wiki is easy. You just need to create yourself a forum account and head to this thread to ask for a wiki account (we disabled self registering on our wiki because there was a lot of spam). Alternatively, ask me directly! ;)
The BIM Views panel is a handy task panel to see a summary of your model, instead of the full tree. The basic idea of it is to offer a good context view of your model: What is the structure of your model, and where you are currently working. You can switch the BIM Views panel on/off with the corresponding button on the status bar.
I have now finished the rework of the tool. It is still not merged in FreeCAD because FreeCAD is in feature freeze for the coming 1.0 release, but it will done as soon as we are out of it. It might sound disappointing not to have this in 1.0, but we have to put the limit somewhere, otherwise the release never happens, someone always has an interesting new feature to add. Also, this is still rough from the code oven and needs testing.
If you want to test for yourself already, though, check the pull request.
The general idea here is twofold: One part is to allow to more easily "switch" between one context and another, for example between different levels of a building, or between the model and a 2D view. Another part is to help streamlining the BIM Model -> Draft 2D view -> TechDraw page workflow.
2D views were usually done until now with a simple group. This still works, but we now have a new tool that uses a BuildingPart. This gives many additional advantages, such as automatic working plane, the ability to move the objects inside, and other interaction possibilities.
The following improvements have been added to the BIM Views panel:
The panel now stays docked together with other side panels, and remembers on/off status and position across FreeCAD sessions
A new section that includes 2D views has been added below the model structure view
The tool buttons have become context tools. Just right-click an item to rename, activate, delete, isolate or turn off anything
The panel now shows building structure and WP proxies with elevations in the top part of the panel, and 2D views and TechDraw pages in the bottom part
Double-clicking a level or 2D view activates that item. The different Interaction properties of BuildingParts apply: If the "Double click activates" property is on, the BuildingPart becomes active: All next Draft or BIM objects added to the model will automatically be added to it. Active containers are shown in bold text, both in the BIM panel and in the model tree. If the BuildingPart has stored Camera settings, that view will be recalled.
Double-clicking a TechDraw view opens that page
Double-clicking a level hides all other levels
Double-clicking a building shows all levels inside
A new preferences under Arch -> Defaults allows to change the 3D view background to plain color when activating a 2D view
Support for NativeIFC projects:
NativeIFC building structures (buildings, storeys...) can be an active container too
"Add Level" creates IfcBuildingStoreys when invoked on an IfcBuilding
Objects added to an active NativeIFC container are automatically converted to IFC
"Add proxy" is disabled when right-clicking a NativeIFC object
Activated NativeIFC levels set the working plane
Activated NativeIFC levels hide other levels
Related, additional changes also occur in other objects/tools:
BuildingPart are now used as 2D drawing containers. Their IFC type is then set to IfcAnnotation with Object Type as DRAWING. This matches how it is done in BlenderBIM, and paves the way for integration in IFC files, and seamless interchange with BlenderBIM. When used as a 2D drawing container, some properties of BuildingParts specific to levels are hidden.
A new "Create 2D Drawing" tool has been added to the BIM annotation tools. That tool creates a BuildingPart as described above, to serve as a container for 2D elements such as projection views (see below), dimensions, annotations and other line work
If a section plane is selected when creating a 2D Drawing, shape2D views are created automatically: One view and one cut if the section plane crosses the model, or only one view if not.
"Shape-based view" is renamed to "Section view"
A new "Section cut" tool has been added. It also creates a Shape2DView, but sets it in "cut faces" projection mode, so it shows only cut lines (and fillings). Typically, you create both a section view and a section cut to create a 2D view like a plan or section view.
The "View" tool has been renamed to "Insert view" which is more coherent with what it actually does
The sequence of the annotations menu becomes: Section plane -> 2D drawing -> Section view -> Section view -> Page -> Insert view. This reflects the recommended workflow: First you create a section plane, then you set up a 2D drawing container, then you add viewed and cut geometry to it, then you create a TechDraw page, then you place your 2D drawing on it.
We are almost there. I talked quite a lot here already about FreeCAD 1.0 and what you can expect to find in it. Well, the community has been incredibly busy, and last tasks have now been done, last bugs have been squashed, latest translations are in, and release candidates are ready. Release candidates are 1.0 installers, but not the "official ones". They are there for you to test, and help us find last-minute bugs that have manage to pass under the radar.
Many people already started downloading and trying the RC builds, and we already received a fair amount of bug reports, and developers are fixing as fast as hell. Depending on how that process goes, we expect to have the final, official builds out in a couple of weeks.
People are also starting to use NativeIFC seriously, and I'm quite relieved pleased to say it seems to hold quite well so far.
I will of course also write something more official when the time has come, but in the meantime, if you have a moment to spare, please give the RC build a test spin!
Specific icons for NativeIFC objects
This is a trivial thing but also I think a welcome change from the old Arch/BIM objects: Up to now, all NativeIFC objects had the same icon. With this change, they will get a specific icon based on their IFC class. So if you change the class of an object from wall to beam, the icon will change too.
This wasn't something I wanted to do with the old Arch/BIM objects, because these objects all used a different "engine". So if you changed the IFC type of a wall to beam, it would export to IFC as a beam, but would still use the wall engine. So it made sense to keep the wall icon because it is an important information.
Now with NativeIFC, all objects use the same engine (IfcOpenShell, in fact). So the above is no longer valid, and it makes more sense for the icon to reflect the class.
This will be merged right after the 1.0 release, but in the meantime you can already test this pull request.
New example models
As I wrote earlier, the default, built-in Arch/BIM example that you get on the FreeCAD start page has already been changed to a more proper, standard BIM model (which is the one used in this course (in portuguese). However, it's a pity the old Arch detail example vanished, as I believe it's a really nice feature of FreeCAD over other BIM solutions, that by happily permitting mixing of 3D and 2D elements, it's a very good platform for detailing. So I rescued one of the old models we did at OpeningDetail and formatted as a new detail example. This will be added to FreeCAD right after the 1.0 release. As all OpeningDetail models, it relies a lot on parametricity, and all the descriptions are automatically generated from the materials. There is much more improvement to be done on that kind of workflow, though, hopefully this example will help sparking some new ideas.
Apart from that, the collection of BIM example models that is available via the Help menu in the BIM workbench got one addition, a project I've just been working on that was graciously donated by Luc Nelles Architectes, that contains the model plus a whole set of 2D drawings generated from it.
IfcOpenShell 0.8 support
IfcOpenShell, the IFC engine that supports IFC functionality in FreeCAD, is in constant evolution, and its next version, v0.8, is around the corner and already available on some platforms. I'm happy to report that FreeCAD will support it right from day one. This is still being worked on, but will be ready in the coming days, hopefully in time for the 1.0 release.
These last weeks I've mostly been busy fixing a lot issues that have appeared after the recent BIM/NativeIFC merge, and I'm please to say things are pretty stable already for the forthcoming FreeCAD 1.0, and the NativeIFC system, although still new and somewhat fragile, is already pretty much usable.
Version 1.0 is around the corner, we have already issued a second release candidate which you are encouraged begged to try, and we still have a list of 11 blocking bugs we're trying to solve before we can release the final version. So hopefully we are very close now.
But I've also managed to advance on my own NativeIFC roadmap and we have a big chunk coming ahead, right after 1.0 is released:
IFC 2D support
The IFC format, as you know, is used primarily to exchange 3D models of buildings. However, there is a lot more in it, and Bonsai (ex-BlenderBIM) has already made a lot of development in that regard. Basically, it is possible to embed 2D drawings, such as plans and sections, complete with annotations and everything, inside an IFC model.
Well, I'm happy to report this is now working in FreeCAD as well. It is possible to open an IFC file issued by either Bonsai or FreeCAD, and view, edit and print the 2D drawings inside.
This is not 100% complete, mind you, so far we are just supporting in FreeCAD the same set of 2D entities as Bonsai: linework, hatches, texts, dimensions and view definitions (aka section planes in FreeCAD). So when opening such a file in FreeCAD, at the moment you still need to generate a 2D view from it. Basically it will still need some testing to get an idea of how we should do that automatically.
So for example, you take a small model like this (modelled in FreeCAD, opened in Blender + Bonsai):
In FreeCAD, you would just add a new group, then dimensions, texts, linework, and a section plane to that group. When dropping that group onto the IFC model, everything will hopefully "just work" and everything be embedded into the IFC file.
If you open such an IFC file in FreeCAD, being produced by FreeCAD like explained above or by Bonsai, you'll see the group containing a section plane and different annotations. You make a 2D view from the section plane, as usual, and you get something printable:
And if you open it in Bonsai you get exactly the same thing:
And from either Bonsai or FreeCAD it can be exported to SVG:
Of course rendering parameters (text size, dimension style, etc) still differ from Bonsai to FreeCAD. At the moment, I see this as not really a problem, with the same IFC file you just choose the app you prefer for output. But of course we will work further on supporting all this styling. Remember, as this is native IFC, nothing is lost, whether you edit the IFC file in FreeCAD or Bonsai.
This is part of the larger BIM Views upgrade I talked about in an earlier post. The workflow for creating 2D drawings in the BIM workbench has been a bit streamlined and hopefully will feel more intuitive:
The typical workflow to create a 2D drawing now involves the following steps, and the buttons order reflects that:
Creating a section plane, and placing it correctly in the model. That's what we've been doing up to now.
Creating a drawing view. The drawing view is simply a BuildingPart that has been modified to be recognized as a 2D drawing (and stripped out of some attributes like level, height, etc). You could still use a standard group here, like we were doing in the past, but using a BuildingPart has a few additional advantages: It defines a working plane, you can move it and it will also move its contents, and it has a nice "title" that shows in the viewport. But fundamentally, the drawing view is just a container for the components of your 2d drawing.
Create a section view and if needed, a section cut from your section plane. Both tools produce a Shape2DView, but the first one in "solid" mode, which shows projected lines from what is viewed by the section plane, and the second one in "cut lines" mode, so it shows only the cut lines (the intersection between the section plane and the model). In plans and sections, you will want both, and give the section cut a bit thicker line width, in elevations you will typically only need the section view, as there is nothing to cut. Then, of course, you place both these objects, in the drawing view.
Create all needed annotations like dimensions, texts, 2D linework, etc... and add them to the drawing view.
Create a TechDraw page using the "page" button. Unlike the TechDraw buttons, this one will pop up a dialog to let you select a svg file to use as a template (and remember the last used template).
Once you have your drawing view and your page, select both and press the insert view button. This will create a TechDraw view on the page, showing the contents of your drawing view.
As explained last month, the BIM Views panel also now allows you to quickly switch between model view, drawing views and page views.
This will still need some tweaking and adjustment to make it really smooth, but I feel we are on the good path...
FreeCAD release 1.0 is almost there, we are ironing out the few remaining issues, and there is a final release candidate out for you to test! If all goes well and no further major bugs are found, the final release is scheduled to happen next week. Expect announcements everywhere ;)
Project manager tool refactor
As part of my NativeIFC roadmap was the refactor of the BIM Project Manager tool. It now basically supports both non-IFC projects, like before, but also NativeIFC projects. In addition, you can now also use it to edit existing projects. This, however, only works with IFC projects, since for non-IFC projects, as otherwise the concept of a "project" does not really exist.
What you can now do with the project manager:
Setup classical (non-IFC) BIM projects, by defining site or building properties, the number of levels, etc. Once that is done, however, you cannot use the project manager to modify the different elements (site, building, levels...). You must modify these elements yourself.
Setup a hybrid (unlocked) IFC project. The options are the same as above, only the result will be a NativeIFC project with all the contents you defined in the manager.
Setup a locked NativeIFC project. Same as above, but the document starts locked
Edit a NativeIFC project: Either use the manager when working on a locked project, or, if this is an unlocked project, with the project selected. This is still a work in progress, though, so not every everything is already editable. Site and building data are, building outline items (rectangle, axes...) not yet.
I still see the project manager as a helper to start something structured for IFC, though, so I suppose editing it is less interesting, since once the project is started it is easy and more comfortable to edit the individual elements directly, rather than coming back to a setup screen. But future will tell us if people start using it for that purpose and if so it can be extended further.
Building structure elements now use the BuildingPart viewprovider
This is a simple but interesting change, building structure IFC elements such as IfcBuilding or IfcBuildingStorey now make use of the BuildingPart view provider. This is an interesting problem, because it allowed me to play with multiple inheritances (the view provider in this case inherits both from the IFC view provider and the BuildingPart view provider). The resutl is an object that has both the IFC aspect and behaviours (ex: drag-and-drop support) and the BuildingPart behaviours (ability to display a label ,etc).
This paves the way for further harmonizing of IFC and non-IFC BIM elements in FreeCAD, so both can look and behave the same.
This is part of this Pull Request which is still int he queue for post-1.0 merges.
This 1.0 release is something the FreeCAD community has been working on for many years. We always had a clear vision of what the mythical 1.0 number would mean to us: Not something "stable" (that does not mean much) or "ready for professional use" (FreeCAD has been ready for professional use for years), rather it meant that it has the features set we thought was needed.
Over the years, that features set got more and more complete, until we were left with two missing pieces: A solution for what we call "the toponaming problem", and a built-in assembly workbench. I talked a lot about these already so I won't repeat it here.
Basically, this 1.0 number is a present from ourselves to ourselves. It's the FreeCAD 1.0 we wanted, and we're all pretty proud! We hope you'll like it too!
Of course, many new features have landed there so there is some work to do along the road: The Toponaming mitigation system is in place but it still needs some more implementation work and better algorithms to detect/match subshapes, and the assembly workbench is still very fresh and will need a lot of user input to get better. The materials system is also very new and not fully used everywhere as it should. But that's the fate of free and opens-source software, it's never finished, it is always a work in progress. So, expect more work, more progress, more features soon!
In the meantime, here are I think the key points of this 1.0 release regarding BIM:
Arch, BIM and NativeIFC are merged: No more need to install anything, a default FreeCAD install is now ready for BIM by default! You now have only one "BIM" workbench (all the Arch tools are still there in it, though). The NativeIFC functionality is also included in it, controlling NativeIFC mode is basically now transparently done by loading an IFC file or using the "IFC lock" button on the status bar.
Better general Draft visual system: The Draft grid and working plane now behave much better, remember which view they are attached to, and overall provide a much more solid base to draw 2D shapes and BIM objects on.
New unified themes and better UI: We got rid of most of the old css-based themes (still installable as an addon, though), and FreeCAD now ships with two basic themes, a dark one and a light one. These themes have received a lot of work and it really makes the whole FreeCAD experience a lot nicer. There are upgrade almost everywhere in the UI though, maybe the most eye-catching one is the detachable, overlay panels, that you can keep on top of the 3D view.
New materials system: It's not used by BIM yet, mind you, but will soon. FreeCAD now has an unified materials system, that covers everything from object appearance, physical properties, rendering, custom properties and everything.
Many new TechDraw tools: It becomes more and more possible to do a large part of the annotation work directly in TechDraw. Maybe soon we'll be able to propose a fully TechDraw-based workflow for CAD/BIM 2D sheet work?
There is much, much more under the hood, be sure to check the release notes!
The screenshot above shows the new Assembly workbench, and many new UI features such as overlay panels and tabs-like workbenches selector
Better properties and property sets support in NativeIFC
The NativeIFC system already supported properties and property sets: On double-clicking an object to expand it, its properties were already fetched, and displayed among the FreeCAD properties. Changing any of the values of these properties already correctly reflected in the IFC file.
There is a new set of buttons under the FreeCAD properties editor: One to add a new property to an existing or new property set, and one to add a default property set.
The "add new property" button allows you to set the IFC property type. In the FreeCAD property editor, though, it is converted to one of the matching FreeCAD property type (ex: IfcInteger is shown as a FreeCAD integer property, IfcLabel is shown as a FreeCAD text property, etc.) This conversion is only visual, though, as the property remembers its IFC property type.
You can also add custom properties the "FreeCAD standard" way, by right-clicking the property tree and choosing "add property". But doing that way, you can choose a FreeCAD property type and not an IFC property type, and the conversion will be done automatically. A csv file included in FreeCAD defines which FreeCAD property type must be converted to which IFC type and vice-versa.
The IFC properties manager tool has been upgraded to support NativeIFC objects too, so you can still use it within IFC projects.
Comments
@yorik Would you cross-post in FreeCAD forum - the new Wall tool and associated ideas is interesting for discussion, thanks :)
Really looking forward to the upcoming type support in FreeCAD. Types are really fundamental to how BIM works!
Development news 20 from https://yorik.uncreated.net/blog/2024-006-freecad-news-20 :
Upgraded Arch reference
The Arch Reference tool is used within Arch/BIM workbenches to include parts of models that are saved in other FreeCAD files. There is a mechanism that detects if the file has been modified externally and offers to reload it. The Arch Reference object can also not load the full shape of the objects it references, but only their 3D representation, which speeds up recomputing a lot.
Now that tool has been received a number of upgrades:
Translations are fixed, everything the tool does should now be fully translatable
Reference objects can now use whole file contents instead of having to choose a part inside
Support for DXF files: A DXF file can be used as a Reference object. In that case, everything the file contains is gathered into one single shape.
Support for IFC files. This is only available if NativeIFC is available. With that, the Reference object looks and works exactly like a NativeIFC project, only it cannot be expanded.
General code cleanup
With this, another chapter of our 2024 roadmap is now complete.
Preparing Arch/BIM/NativeIFC merge
That merge was scheduled for the last moment, at the end of the road map. However, the work on Toponaming is going fast and is close to completion, which means the lights could become green soon for a feature freeze and a new release of FreeCAD. And we decided it would be really cool to have BIM/NativeIFC merged for FreeCAD 1.0. So I will now work on that first, and the next chapters right after the merge.
Development news 21 at https://yorik.uncreated.net/blog/2024-007-freecad-news-21
Good bye Arch, hello BIM (with built-in NativeIFC)!
It is finally done, the built-in Arch workbench has been merged with the BIM Workbench and the NativeIFC addon and everything is integrated in FreeCAD.
That means basically, in the next release, when you open FreeCAD, you will be presented with the BIM workbench, which has all the tools of Arch, plus the NativeIFC functionality enabled. IfcOpenShell is also included by default in all official FreeCAD installers now, so there is basically nothing more to worry about, nothing more to install.
The BIM workbench is basically and mostly an extended and refined version of Arch, so for Arch users there shouldn't be any disruption. And for the BIM workbench users, well, you'll be at home already, with the comfort of not having to install anything yourself anymore ;)
If you are wondering, the above screenshot is me playing with a "minimal" tool bars setup. There is an ongoing discussion about reorganizing the BIM menus and tool bars, feel free to participate!
If you already have the BIM add-on installed, you will see a pop-up window telling you to uninstall the BIM add-on before venturing forth. Unfortunately I couldn't find a way to do it automatically, but it's also a good thing because so will people be aware of the change.
Just a last note about NativeIFC: We sped up on this Arch/BIM/NativeIFC merge for very good reasons (see below), but the planned work is far from finished and NativeIFC functionality is not complete yet. So tread there with care, and excuse the bugs! Don't hesitate to report them, though, or, even better, help fix them ;)
Built-in IfcOpenShell updater tool
That's another piece of our roadmap. Although it might hopefully be obsoleted at birth because IfcOpenShell is not integrated in FreeCAD installers, in the BIM -> Utils menu, there is now a tool that allows you to install and update your version of IfcOpenShell. It uses the add-on manager under the hood, and installs it at the same place where your FreeCAD add-ons get installed, so all the hassle of choosing the right version for you is taken care of automatically.
This should help fixing and reducing remaining difficulties related to IfcOpenShell, and hopefully help more people start using IFC.
FreeCAD release 1.0 scheduled
That's probably the most epic news since a long time, we are finally, after more than 20 years work, ready for the mythical 1.0 release of FreeCAD. The feature freeze should begin on June 1st, 2024, and the release date is estimated around mid-July. Of course, as always, this could delay, as bugs have the nasty habit of appearing at the last minute, and we'll take the necessary time to fix things as best as possible before releasing.
Although it's just a number, and does not per se mean anything like "FreeCAD is production-ready" (It has been for years already), the 1.0 number means a lot to us. It is a milestone we have since very early in the project, when Jürgen was still there leading the project. It is understood since then that we would reach 1.0 when 1) we have a good, built-in assembly workbench, and 2) Toponaming problems are solved, or at least solved enough. Well, I'm happy to announce that these two goals can now be considered reached.
The Assembly workbench
Point 1, a built-in assembly workbench, is now done, we now have a very good, even if still brand-new Assembly workbench in FreeCAD. Did I tell you the incredible story behind that workbench yet? (Sorry if the answer is yes, please skip!) Well, sit and listen, kids:
Once upon a time, in the years 2000 an something, there were two FreeCAD. Two projects named FreeCAD. One is ours, the other one, that at that time we called "the other FreeCAD", was a kinetic simulation application made by a single person, Dr. Aik-Song Koh. For some time, both were evenly recognized and referenced on the internet, which led to quite some interesting mix-ups and confusions. After a time, our FreeCAD grew a lot bigger, and development on the "other FreeCAD" stopped. It was also not open-source.
Last year, Sliptonic, a FreeCAD maintainer and also now CEO of Ondsel, bumped into Dr. Koh, and raised the idea: "Say, we need something like that in FreeCAD. wouldn't you be interested in working on it?" Dr. Koh jumped in, and ported his FreeCAD over to our FreeCAD, which is now the "engine" behind the new Assembly workbench. After all these years, in an epic, mythical, sublime move of the universe, the two FreeCAD have united, and our world is no longer the same!
Although Dr. Koh's kinetic solver was developed for and thanks to Ondsel, and not originally part of the FreeCAD project, it's important to know that it's still fully and totally free and open-source (it uses the same LGPL license as FreeCAD). We wouldn't have it any other way, of course.
What about the several other assembly add-ons that FreeCAD offers via the add-ons manager then? Well nothing changed there, they still work fine, and you're still more than encouraged to keep using them. So far there is no compatibility between all these and the new built-in assembly, but the new solver/assembly API offers new possibilities and add-on developers are looking at it, so maybe in the future much could be done in that regard.
Toponaming mitigation
Point 2, that we got used to call "the Toponaming problem", is a well-known and very old problem of FreeCAD, that I talked a lot about on this blog. When recomputing the shape of an object, the order of its subelements (faces, edges, vertices) might change. Face1 might become Face6, Edge18 might become Edge4, etc. This is due to how many of the underlying components of FreeCAD (the sketcher solver, the OpenCasCade engine) work. These components have a complex way to build their geometry, and that's how both can reach the good results they yield.
Unfortunately that order is of paramount importance for referencing subparts of a shape. For example, when a sketch is placed on a face of an object, or uses an underlying edge. So if that order changes, the sketch can break, which is a common scenario in FreeCAD.
Many people have worked and tried to build solutions to the problem in the past, until finally one emerged as a solid and working solution, which is the base of Realthunder's linkstage3 branch, a FreeCAD fork developed by developer Realthunder, where he developed and put to work his Toponaming mitigation algorithm. The linkstage3 version of FreeCAD has now been used for a long time by many people, and the feedback has been excellent. Fro many people, the problem is solved (this is not an absolute truth, more about that below).
A very long and hard work has been needed by a lot of FreeCAD developers toghether with Realthunder, to bring the Toponaming mitigation functionality of linkstage3 to FreeCAD's main codebase, tie and test everything, and it is now done. Since a few weeks, that functionality is enabled by default and running, and the results we have are thrilling. It works, and the effect on FreeCAD's performance, that we all dreaded, is so far almost negligible.
It's important to understand how this works: Every shape used in FreeCAD now has a conversion table. Every time a shape is recalculated, the different components are analyzed, and remapped as best as possible. In other words, the engine tries to find which of the new edges is the old Edge4, and remap everything so everything keeps the same name as before. So every time a shape changes, there is a little additional calculation. the result is, when calling for Edge4, you should always get the same edge now.
A few things are interesting here:
1) Although we all think the results are excellent so far, the calculation could fail or give wrong results in more specific or rare cases, so there can still be Toponaming problems. There will certainly be refinement and further work needed down the road.
2) Models don't break only because of Toponaming. Parametric models offer large opportunities for wrongdoing or fragile connections, so good modelling is still important.
3) The renaming and the conversion table system offer new possibilities: It's now possible to not only use default names like Edge4 or Face6, but also custom names like TopFace. Although this is not yet used by FreeCAD tools, it offers very interesting possibilities, where subcomponents could be referenced not by their order in a list, but by more meaningful characteristics. This might lead to very interesting developments in the future.
Development news 22 from https://yorik.uncreated.net/blog/2024-008-frreecad-news-22:
Arch / BIM / NAtiveIFC integration
The integration is finished, tested, and as far as we can tell, most bugs are killed and you will have a perfectly functional workbench with all Arch and BIM tools working. Native IFC, of course, is still a work in progress. So the idea is to keep it available, but out of your way in FreeCAD 1.0. If you don't need it, you won't see it. If you want to enable it, it's there at your fingertips: You just need to create an IFC project or load an IFC file.
The main changes for existing Arch users will be:
The problem is of course if you use a third-party package, such as snap, flatpack or the FreeCAd packages provided by Linux distributions. Most of these won't include IfcOpenShell, as it is often not available on these platforms. For these, we have included an IfcOpenShell installer tool in the BIM workbench's Utils menu. This tool uses the FreeCAD addons manager (which in turn uses Python's pip tool) to install IfcOpenShell in a private, FreeCAD-only location (among other FreeCAD addons). Hopefully, the world will progrssively adopt IfcOpenShell as it should, and this problem will vanish over time.
Note also that IfcOpenShell is not at all mandatory to use the BIM workbench. You will only need it if you work with IFC files.
Preparations for 1.0 (and help needed!)
Things are going well and fast, and we just entered the second part of our feature freeze. UI and user-visible texts are now frozen, so translators and document writers can now work without the risk that things change while they're working.
This is also a moment when all help is welcome! We need to do three things now, where you can help: test, translate and write documentation.
Testing is easy: Download a development release of FreeCAD (you can run it side-by-side with your current FreeCAD installation), test the BIM tools as much as possible, and report any bug you find on the FreeCAD issues tracker. To not create additional work for the developers, though, make sure:
Translating can be done by anybody, jsut head to https://crowdin.com/project/freecad, create yourself an account and start translating! Concretedog wrote a good explanation of how everything works on the FreeCAD blog.
Update 23 from https://yorik.uncreated.net/blog/2024-009-frreecad-news-23
A new BIM Views tool
The BIM Views panel is a handy task panel to see a summary of your model, instead of the full tree. The basic idea of it is to offer a good context view of your model: What is the structure of your model, and where you are currently working. You can switch the BIM Views panel on/off with the corresponding button on the status bar.
I have now finished the rework of the tool. It is still not merged in FreeCAD because FreeCAD is in feature freeze for the coming 1.0 release, but it will done as soon as we are out of it. It might sound disappointing not to have this in 1.0, but we have to put the limit somewhere, otherwise the release never happens, someone always has an interesting new feature to add. Also, this is still rough from the code oven and needs testing.
If you want to test for yourself already, though, check the pull request.
The general idea here is twofold: One part is to allow to more easily "switch" between one context and another, for example between different levels of a building, or between the model and a 2D view. Another part is to help streamlining the BIM Model -> Draft 2D view -> TechDraw page workflow.
2D views were usually done until now with a simple group. This still works, but we now have a new tool that uses a BuildingPart. This gives many additional advantages, such as automatic working plane, the ability to move the objects inside, and other interaction possibilities.
The following improvements have been added to the BIM Views panel:
Related, additional changes also occur in other objects/tools:
Update 24 from https://yorik.uncreated.net/blog/2024-010-freecad-news-24
Release 1.0
We are almost there. I talked quite a lot here already about FreeCAD 1.0 and what you can expect to find in it. Well, the community has been incredibly busy, and last tasks have now been done, last bugs have been squashed, latest translations are in, and release candidates are ready. Release candidates are 1.0 installers, but not the "official ones". They are there for you to test, and help us find last-minute bugs that have manage to pass under the radar.
Many people already started downloading and trying the RC builds, and we already received a fair amount of bug reports, and developers are fixing as fast as hell. Depending on how that process goes, we expect to have the final, official builds out in a couple of weeks.
People are also starting to use NativeIFC seriously, and I'm quite relieved pleased to say it seems to hold quite well so far.
I will of course also write something more official when the time has come, but in the meantime, if you have a moment to spare, please give the RC build a test spin!
Specific icons for NativeIFC objects
This is a trivial thing but also I think a welcome change from the old Arch/BIM objects: Up to now, all NativeIFC objects had the same icon. With this change, they will get a specific icon based on their IFC class. So if you change the class of an object from wall to beam, the icon will change too.
This wasn't something I wanted to do with the old Arch/BIM objects, because these objects all used a different "engine". So if you changed the IFC type of a wall to beam, it would export to IFC as a beam, but would still use the wall engine. So it made sense to keep the wall icon because it is an important information.
Now with NativeIFC, all objects use the same engine (IfcOpenShell, in fact). So the above is no longer valid, and it makes more sense for the icon to reflect the class.
This will be merged right after the 1.0 release, but in the meantime you can already test this pull request.
New example models
As I wrote earlier, the default, built-in Arch/BIM example that you get on the FreeCAD start page has already been changed to a more proper, standard BIM model (which is the one used in this course (in portuguese). However, it's a pity the old Arch detail example vanished, as I believe it's a really nice feature of FreeCAD over other BIM solutions, that by happily permitting mixing of 3D and 2D elements, it's a very good platform for detailing. So I rescued one of the old models we did at OpeningDetail and formatted as a new detail example. This will be added to FreeCAD right after the 1.0 release. As all OpeningDetail models, it relies a lot on parametricity, and all the descriptions are automatically generated from the materials. There is much more improvement to be done on that kind of workflow, though, hopefully this example will help sparking some new ideas.
Apart from that, the collection of BIM example models that is available via the Help menu in the BIM workbench got one addition, a project I've just been working on that was graciously donated by Luc Nelles Architectes, that contains the model plus a whole set of 2D drawings generated from it.
IfcOpenShell 0.8 support
IfcOpenShell, the IFC engine that supports IFC functionality in FreeCAD, is in constant evolution, and its next version, v0.8, is around the corner and already available on some platforms. I'm happy to report that FreeCAD will support it right from day one. This is still being worked on, but will be ready in the coming days, hopefully in time for the 1.0 release.
Update #25 from https://yorik.uncreated.net/blog/2024-011-freecad-news-25 :
These last weeks I've mostly been busy fixing a lot issues that have appeared after the recent BIM/NativeIFC merge, and I'm please to say things are pretty stable already for the forthcoming FreeCAD 1.0, and the NativeIFC system, although still new and somewhat fragile, is already pretty much usable.
Version 1.0 is around the corner, we have already issued a second release candidate which you are encouraged begged to try, and we still have a list of 11 blocking bugs we're trying to solve before we can release the final version. So hopefully we are very close now.
But I've also managed to advance on my own NativeIFC roadmap and we have a big chunk coming ahead, right after 1.0 is released:
IFC 2D support
The IFC format, as you know, is used primarily to exchange 3D models of buildings. However, there is a lot more in it, and Bonsai (ex-BlenderBIM) has already made a lot of development in that regard. Basically, it is possible to embed 2D drawings, such as plans and sections, complete with annotations and everything, inside an IFC model.
Well, I'm happy to report this is now working in FreeCAD as well. It is possible to open an IFC file issued by either Bonsai or FreeCAD, and view, edit and print the 2D drawings inside.
This is not 100% complete, mind you, so far we are just supporting in FreeCAD the same set of 2D entities as Bonsai: linework, hatches, texts, dimensions and view definitions (aka section planes in FreeCAD). So when opening such a file in FreeCAD, at the moment you still need to generate a 2D view from it. Basically it will still need some testing to get an idea of how we should do that automatically.
So for example, you take a small model like this (modelled in FreeCAD, opened in Blender + Bonsai):
In FreeCAD, you would just add a new group, then dimensions, texts, linework, and a section plane to that group. When dropping that group onto the IFC model, everything will hopefully "just work" and everything be embedded into the IFC file.
If you open such an IFC file in FreeCAD, being produced by FreeCAD like explained above or by Bonsai, you'll see the group containing a section plane and different annotations. You make a 2D view from the section plane, as usual, and you get something printable:
And if you open it in Bonsai you get exactly the same thing:
And from either Bonsai or FreeCAD it can be exported to SVG:
Of course rendering parameters (text size, dimension style, etc) still differ from Bonsai to FreeCAD. At the moment, I see this as not really a problem, with the same IFC file you just choose the app you prefer for output. But of course we will work further on supporting all this styling. Remember, as this is native IFC, nothing is lost, whether you edit the IFC file in FreeCAD or Bonsai.
The changes above are part of Pull Request #16629.
Better document production workflow
This is part of the larger BIM Views upgrade I talked about in an earlier post. The workflow for creating 2D drawings in the BIM workbench has been a bit streamlined and hopefully will feel more intuitive:
The typical workflow to create a 2D drawing now involves the following steps, and the buttons order reflects that:
Creating a section plane, and placing it correctly in the model. That's what we've been doing up to now.
Creating a drawing view. The drawing view is simply a BuildingPart that has been modified to be recognized as a 2D drawing (and stripped out of some attributes like level, height, etc). You could still use a standard group here, like we were doing in the past, but using a BuildingPart has a few additional advantages: It defines a working plane, you can move it and it will also move its contents, and it has a nice "title" that shows in the viewport. But fundamentally, the drawing view is just a container for the components of your 2d drawing.
Create a section view and if needed, a section cut from your section plane. Both tools produce a Shape2DView, but the first one in "solid" mode, which shows projected lines from what is viewed by the section plane, and the second one in "cut lines" mode, so it shows only the cut lines (the intersection between the section plane and the model). In plans and sections, you will want both, and give the section cut a bit thicker line width, in elevations you will typically only need the section view, as there is nothing to cut. Then, of course, you place both these objects, in the drawing view.
Create all needed annotations like dimensions, texts, 2D linework, etc... and add them to the drawing view.
Create a TechDraw page using the "page" button. Unlike the TechDraw buttons, this one will pop up a dialog to let you select a svg file to use as a template (and remember the last used template).
Once you have your drawing view and your page, select both and press the insert view button. This will create a TechDraw view on the page, showing the contents of your drawing view.
As explained last month, the BIM Views panel also now allows you to quickly switch between model view, drawing views and page views.
This will still need some tweaking and adjustment to make it really smooth, but I feel we are on the good path...
This is part of Pull Request #15836.
Update #26 from https://yorik.uncreated.net/blog/2024-013-freecad-news-26:
Release 1.0 RC4 candidate
FreeCAD release 1.0 is almost there, we are ironing out the few remaining issues, and there is a final release candidate out for you to test! If all goes well and no further major bugs are found, the final release is scheduled to happen next week. Expect announcements everywhere ;)
Project manager tool refactor
As part of my NativeIFC roadmap was the refactor of the BIM Project Manager tool. It now basically supports both non-IFC projects, like before, but also NativeIFC projects. In addition, you can now also use it to edit existing projects. This, however, only works with IFC projects, since for non-IFC projects, as otherwise the concept of a "project" does not really exist.
What you can now do with the project manager:
Setup classical (non-IFC) BIM projects, by defining site or building properties, the number of levels, etc. Once that is done, however, you cannot use the project manager to modify the different elements (site, building, levels...). You must modify these elements yourself.
Setup a hybrid (unlocked) IFC project. The options are the same as above, only the result will be a NativeIFC project with all the contents you defined in the manager.
Setup a locked NativeIFC project. Same as above, but the document starts locked
Edit a NativeIFC project: Either use the manager when working on a locked project, or, if this is an unlocked project, with the project selected. This is still a work in progress, though, so not every everything is already editable. Site and building data are, building outline items (rectangle, axes...) not yet.
I still see the project manager as a helper to start something structured for IFC, though, so I suppose editing it is less interesting, since once the project is started it is easy and more comfortable to edit the individual elements directly, rather than coming back to a setup screen. But future will tell us if people start using it for that purpose and if so it can be extended further.
Building structure elements now use the BuildingPart viewprovider
This is a simple but interesting change, building structure IFC elements such as IfcBuilding or IfcBuildingStorey now make use of the BuildingPart view provider. This is an interesting problem, because it allowed me to play with multiple inheritances (the view provider in this case inherits both from the IFC view provider and the BuildingPart view provider). The resutl is an object that has both the IFC aspect and behaviours (ex: drag-and-drop support) and the BuildingPart behaviours (ability to display a label ,etc).
This paves the way for further harmonizing of IFC and non-IFC BIM elements in FreeCAD, so both can look and behave the same.
This is part of this Pull Request which is still int he queue for post-1.0 merges.
BTW, FreeCAD 1.0 is released! https://blog.freecad.org/2024/11/19/freecad-version-1-0-released/
News 27 from https://yorik.uncreated.net/blog/2024-014-freecad-news-27 :
FreeCAD 1.0 is released!
This is certainly old news for you by now :) However, if you want more about it, read on! First things first though:
Download it right now from the Downloads page
Read the official blog post (with an intro from your truly)
See also the awesome blog post about it at LibreArts
Read the full release notes for all the details
This 1.0 release is something the FreeCAD community has been working on for many years. We always had a clear vision of what the mythical 1.0 number would mean to us: Not something "stable" (that does not mean much) or "ready for professional use" (FreeCAD has been ready for professional use for years), rather it meant that it has the features set we thought was needed.
Over the years, that features set got more and more complete, until we were left with two missing pieces: A solution for what we call "the toponaming problem", and a built-in assembly workbench. I talked a lot about these already so I won't repeat it here.
Basically, this 1.0 number is a present from ourselves to ourselves. It's the FreeCAD 1.0 we wanted, and we're all pretty proud! We hope you'll like it too!
Of course, many new features have landed there so there is some work to do along the road: The Toponaming mitigation system is in place but it still needs some more implementation work and better algorithms to detect/match subshapes, and the assembly workbench is still very fresh and will need a lot of user input to get better. The materials system is also very new and not fully used everywhere as it should. But that's the fate of free and opens-source software, it's never finished, it is always a work in progress. So, expect more work, more progress, more features soon!
In the meantime, here are I think the key points of this 1.0 release regarding BIM:
Arch, BIM and NativeIFC are merged: No more need to install anything, a default FreeCAD install is now ready for BIM by default! You now have only one "BIM" workbench (all the Arch tools are still there in it, though). The NativeIFC functionality is also included in it, controlling NativeIFC mode is basically now transparently done by loading an IFC file or using the "IFC lock" button on the status bar.
Better general Draft visual system: The Draft grid and working plane now behave much better, remember which view they are attached to, and overall provide a much more solid base to draw 2D shapes and BIM objects on.
New unified themes and better UI: We got rid of most of the old css-based themes (still installable as an addon, though), and FreeCAD now ships with two basic themes, a dark one and a light one. These themes have received a lot of work and it really makes the whole FreeCAD experience a lot nicer. There are upgrade almost everywhere in the UI though, maybe the most eye-catching one is the detachable, overlay panels, that you can keep on top of the 3D view.
New materials system: It's not used by BIM yet, mind you, but will soon. FreeCAD now has an unified materials system, that covers everything from object appearance, physical properties, rendering, custom properties and everything.
Many new TechDraw tools: It becomes more and more possible to do a large part of the annotation work directly in TechDraw. Maybe soon we'll be able to propose a fully TechDraw-based workflow for CAD/BIM 2D sheet work?
There is much, much more under the hood, be sure to check the release notes!
The screenshot above shows the new Assembly workbench, and many new UI features such as overlay panels and tabs-like workbenches selector
Better properties and property sets support in NativeIFC
The NativeIFC system already supported properties and property sets: On double-clicking an object to expand it, its properties were already fetched, and displayed among the FreeCAD properties. Changing any of the values of these properties already correctly reflected in the IFC file.
Now with this pull request things will go a step further:
There is a new set of buttons under the FreeCAD properties editor: One to add a new property to an existing or new property set, and one to add a default property set.
The "add new property" button allows you to set the IFC property type. In the FreeCAD property editor, though, it is converted to one of the matching FreeCAD property type (ex: IfcInteger is shown as a FreeCAD integer property, IfcLabel is shown as a FreeCAD text property, etc.) This conversion is only visual, though, as the property remembers its IFC property type.
You can also add custom properties the "FreeCAD standard" way, by right-clicking the property tree and choosing "add property". But doing that way, you can choose a FreeCAD property type and not an IFC property type, and the conversion will be done automatically. A csv file included in FreeCAD defines which FreeCAD property type must be converted to which IFC type and vice-versa.
The IFC properties manager tool has been upgraded to support NativeIFC objects too, so you can still use it within IFC projects.
That is great news indeed! Congratulations on your work and everyone envolved!