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
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: FreeCAD posts from Yorik's blog

Post by Kunda1 »

I asked on the openstudio forums
https://unmethours.com/question/34913/a ... h-freecad/
Didn't get much love.
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
damian
Posts: 583
Joined: Sun May 31, 2015 6:16 pm

Re: FreeCAD posts from Yorik's blog

Post by damian »

Kunda1 wrote: Fri Nov 02, 2018 7:52 pm Didn't get much love.
not all sites are like freecad ...
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

FreeCAD BIM development news - May 2019

Post by yorik »

It's a pity I stopped cross-posting these BIM development news articles here, I know... :oops: Let's try to get back to it:

FreeCAD BIM development news - May 2019

Image

Hi friends,

A little bit late, but there is our monthly report showing what I (and, increasingly, others) have been doing regarding the development of BIM tools in FreeCAD. There is more to show this month, as FreeCAD 0.19 development is now back at full speed. We recently released another post-release fix of 0.18, named 0.18.2. If you are using the 0.18 stable version, have a look there and grab an update for you.

Or, if you like to live dangerously (it's actually not dangerously at all, development versions of FreeCAD are very stable), grab a 0.19 package!

As always, many, many thanks to everybody who helps me to spend more time coding for FreeCAD by donating to my Patreon or Liberapay or PayPal accounts, your sustained trust in all this is incredible!

So, let's go to the news:

The Barcelona pavillion video: TechDraw

I guess everybody was expecting this one a lot. No more waiting, here it is!

phpBB [video]


I guess we're almost at the end of what I planned to show in this Barcelona series, in the next one I'll show how to extract quantities from the model into a spreadsheet, and I guess we'll be done with it, unless there is something else you would like me to show. Tell me, if this is the case!

IFC Export as StandardCase

Image

Many of the very common IFC entities such as IfcWall, IfcBeam or IfcDoor also have a corresponding "Standard Case" entity: IfcWallStandardCase, IfcBeamStandardCase, and so on. The standard case version is a more strict version of its parent class. For example in the case of walls, the standard case wall is a wall that is made of one straight or curved segment, has constant thickness, upwards vertical extrusion direction, etc. In other words, a very simple piece of wall. This is useful so application know this is a very basic case, and might want to allow extra options.

In FreeCAD, you can decide that yourself, by setting the IFC type of your object to either "Wall" or "Wall Standard Case". But now, you can also turn an option in IFC export preferences, to automatically export types that have a Standard Case version as Standard Cases, when the required conditions are met.

So far this works for walls, beams, columns and slabs. I still need to figure out exactly how to evaluate the requirements for doors and windows.

Draft UI cleanup

Image

There were still many glitches and inconsistencies among the different Draft UI controls, as a legacy from the early times when the whole Draft UI could work as a simple toolbar. Although that mode is still available, the complexity of the different Draft tools makes it almost unusable now.

So most of the UI has now been cleaned of these old rules made to work in two different modes. The result of this is that the toolbar mode has become further unusable, but the default,Task Panel-based mode is now much cleaner and well organized.

Move, Wire, Wall and Structure tools to use line mode

Image

When drawing a line, the Draft UI was already showing you additional controls to draw your line segment not only by entering start and end points, but also by choosing an angle and entering a distance. These extra controls are now used in other tools that could benefit from such input, like the Move and Wire tools from Draft, and Wall and Structure tools in Arch.

BuildingParts can control visual aspects of their children

Image

The Draft VisGroup object behaves just like a Layer, as found in more traditional CAD applications: You can add objects to it, and control visual aspects such as line color, shape color and line thickness, of all child objects at once.

Now, the Building Part object also gained this capability. So you can also use a BuildingPart as a kind of layer.

By the way, we're having this interesting discussion about layers. While there is already a way to work with Draft VisGroup, that emulates layers perfectly, it currently conflicts with the groups structure. We will change that, so we can have at the same time, in the same model, a group-based structure and a layer-based structure. I think that will turn into something extremely powerful...

Working Plane from Section Plane

If you have a Section Plane selected, pressing the Working Plane button now allows to set the working plane to match the section plane.

Translation fixes and translation support in BIM

Image

One important thing that was on my TODO list before the 0.18 release, is to give a serious push to the translations support of FreeCAD. There are still many pieces of text here and there all over the application that are not translatable. This effort is now well underway, so we can hopefully have next releases perfectly translated.

Also, I added support for translation in the BIM workbench, and, since this is the first case, to the extents of my knowledge, of an external workbench being made translatable, I also documented the process so hopefully other external workbenches will be adapted as well in a near future.

BIM workbench is back to former icons organization

Image

A couple of months ago I started experimenting with a different organization of the BIM icons. Instead of having all the 3D tools together, I started splitting them between BIM and non-BIM and tried other kinds of grouping. The feedback of users was pretty cold, though, and after a while I also found that it actually made things more difficult to understand.

Also, the semantic changes we've recently brought in BIM tools make that difference much less important. as it is now very easy to change the IFC type of any object. So we really want an interface that says: Go ahead, model as you please, you can always worry about BIM later.

So now everything is back to the more classical setup like it was before: 2D tools, 3D tools, and modification tools.

Column, Beam and Slab tools

Image

In the BIM workbench, the Structure tool has now been split into 3: Column, Beam and Slab. Column and Beam are still the same Structure tool, the latter just starts already in beam drawing mode (where you can click to points to place a structural element between them). The Column tool is exactly the same as the Structure tool.

The Slab tool, at the moment, just lest you pick a face or closed profile and creates a slab from it.

This is part of our ongoing effort to "regroup" functionality into fewer, but more powerful tools in the Arch Workbench, but, on the contrary, enumerate them into separate uses in the BIM Workbench. The Arch Workbench should have few tools, the BIM Workbench should have many tools.

I thought the Column/Beam tools would be something for inexperienced users, while power-users would prefer the all-in-one version, but surprisingly I find myself preferring the Column/Beam version. The fact is, you already know, before starting the tool, if you are going to place a column or draw a beam. And they are really two very different design operations. You never really want to "draw" a column, you want to place it as a "finished" object. And, on the contrary, you usually don't want to just "place" a beam, you want to draw a beam from this point to that point. So in your mind these are very different operations, and it actually makes a lot of sense to have two buttons, it's actually one click less compared to the all-in-one tool.

These things teach you a lot about interface design...

Select Working Plane dialog improvements

Image

The Working Plane Selection button has been visually improved a lot by the general Draft UI redesign, but it has also gained more functionality. You can now set the snapping radius directly from that screen (you can also do that while drawing with keys [ and ]) and you can now select a face or 3 vertices after the button has been pressed.

This is something we're trying to spread all over FreeCAD, the bidirectional noun/verb selection. You can select the object you want to work with, then press the button indicating the operation you want to perform, or the contrary (press the tool button, then select the objects), it should all work just the same.

BIM Door tool

Image

Similarly to the Column/Beam tool, the Arch Window tool has been split between Window and Door in BIM. It is still the same tool, it just starts with different presets. Also, both modes remember the last used dimensions separately, so it is actually quite handy... Start in window mode, and you will start with your last used window preset and dimensions. Start in door mode, you will be using other preset and dimensions.

All these tools are also now remembering the last used settings (also across FreeCAD sessions), so this progressively turns the annoying task of setting defaults obsolete

New IFC explorer

Image

The Arch workbench already had a tool called IFC explorer, that allowed to browse the contents of an IFC file in a pure text-based window. It was basically just a little bit more convenient than opening an IFC file in a text editor, bu not very useful.

That tool has now been removed from Arch and added to BIM, because I think it will be much easier to maintain and extend it there.

It has also gained a lot of improvements: Several convenience buttons to open other IFC files without leaving the dialog, a proper tree view that gives you a better idea of the whole structure of the model, and panes that show attributes and properties of a selected element.

But that's not all, you can now also build a quick mesh view of the whole model in the FreeCAD 3D view (much faster than a full import), and also import only one selected object.

I plan to extend this much further, for ex. by highlighting the clicked object in the mesh view, so you would be able to click through the different objects, see where and what they are in the 3D model, and press the button to "fully" import them into the document, and perform a true interactive, selective import.

Image

That's it for this month, thanks for reading, I hope you enjoyed, don't hesitate to leave me some feedback anywhere you want, (the BIM thread on the FreeCAD forum is always a good choice).

Cheers

Yorik
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

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

Post by bernd »

wow!

Is the first picture an IFC-import or did you really model this building?
User avatar
bitacovir
Veteran
Posts: 1570
Joined: Sat Apr 19, 2014 6:23 am
Contact:

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

Post by bitacovir »

For me is always a pleasure to read these reports. I would recommend looking into the new Braves' system of rewards for people like Yorik and kkremitzki.
::bitacovir::
==================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)

Canal Youtube Grupo Telegram de FreeCAD Español

My personal web site
My GitHub repository
Mini Airflow Tunnel Project
Cyril
Posts: 133
Joined: Wed Aug 23, 2017 5:04 pm
Location: Geneva (Switzerland)
Contact:

Re: FreeCAD BIM development news - May 2019

Post by Cyril »

Thanks for this nice monthly news I was awaiting for :D. Sometimes I doubt my RSS feed is up to date when I don't see your article in it at the end of the month. :lol:
yorik wrote: Tue Jun 04, 2019 10:59 pm Many of the very common IFC entities such as IfcWall, IfcBeam or IfcDoor also have a corresponding "Standard Case" entity: IfcWallStandardCase, IfcBeamStandardCase, and so on. The standard case version is a more strict version of its parent class. For example in the case of walls, the standard case wall is a wall that is made of one straight or curved segment, has constant thickness, upwards vertical extrusion direction, etc. In other words, a very simple piece of wall. This is useful so application know this is a very basic case, and might want to allow extra options.

In FreeCAD, you can decide that yourself, by setting the IFC type of your object to either "Wall" or "Wall Standard Case". But now, you can also turn an option in IFC export preferences, to automatically export types that have a Standard Case version as Standard Cases, when the required conditions are met.

So far this works for walls, beams, columns and slabs. I still need to figure out exactly how to evaluate the requirements for doors and windows.
Just be aware that standard case are deprecated in IFC4
bitacovir wrote: Wed Jun 05, 2019 1:38 pm For me is always a pleasure to read these reports. I would recommend looking into the new Braves' system of rewards for people like Yorik and kkremitzki.
I understood that Brave reward works with ads. Did I understood badly ? You want to propose people to watch ads to reward them ? Please explain.

(If I didn't get your point at all just ignore following paragraph ;-)) If that's so I would recommend to not do it as in my opinion ads waste people's time which could be way much more valuable spent in other ways to contribute. There is a lot of space to improve how non coders/UI-UX designers/video-maker/documentation-contributors can contribute without money.
PS: Maybe this talk should be moved here : https://forum.freecadweb.org/viewtopic. ... 2242&hilit
I blog about HVAC / BIM / Energy : pythoncvc.net. If you like you can follow the RSS feed.
User avatar
bitacovir
Veteran
Posts: 1570
Joined: Sat Apr 19, 2014 6:23 am
Contact:

Re: FreeCAD BIM development news - May 2019

Post by bitacovir »

Cyril wrote: Wed Jun 05, 2019 6:20 pm I understood that Brave reward works with ads. Did I understood badly ? You want to propose people to watch ads to reward them ? Please explain.
Yes, your understanding is incomplete. The system is more than ads. People can pay directly to creators. I recommend looking for more information. There are several tutorials in the youtube about this system.
::bitacovir::
==================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)

Canal Youtube Grupo Telegram de FreeCAD Español

My personal web site
My GitHub repository
Mini Airflow Tunnel Project
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 »

Cyril wrote: Wed Jun 05, 2019 6:20 pm Just be aware that standard case are deprecated in IFC4
Funny, somehow I hadn't seen this... In any case it's optional, so easy to shut down
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-post from https://yorik.uncreated.net/blog/2019-062

FreeCAD BIM development news- June 2019

Image

Hi friends,

Here goes one more article showing what has been going on this month regarding the development of BIM features in FreeCAD. As usual, a big thank you to you who are helping this effort by sponsoring me on Patreon, Liberapay or Paypal, and also who has been contributing directly to the FreeCAD project on BountySource. We are in the process of building targets to be rewarded by that BountySource money, so hopefully soon that money will be put to good use.

So, here goes the meat of this month:

The Barcelona series video: Schedules and Reporting addon

This month's video shows how to use both the Arch Schedule tool and the Reporting addon to create schedules from your BIM model, and link these schedules to a spreadsheet application to build more complex sheets and reports.

phpBB [video]


Layers

Image

Minute of nostalgia. I know you liked the black background :)

The big feature of this month is a brand-new layers system in FreeCAD. There was already a tool in the Draft workbench called VisGroup, that was basically a Group object that could set visual aspects (line width, color,...) of its children. The problem was that, being a group, if you added an object to a layer, you removed it from any other group it belonged to.

So now the old VisGroup object has been discarded, and a new, proper Layer object has been created instead. It works basically like layers found in other CAD applications: It sets the color, line width, line style, face color and transparency of its children, and turning a layer on/off turns all its children on/off too.

Like Arch materials, layers live in a special "Layers" group inside your document.

The layers system is completely independent of the groups system, so you can have an object live in a group and also be part of a layer. You choose which system you prefer to use, or both, if you wish so.

You don't need to use layers for everything either, you can use them simply as a convenient way to easily turn a series of objects on/off. Layers have an **Override Children** property that, if turned off, won't propagate visual aspects like color or line width to their children.

In Draft, the VisGroup tool has been removed and replaced by the Layer tool, found under menu Draft -> Utils. It just creates a new layer.

Image

The **AutoGroup** feature, that I believe nobody ever used, found on the Draft toolbar, has been revamped into a layers selector. That is, you can now set the active layer from there, and all new Draft and Arch objects will be created in the active layer. This layer selector doesn't displays groups anymore by default, but there is a preference option under menu Edit -> Preferences -> Draft ->General to turn the old behaviour back on.

In the BIM workbench, a new **Layers Manager** tool has been added. As usual, it is in BIM only for testing and experimenting, as soon as it is stable enough it will be migrated to Draft. It works basically like any other Layer Manager usually found in CAD applications. You can change layers properties, add/remove layers, turn them on/off, isolate them, etc.

Image

Layers are still a very useful tool in many BIM applications ( In "some" of them that don't have layers I often miss them), and they are fully supported by the IFC standard, so this is definitely an important feature to have.

IFC support for it must still be implemented in FreeCAD, that will be done next. There is also still a small issue that if an object is not part of any group, adding it to a layer will make it disappear from the tree root. I'll try to find a way to solve that too.

Finer control over IFC structure export

Image

Under menu Edit -> Preferences -> Import/Export -> IFC you now have several options that control how much you want FreeCAD to add default Sites, Buildings and Storeys to your model when exporting it to IFC.

The IFC standard ask for at least one Building. But the default behaviour among other BIM applications is to always have at least one Site and one Building, and, in some cases, also at least one Storey (Revit, for example, doesn't allow objects to live outside of any level). By turning off some of these options in FreeCAD, you are now able to produce a file without adding default Storeys or Sites, or even a default Building.

The last option will host all objects of your model directly under the root IfcProject, which is technically allowed by the IFC standard, but not supported uniformly by all BIM applications (guess who is having problems with it...). You will get warned at export if you turned this option off and are producing a non-standard file.

The reason of all this is that by turning these options off, you are producing an IFC file that is more faithfully identical to your FreeCAD model, instead of adding "fakes" buildings and storeys in a model you designed without intent to have them. You are the boss, you decide what your model should and should not have. There are many cases where the traditional Site->Building->Storey model doesn't fit.

There is also an ongoing discussion about this on the BuildingSmart forums, and given the lack of enthusiasm of the big guys behind IFC to discuss possible paradigm changes, I am of the same opinion as Ryan, let's hack our way through it, with permission or without permission.

If FreeCAD can be used to demonstrate and possibly propagate things that are not part of the IFC standard but that we find appropriate, it can be a very good way to make these ideas known and adopted by others, and that's how things become standards.

This is of course fully opt-in, if you don't choose purposely to use these options you will still produce standard files as usual. We will of course never force anybody into IFC revolutionary activism ;) But the option is there...

Revamped addons manager

Image

Another big feature of this month is the new Addon Manager tool found under menu Tools, that allows you to install add-on (plug-in) workbenches and macros directly from within FreeCAD. It still works the same way as before, but has a series of visual improvements, the main one being to show a much better description of each addon, taken directly from the README.md file found on their Git repository.

This gives you a much better and more complete idea of what you are installing, what each workbench does, what is its state of development, etc. I also hope it will more and more make addon developers feel like first-class FreeCAD developers, and give them opportunities to showcase their baby more prominently.

If you have the *python-git* package installed (which is the case in our windows installer, on linux it is usually found in your packages manager on most distros), when starting the addon manager, it will also check for available updates for your installed addons and propose you to update them all at once.

This is not enabled by default yet, you need to turn that feature on using the **Configure** button.

Under the same configure button, you can now also add custom git repositories, which is not very useful at the moment (we add all workbenches we can find to the official list), but could become useful for example for company-managed FreeCAD deployments, or for testing purposes.

Levels manager integrated with views manager

Image

The BIM workbench had two different tools to manage **Building Parts**, which are used in FreeCAD to make buildings or levels/storeys, or any other "part of a building": A **Levels manager**, that you could use to add or remove levels to/from your project and bulk-set some of their properties like level or name, and a **Views manager**, that you could turn on/off by clicking a button in the status bar.

The Views manager offered a convenient place where all the objects that define views and/or working plane positions (Building Parts, Working Plane Proxies). You could simply double-click any of them to set yourself in the correct working plane (and view if defined), without the need to scroll through your entire model to locate them, then click the Working Plane button.

These two tools have now been merged into one, which still works like the old Views manager. But it has now gained several abilities from the levels manager. You can now easily add/remove objects from there, and bulk-turn them on or off or isolate them.

Clicking any object in the list selects it, double-clicking it sets the working plane to it, and, if a view angle was saved in it, and its "Restore view" property is turned on, the camera will also jump to the saved position.

This is all part of an ongoing effort to make it easier to work on larger BIM models in FreeCAD. You can now, for example, define a Building Part to represent a level (set its IFC type to "Building Storey"), place it correctly in your model (at the correct height), view it from the top and save the camera position, and you can now simply, by double-clicking it in the new Views manager, find yourself in the correct view, with the working plane correctly set, ready to work. Switching from one level to another is just one double-click away.

Interactive IFC import

Image

The **IFC explorer** tool of the BIM workbench (found under menu Utils) has also gained more functionality: If you enable mesh display, when you click on the different objects that are part of the model, they will be highlighted in the mesh display. The IFC explorer window is now also modal, so you can still manipulate and zoom the 3D view while it is open.

So now we have pretty much something like an interactive, or selective IFC import tool in FreeCAD. Fire the IFC explorer, load a file, display it, choose what to import, and click the import button to import only the selected pieces.

Swallowing gigantic IFC files in one go in FreeCAD (as well as any other BIM application, to tell the truth) is always a problem, so with this tool I hope we'll be able to more easily do things like create one file per level, which will be much more manageable (and works very well with the Arch Reference tool)

If you try this with large files (above 15,20Mb), be warned that this will all be pretty slow. There is still a lot of optimization needed...

Render workbench: Ground plane, image size and new templates

Image

There has been quite some time that I didn't work on the Render workbench, which doesn't mean it is forgotten.

The idea of the Render workbench is to remake a pure Python version of the built-in Raytracing workbench. The advantage is that it becomes much, much easier to add new features and support new renderers (see below).

The Render workbench was still lacking proper Python3 support, which is now done. I also added a couple of new features, that are available for all renderers, like an option to add an automatic ground plane when rendering, and properties to set the rendered image size (until now it was hard-coded in the template).

I also redid the templates bundled with the addon. Each renderer now has two templates: A standard one, which has no light defined, but uses skylight to illuminate the scene, giving a shadowless, neutral render aspect, and a sunlit one, which is the same but with a sunlight defined, giving nice shadows. The advantage is that all these templates can be used with scenes of any size, as they don't contain any object that has a specific position in space.

Cycles rendering

Image

I hope this won't provoke some apoplexy crises, but the Render workbench now supports Cycles, Blender's flagship renderer. Cycles can be compiled as standalone, and used outside of Blender, which is what we use in the Render workbench. It was surprisingly easy to adapt, thanks partly to the ease of adding new renderers to the Render workbench, but also due to the fact that the scene language is very similar to Appleseed.

Of course, you don't have all the control that you have when importing your FreeCAD document in Blender and rendering it from there, this is a much simpler thing, based on templates. No lights control or textures or anything. But I think it's already kind of cool :)

Offline Rendering Utils

Image

This is a commissioned work I have been doing this month, and that is now included in the FreeCAD source code. It is a series of utilities to ease the production of files such as OBJ, IFC, DAE, PNG or even FCStd files from a pure command-line environment, such as when running on a server.

It is already possible since the early beginnings to run FreeCAD in command-line mode, without its graphical interface. You can pilot it via Python, and do almost anything you can normally do via the GUI. Only problem, since all the visual part is not available in non-GUI mode, all visual aspects of objects such as their color, is also not available. That means you weren't able to produce colored files from the command-line mode.

The new OfflineRenderingUtils module adds a series of tools to overcome this limitation. When building your objects in command-line mode, you can now keep a dictionary of colors (you can also obtain it from an existing file), and use that dictionary when exporting.

That's it for this month, hope you liked, see you in July!
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

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

Post by bernd »

this all is pretty amazing stuff ... ATM the development speed of Arch and IFC is faster than my ability to test all this cool stuff ...
Post Reply