FreeCAD BIM development news - March 2019

Hi all!

Time flew this month, and there have been quite heavy groundwork on  FreeCAD itself, as we have 0.18 release happening now! Everything is set  up and ready already, but we're struggling to make the packages for all  platforms. As you may know if you follow the forum discussion, this release supports both Python2 and Python3, and it's giving us some headache to make it smoothly working on all platforms.

So, just a little bit more patience, and thanks to the hard work of  our FreeCAD package heroes, we'll have everything sorted soon. I'll do  an official announcement here so you don't loose a minute!

In the meantime, since the main FreeCAD repo is now out of feature  freeze, we've been busy merging the long queue of Pull Requests that  were waiting. It's not done yet but most of it is merged. Expect some  instability if you are compiling FreeCAD yourself from the master  branch, but that is normal and should get better soon too.

Because of this groundwork and my architect life that got strangely  busy for this time of the year (the carnival month uses to be quiet in  Brazil...), I haven't been able to do as much as I hoped on the BIM  front, but hopefully everything will be back on track now. Nevertheless,  we've got hopefully enough here to keep fed for the month!

The videos

I worked further on the Barcelona pavilion series, and we're at the  twelfth video already! Here there are (the first three are in the previous post), and you can get all of them at once from this youtube channel

The series is not finished, next episodes will show how to insert  furniture/equipment, export the model to IFC for opening in other BIM  applications, produce 2D drawings (plans and sections), and extract  quantities. If you think of some specific aspect I haven't covered and  that would be nice to add, tell me!

BIM / Arch refactoring

For the rest, I have been mostly busy starting to merge some of the  features I've been developing in the BIM workbench recently, to the Arch  workbench. As you know, the plan behind the BIM workbench is for it to  act as a "user-friendly" layer on top of other workbenches (namely  Arch), but not to provide specific tools itself. That is, all its  important functionality should also be available in Arch.

Because of the feature freeze in the last months, however, I've added  many things directly to the BIM workbench, which appear to be working  quite well, so it's now time to transfer them back to Arch, so they are  available to both workbenches.

As I mentioned here another time, we are progressively decoupling the  geometry construction tools, in Arch, from their BIM semantics. This is  something that annoys us all in many other BIM applications, that you  must use the wall tool to create walls. Why can't you just use a box, or  import an object from another application?

So in Arch, that's exactly what we're planning to end with: You will  no more have a wall tool, a window tool, etc. You'll have geometry  constructors such as "linear extrusion" (the current wall tool) or  "embeddable object" (the current window tool) (we're not sure about the  wording of all this yet). After you created such object, you decide if  it is a wall or a window simply by setting its type. And that's it. You  can use any of the geometry constructors or just any other FreeCAD tool  or even any object imported from another application, and turn them into  a wall, a column, a chair... simply by setting their type property.

And that's exactly how the IFC schema is designed too. So I think  we'll be reaching a level of compliance rarely seen in the BIM world...

Of course, this can make many people used to other BIM applications  feel totally lost. Most of them will still want a wall tool, a window  tool, etc. That's exactly where the BIM workbench comes in. It basically  provides you with the "BIM sauce" around this. You will still have a  wall tool there, and it will basically be a thin layer on top of the  Arch linear extrusion tool, possibly with a couple of handy presets. For  the average BIM user, this all will be fully transparent, you'll still  build your walls by pressing a wall button.

However, this is mostly cosmetic. You'll still have all the power  beneath, and be able to change the type of your wall to anything you  want afterwards.

IFC compliance changes

Thanks to a big refactoring by Dion Moult, that has just been merged,  when you change the IFC type of an object, several additional  properties needed by that type in IFC are now  automatically added or  removed. For example, if you change the type to "Column", a "Column  type" property gets added.

Although I haven't met an IFC-capable application that requires these  to be present, it raises the level of compliance of the IFC files  exported by FreeCAD even more. Each month we have less and less problems  with opening FreeCAD-generated files in other applications, and  although FreeCAD will likely never get a proper IFC compliance  certification, because it costs a lot of money that an open-source  project like FreeCAD doesn't have (and honestly I don't really see any  big advantage), I dare to say we begin to have a VERY compliant IFC  workflow.

Another thing to note, the latest 0.6 version of IfcOpenShell,  which is not released yet but that I'm currently using, supports  several versions of the schema at the same time (currently IFC2X3 and  IFC4). Our changes in FreeCAD follow the same line, so you'll soon be  able to switch at will between the two (and future ones when they come)

BIM Diff tool

The diff tool I had been working on in the past months has now been  consolidated into a bona fide tool in the BIM workbench, you'll find it  under the Utils menu.


The work I have been doing on the BIMBots plugin  is basically finished, it just waits for some upcoming changes to the  BIMServer API to be declared ready and added to the FreeCAD add-ons  manager. You can already try it by installing it manually (instructions  and documentation available in the repo)

Coil icons

Not really BIM-related but interesting nevertheless, have a look at this gorgeous icon theme being worked on by Blender veteran 1D_Inc, soon available at your fingertips!

Draft changes

Several changes are also coming to the Draft workbench, the Edit tool  is currently being upgraded and several of its long-time bugs fixed,  the 3-point arc tool from the BIM workbench has been transferred to  Draft, and we have many more ideas starting to get shape.

It has been announced last month the the free-to-use 2D CAD application DraftSight  would no longer be free by the end of this year. This might appear as a  sad news at first, because DraftSight is often referred as the only  free, professional 2D CAD application with good DWG support running on  Windows, Mac and Linux out there, but I believe it is actually a good  thing for the open-source world. First, our CAD friend project LibreCAD  now has DWG support, and it is working already and quite promising, and  the DraftSight move can bring a lot of attention to LibreCAD, but also  because it will also bring some attention to FreeCAD's own 2D tools.

Of course, FreeCAD is not made to handle the thousands of small 2D  objects that 2D applications work with, and will probably never be. But I  don't see this really as a big problem. Probably, we could divide the  2D CAD users between who is doing heavy 2D CAD, who will still need a  dedicated 2D tool like LibreCAD, and others who sporadically need to do  some 2D, for example during a 3D modelling process. For them, the 2D  tools of FreeCAD could work perfectly.

Arch tools remember their settings

One more step in the direction of having intelligent "defaults", Arch  tools like Wall or Structure or Window now remember their last  settings. So if you draw a 15 cm-wide wall, the next time you use the  wall tool, it will start with its width set to 15 cm. So progressively  you won't need to use the Arch preferences's "defaults" page anymore,  defaults will be set transparently.

I've also started implementing presets for the wall tool (which  basically use Arch Multi-Materials to define wall compositions), so  we're on our way to a decent, flexible, easy to use wall tool.

Last step missing will be to have a proper system to handle wall  joining. There, unfortunately, I still don't have a clear idea to go  forward. Should it be handled at document level, outside of the wall  objects? Should a wall keep a list of its "siblings"? More  experimentation is needed.

Wall blocks as strips

And finally a small improvement, wall blocks feature doesn't need to  have both block width and block height values set anymore. So you can  now use it to make "strips", vertical or horizontal. This can be handy,  for example, to represent wood sidings.

That's it for this month, prepare for more serious stuff next month, as we go back into full speed development!



Tier Benefits
Recent Posts