FreeCAD BIM weekly update 10

Hi all!

Here is the tenth weekly update showing what I am doing this week with FreeCAD, specifically on the BIM and NativeIFC fronts. Little time to work on FreeCAD this week, but I managed to squeeze a few things in:

  • NativeIFC: Fixed placements: Placements were still not translating right between FreeCAD and IfcOpenshell, mainly because they use different types of matrixes at different points, and I got fooled into trying to find a problem that was not there. It turns out that you can simply give IfcOpenShell a FreeCAD matrix, without any transformation needed. So i can stop reading this complicated explanation luckily commit

  • NativeIFC: Edition of extrusions of polylines: Last week I started implementing a system to be able to edit the geometry of objects. I worked further on this and implemented properties for theeextrusion of polylines. I think this system can work well, and it has many advantages: It simplifies the tree representation a lot (no more additional object to represent base geometry), and splits the difficulty in two: one half is to translate the inner geometry into properties, and the next one will be implement UI edition tools. Which will be much easier because all they will have to do is represent the values of these properties on screen. commit

  • NativeIFC: Removed group extension: Extensions are a powerful system in FreeCAD where an object can inherit a whole bunch of functionality of another object all at once. For example, the Group extension allows any object to behave like a group (with support for drag and drop and everything). The IFC objects used up to now the group extension. However, there are several problems with this, namely when hiding/showing individual objects. Since we already reimplement most of the group functionality anyway, for example drag & dropping, because we need to do additional tasks there, there was no more advantage to use the extension, and it has now be removed. There is still one problem that I thought was coming from the extension but it is not: when an object has no shape but has a group property, a coin representation is built automatically from its children. This is annoying when we want an object to specifically have noerepresentation at all, such as an IfcBuildingStorey. I hav added a workaround, which is to give these objects a "dummy" shape (a 1mmx1mm cube) so they don't create aedefault representation anymore, but that's something we probably need to change at FreeCAD level. commit

  • FreeCAD: Researched Appimage packaging: Since the next 0.21 release has been announced, we decided to try to use the opportunity to documwnt better all the steps needed to produce a FreeCAD release, so it can be petter streamlined next times, and more people can learn and take part in it. The packages that the FreeCAD team produced are the major part of that process. At the moment, they are automatically produced from the Conda build platform. However, we should also be able to produce these packages locally, without the platform. I'm researching the Linux part now, how we can do that manually.

  • FreeCAD: Google Summer of Code: This year, FreeCAD is participating on its own to the Google Summer of Code program, which funds students to work on specific opwn-souroe projects. The selected students have been announced, and surprise, we will have no less than four students working on FreeCAD this year! Discover the projects here

That's it for this week! As always, thanks to everybody who sponsors me on Patreon, LiberaPay or GitHub!