yorik wrote: ↑Fri Mar 10, 2023 11:47 am
[*]NativeIFC: Late loading of coin representation: When loading an IFC file, besides “Full shape” and “Coin representation only”, you can now choose “No representation”. This will load the entire IFC document without rendering anything in the 3D view. This turns the loading of huge files very fast. You can still explore the document structure, and choose to render anything you need later, by right-clicking an object and choosing “Load representation”. commit
It is really fast ! On my 10 years old i3, it loads IFC Schependomlaan.ifc in 5 s
0:05 - No Representation (a cube appear )
0:27 - Coin Representation
1:09 - Full Shape
Screenshot from 2023-03-11 09-05-13.png (175.23 KiB) Viewed 857 times
Screenshot from 2023-03-11 09-06-27.png (212.54 KiB) Viewed 857 times
Screenshot from 2023-03-11 09-08-54.png (211.04 KiB) Viewed 857 times
Here goes our fourth weekly update, showing what I have been doing this week with FreeCAD, specifically on the BIM and NativeIFC fronts. Here is what we have this week:
NativeIFC: Ability to create an IFC doc from scratch: For now, it’s available from Python only. The idea I have with the NativeIFC addon is not to have any UI tools on its own, but rather modify progressively all tools of the BIM workbench to work with NativeIFC. So the idea here is to have the Project tool handle this. But I’m still not 100% sure how to integrate that seamlessly and meaningfully, so for now this is not available via the UI. To test from Python, just run import ifc_tools; ifc_tools.create_document(FreeCAD.ActiveDocument). commit
NativeIFC: Tested workflow to create 2D views: I tested a bit how easy it is to generate 2D views from a NativeIFC file. Basically it works out of the box, as long as the objects have their shapes loaded. More work is needed, though, to handle cases such as container objects (need to include subobjects), autoload shapes when needed, or handle materials for the “Arch Fuse” property.
FreeCAD: Fixed DWG export output message: There is now a more meaningful message when a valid DWG exporter is not found PR
NativeIFC: Documentation: I started writing documentaiton for the NativeIFC addon. So far it’s found on the NativeIFC README page but the idea is of course to elaborate and detail it further and move it to a more appropriate place later on.
NativeIFC: Handle change of properties: Each IFC type has a different set of attributes. Up to now, when you changed the IFC class of an object, the attributes were not rebuilt. This is now solved. commit
Time for our fifth weekly update, showing what I have been doing this week with FreeCAD, specifically on the BIM and NativeIFC fronts. No new features this week but a lot of research and perparation:
NativeIFC: Exploring BBIM 2D output: One of the big stones in our shoes in a BIM workflow in FreeCAD, is the long time it takes for FreeCAD’s - actually OpenCasCade’s - HLR (Hidden Line Removal) algorithm to generate a 2D view of a model. BlenderBIM features a very fast 2D representation system, that is entirely done with IfcOpenShell. I am exploring how it works, and how it could be used in FreeCAD in place of the OpenCasCade algorithm. issue
NativeIFC: Enabled NativeIFC in BIM project tool: One of the original ideas of the NativeIFC mdodule is to not provide its own tools but rather integrate in the current FreeCAD BIM workflow. Since last week I implemented a Python method to create an IFC document from scratch, I now tied it to the BIM Workbench, as a proof of concept. Now, in the BIM workbench, if NativeIFC is installed, the Project tool will now create a NativeIFC project instead of the usual Arch Project. You will notice that the icon has an IFC overlay, to indicate that command is NativeIFC-enabled. Is it a good way forward? Tell me! commit
NativeIFC: Explored schema change: IfcOpenShell allows to change the schema of a file, currently only between IFC2x3 and IFC4. I am exploring how to integrate that within NativeIFC IFC documents. issue - branch
BIM: Prepared removal of units selector: A global, FreeCAD-wide units selector in the status bar has recently landed in FreeCAD’s master repo, turning the units selector in BIM obsolete. I prepared a commit to remove it, that will be merged once the main feature has arived to a stable release. PR
NativeIFC: Started translating BIM/FreeCAD objects to NativeIFC: Since the creation of a new IFC document works very well, it’s now time to attack other kinds of objects. Since we already have a good workflow in BIM, a first way of doing it is pretty straightforward and obvious: We let people create normal, usual BIM objects, then we turn them into IFC objects, and integrate them to an IFC document. Most of the work is there already, as we can use our current IFC exporter to convert BIM objects (or any other FreeCAD object) to IFC. So I started to work on a simple structure that takes an object, “ifcize” it, and adds it to a given IFC document. This should get us pretty far already, and enabling NativeIFC for existing BIM tools should be just a matter of adding one line that ifcizes the object after it’s created. Later on, the ifcizing system can also be used in drag and drop operations. And even later on, we can begin to think if any of those BIM tools needs to be adapted any further.
Thanks for all the great work @yorik ! Always a pleasure to see the progress in the BIM workbench.
After the last BIM Update I just installed today, the Manage Project Icon of the Manage-Tools toolbar in BIM was gone. Is the BIM Project dialog/functionality (https://wiki.freecad.org/index.php?title=BIM_Project) gone for the moment, or has it gone lost accidentially?
Glovs wrote: ↑Sun Mar 26, 2023 3:43 pm
After the last BIM Update I just installed today, the Manage Project Icon Image of the Manage-Tools toolbar in BIM was gone. Is the BIM Project dialog/functionality (https://wiki.freecad.org/index.php?title=BIM_Project) gone for the moment, or has it gone lost accidentially?
Oh yes, sorry I forgot to mention this: I removed it (temporarily, the code is still there) with the idea to integrate it better with the project tool. Basically, you should be able to double-click the project object anytime and be able to make all that setup there.
Were you or anyone else using that project setup tool frequently? I had the impression nobody used it
I could restore it until we have something better in place..
yorik wrote: ↑Tue Mar 28, 2023 8:19 amWere you or anyone else using that project setup tool frequently? I had the impression nobody used it
Yeah, I definitely used it - i think, the wizard kind of approach is a great way to get up to speed very fast, giving you the layers and axes you need in a convenient and quick way. Definitely like it
Also think its a good way for ppl getting their first touch to BIM, having kind of a nice setup to start and orient themselves with. It also helps you when trying out a few small, new approaches. It quickly gives you a setup to work with. The Manage Project Wizard is definitely a "thumbs up"!
yorik wrote: ↑Tue Mar 28, 2023 8:19 amI could restore it until we have something better in place..
Think thats a good idea - would definitely apreciate and use it. At least until there's another entry point to that
Time passes, and we are here already at our sixth weekly update showing what I have been doing this week with FreeCAD, specifically on the BIM and NativeIFC fronts. Much of the stuff I was working on last week is now ready:
NativeIFC: ifcization: The NativeIFC toolbox now possess a pretty important tool that will be used everywhere: an ifc_tools.aggregate(object, parent) function. It takes any kind of FreeCAD object as a first argument, and aggregates it to whatever NativeIFC object. The base object will be converted to IFC and added to the IFC document the parent belongs to. I just tested this with simple objects likes walls and cubes so far, but the idea is to support each and every BIM or FreeCAD object. So the idea here is that later on all BIM tools will ifcize their production if they are in an NativeIFC environment. Under the hood, the ifcization currently relies on the current Arch IFC export structure, so expect the exact same type of object to be created in your IFC file. We can see later on if this needs to be changed. commit
NativeIFC: schema switching: IFC document objects now have a “Schema” property which is set to the schema of the file when loading. It allows you to change the schema to any other supported by your version of ifcopenshell. A word of warning, though, this is done through some deep ifcopenshell magic, and I think it has not been extensively tested, and as far as I did test gives some strange and puzzling results. The functionality is there in FreeCAD, but use it at your own risk If you use this through the GUI, though, a warning message will be shown before doing it. commit
NativeIFC: Talk with Moult: I also had a great talk with Dion Moult, the main developer of BlenderBIM. We reviewed the FreeCAD NativeIFC code together, and I got a load of hints and ideas. Dion has an incredible understanding of the IFC file format, and it is always so refreshing when he says “remove all that crap, you don’t need it” The more I work with IFC, the more I realize how actually flexible and simple it can be, how the legendary awful load of complexity you find in many IFC files is actually pretty bad exporting by many BIM applications. If you ever worked, at the dawn of the internet, with HTML files generated by MS Word, you’ll know what I’m talking about It’s not entirely false to say those apps don´t give a word censored, pardon the poor wording, about the quality of the IFC contents they produce… Anyway, don’t let me rant more. I got many clues to remove unnecessary stuff, use more built-in ifcopenshell functionality, and later on transfer some parts of the NativeIFC addon upstream to ifcopenshell, which is thrilling as it will give ifcopenshell natively more ability to work with FreeCAD.
NativeIFC: More unit tests: Unit tests now test creating a full IFC file from scratch, usinfg the aggregate tool above. This will ensure that the whole process is always well tuned and functional. commit
NativeIFC: Diff tool: When an IFC project is marked as modified with a red dot, a “View diff…” right-click context menu option becomes available, which opens a dialog window that shows the diff between the saved version of the IFC document and the unsaved version, the one that is currently being edited. Later on we can think of more fancy things, such as being able to hover or click the lines and highlight the corresponding object in the FreeCAD 3D view. commit