BIM/Arch development news articles from Yorik's blog

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

Cross-posting from https://yorik.uncreated.net/blog/2023-0 ... ad-weekly9
  • NativeIFC: Default project structure: When you create a new project from scratch using the BIM Project tool, you will now see a dialog asking if you also wish to create a default project structure (Site, Building and Storey) under it. Note that this is not strictly mandatory by the IFC specs, you can very well have a flat file where all objects are simply related to a (mandatory) IfcProject. However, this site -> building -> storey structure is considered by many BIM applications as a standard. Your choice! ;) commit
  • NativeIFC: Better attributes handling: I reenabled the display of non-link attributes (those that don’t link to other IFC entities) by default when importing a file, as it seems to me they cannot change the geommetry or affect other objects so they should be safe for now, but this needs to be explored further. The “Description” property contents will also now show in the “Descriptipn” column of the FreeCAD tree view. commit
  • NativeIFC: Support for IfcSpaces: Spaces are now handled, displayed in the tre view when importing the project structure or expanding the children of an object. You can also add objects to an IfcSpace. The shape of IfcSpaces is shown in wireframe mode in the 3D view when the shape is loaded. In coin mode, you don’t see anything in the 3D view (for now… better ideas are welcome). commit
  • NativeIFC: Loading of orphan objects: An IFC file might contain objects that are not related to an IFC project. This is not standard, but it is still used around and might even actually be a useful thing, for example in Work-In-Progress files where it was not clear to the author what would become of a certain object. In the import dialog, there is now an option to import these “orphan” objects. They will be placed into a special group under the project object. This feature is not complete yet, because we still need to permit people to add their own objects to that group. commit - issue
  • NativeIFC: First steps towards geometry edition: This is probably the most exciting feature of the lot: The ability to edit IFC objects. This is still an experiment to see if this is a valid path to follow, but it’s proving really interesting so far. Basically, objects gained a new “expand geometry properties” right-click menu option. When that option is clicked, a new “Geometry” property group is created, and a few properties are added to it tha allow to edit the geometry. So far, you can edit the extrusion depth and direction of extruded objects, and length and width of their profile, if that profile is a rectangle. This works really well for Arch walls and structures (rectangular beams and columns). I’ll add more types on the way. There is more to iron out too, such as updating the object history. And later on, of course, we should integrate all this in an edit mode and implement tools to edit these values graphically. But I think this is a pretty interesting start. commit
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: BIM/Arch development news articles from Yorik's blog

Post by paullee »

yorik wrote: Fri Apr 28, 2023 8:51 am Yes, sorry, I forgot to mention it in the post... You need a fresh new version of FreeCAD with this patch in: https://github.com/FreeCAD/FreeCAD/pull/9304
I see, thanks !

Time to download the latest AppImage + update NativeIFC :D
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

Updates of this week: https://yorik.uncreated.net/blog/2023-0 ... d-weekly10
  • 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
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

Updates of this week from https://yorik.uncreated.net/blog/2023-0 ... d-weekly11
  • NativeIFC: Show geometry tree: Importer IFC objects now have a new “Show geometry tree” context menu option. This option pops up a dialog window that shows the geometry decomposition of that object. This has no direct utility when you are modelling, but can be very useful for debugging, and also to learn the internals of how IFC objects are constructed. You can also of course use this from Python. commit
Image
  • NativeIFC: Expose IFC property sets: You can now right-click any IFC object, and choose the new “Expand IFC property sets” option. Alternatively, you can also mark the “load property sets” option on the import dialog. When choosing that option, property sets attached to an IFC object appear in the properties panel of the object. At the moment, you can change the value of a property, which will correctly change the IFC file. However, the owner history of that object is not changed, I’m not sure it needs to, and you still cannot add new properties or new property sets. I’m not too sure how to handle this yet, as we might want to allow adding or even bulk-adding default psets like Pset_WallCommon automatically. I guess we’ll go step by step and first allow to add new properties ;) commit
Image
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: BIM/Arch development news articles from Yorik's blog

Post by paullee »

Great, work as advertised :D
Screenshot from 2023-05-16 01-33-16.png
Screenshot from 2023-05-16 01-33-16.png (221.5 KiB) Viewed 5068 times
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

Updates of this week from https://yorik.uncreated.net/blog/2023-0 ... d-weekly12
  • FreeCAD: release 0.21: As you might have seen in the mass media on social networks, we are preparing a new release of FreeCAD, which will be labeled 0.21. Hopefully, that’s the last one before the big 1.0. We wanted this one to be 1.0 already, but it’s better to do this the right way and given things the time they need than trying to stick to a predefined plan. After this 0.21 release, we will start merging toponaming code that can affect FreeCAD performance too, so it also makes sense to have a stable version now. The release date will depend on many factors, but we estimate it should be ready in about one month from now. announcement - help us!
  • NativeIFC: support for doors and windows: You can now create windows and doors from scratch in FreeCAD and add them to a NativeIFC project. The workflow is the same as other NativeIFC-ready objects, you create a window or a door using usual BIM or Arch tools, then you drag and drop it onto a wall. Simple as that! An opening will be generated automatically and the necessary relationships added to the IFC document. If you use other tools than Arch/BIM to model your window, make sure it has a “Subvolume” property pointing to a shape object that defines the opening volume otherwise no opening will be created in the host object. commit
  • NativeIFC: editing openings: When expanding individual IFC objects, windows and doors are shown embedded into their parent object (typically a wall). When expanding the children of that wall, both the opening element (which creates the “subtraction” in the wall) and the window or door that fits ito it get revealed. So we now have a possibility to edit the opening too, by moving it together with the window, or changing its extrusion parameters if it is extruded. commit
  • FreeCAD: Misc fixes: I also did a couple more BIM-related fixes in FreeCAD:
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: BIM/Arch development news articles from Yorik's blog

Post by paullee »

yorik wrote: Fri Apr 28, 2023 12:01 pm
  • NativeIFC: Default project structure: When you create a new project from scratch using the BIM Project tool, you will now see a dialog asking if you also wish to create a default project structure (Site, Building and Storey) under it. Note that this is not strictly mandatory by the IFC specs, you can very well have a flat file where all objects are simply related to a (mandatory) IfcProject. However, this site -> building -> storey structure is considered by many BIM applications as a standard. Your choice! ;) commit
https://github.com/yorikvanhavre/FreeCA ... c-document
reads -

"Use the Project tool from the BIM workbench. When the NativeIFC add-on is installed, the Project tool detects it (its toolbar icon will have the purple IFC logo displayed on top, so you can check if this is enabled), and produce a NativeIFC-ready project object."

I see there are IFC Site, Building, and Floor objects. What is the difference with the one without NativeIFC ?

No separate button to create these IFC Site, Building, and Floor objects?

Thanks.
Screenshot from 2023-05-26 14-55-11.png
Screenshot from 2023-05-26 14-55-11.png (18.14 KiB) Viewed 4816 times
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

You just need to drag and drop one of these new objects into an IFC project (or into a member of an IFC project).

Of course later on we could do that automatically, the same way as PartDesign, have an IFC project marked as "active", and automatically add the new objects to it. But this needs more thinking, because for ex. if you add a wall to an active IFC project, we need to make sure it goes under a storey and not directly under the project
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: BIM/Arch development news articles from Yorik's blog

Post by paullee »

I see now :)

E.g. once the Arch Site is dropped into the IFC Project, it is transformed into an IFC Site object.

It seems most Arch Site attributes are removed then (and I like its icon) - so supposedly it does not works like the Arch Site anymore right?
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: BIM/Arch development news articles from Yorik's blog

Post by yorik »

Hmm normally all properties that are currently exported to IFC are supported (under the hood, when dropping an object under a NativeIFC project, it performs an Arch IFC export of that object). What attributes are removed?

Indeed it does not work like an Arch site. That is because once an object is a NativeIFC, it takes it shape fully from the IFC project, which becomes the Single Source of Truth. So specific Arch behaviours are not available any more. But I'm still looking at it, there might be a way to "combine" both...
Post Reply