Aligning the FreeCAD UI with IFC nomenclature

This forum section is only for IFC-related issues
User avatar
Moult
Posts: 205
Joined: Sat Jan 05, 2019 11:46 am
Contact:

Aligning the FreeCAD UI with IFC nomenclature

Postby Moult » Sat Jan 12, 2019 11:17 pm

I am curious what the community's stance is on making FreeCAD let IFC take the lead on how to think about buildings. I'll give a few examples, and please let me know if I have missed something as I am brand new to FreeCAD:

- In FreeCAD, you create a slab by creating a Structure object. In IFC, you create an IfcSlab object. Should we therefore have a button specifically which creates an IfcSlab?
- In FreeCAD, you create a roof by creating a Roof object. In IFC, a roof is a type of IfcSlab, namely IfcSlab.ROOF. Should we therefore aim to eliminate the Roof FreeCAD button? From a cursory look, the UI inconsistently refers to IfcSlab as the "Ifc Role" (which is misleading as there is such as thing as an IfcRole), as well as an "Ifc type" (in the BIM workbench export settings) which is also misleading as it should be called perhaps something like IFC Product (e.g. IfcSlab) + Ifc Type (e.g. ROOF enum).
- In FreeCAD, a you have a Levels manager. In IFC, they are referred to as IfcBuildingStorey. Should we adopt their nomenclature and call it a "Building storey" in the UI?

Personally, I believe if we want FreeCAD to be the most compliant IFC program out there, we should start adopting IFC's uh, "world view"? Of course, this doesn't mean creating a separate button to each of the many IfcElements out there, because that would make an unusable UI (personally, I find the huge dropdown menu in the Ifc Role property quite hard to navigate). I am also aware that any shape can be any IFC object, so perhaps the UI should be structured around creating different shapes, and then a separate UI for classifying them into different IFC Products which will then preload the appropriate property sets.

Just wondering what the community feel was on this? Do you keep FreeCAD as its own thing, and then treat IFC purely as an export, or do we want to treat IFC as a native and start adopting their logic where it makes sense?
I also blog about 3D rendering, architecture, software and other on thinkMoult.com. RSS / Atom feed available for your convenience.
User avatar
yorik
Site Admin
Posts: 11371
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Aligning the FreeCAD UI with IFC nomenclature

Postby yorik » Mon Jan 14, 2019 3:04 pm

Personally I am quite opposed to "reflecting" the IFC structure in FreeCAD. The idea in FreeCAD is freedom, that you bascially be able to model anything you want, the way you want, and the idea behind IFC is strictness, that everything must happen in a very defined structure. The fact that in FreeCAD we have, for example, one structural object, that can be a beam, a column, a slab, or anything else, as opposed to separate objects in IFC is a good illustration. In IFC, you don't turn a beam into a column. In FreeCAD, you can.

This is something precious to me, that you can build your own nomenclature and building structure. And there are things I really don't like in IFC (and very likely directly inspired by autodesk software), for example all objects must be part of a building storey, that it would be a pity to limit FreeCAD with.

Now I agree with you that there are many inconsistencies that could easily be solved. Ex, Ifc Role could/should be renamed to Ifc Type. Levels could indeed be called storeys, and many other things like that.
User avatar
Cyril
Posts: 56
Joined: Wed Aug 23, 2017 5:04 pm
Location: Geneva (Switzerland)
Contact:

Re: Aligning the FreeCAD UI with IFC nomenclature

Postby Cyril » Sat Apr 20, 2019 8:15 pm

yorik wrote:
Mon Jan 14, 2019 3:04 pm
for example all objects must be part of a building storey, that it would be a pity to limit FreeCAD with.
Sorry to dig out this old subject but can you explain what make you think that all objects must be part of a building storey ?
As I understand IfcBuilding documentation especially figure 148 an IfcProduct can be part of the IfcBuilding itself outside of any IfcBuildingStorey.

Also, when you look at SpatialContainment of IfcObject, for exemple IfcBuildingElement (supertype for walls, beams, doors etc…), I understand that they say at table 31 that IfcSite, IfcBuilding and IfcBuildingStorey are all valid containers.
I blog about HVAC / BIM / Energy : pythoncvc.net. If you like you can follow the RSS feed.
User avatar
yorik
Site Admin
Posts: 11371
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Aligning the FreeCAD UI with IFC nomenclature

Postby yorik » Mon Apr 22, 2019 2:05 pm

You are right, the IfcOpenShell example does it like that too, but IIRC many other apps specifically want stuff to be inside an IfcBuildingStorey (Revit does I think, but it's been some time I didn't check).

That's one of the main issues with IFC, everybody implements it in their own way. And most of the time, since we're cool and opensource and all that :? , it's easier for us to stick to whatever other big guys do, than asking autodesk to change...

But you'll notice that freecad doesn't enforce this "everything inside a storey" rule, unless you tick the appropriate option in preferences... Which is exactly how I think we should go forward, don't enforce rules, but offer tools that help to comply if users want...