View Issue Details

IDProjectCategoryView StatusLast Update
0001005ArchFeaturepublic2013-12-26 13:41
Reporteryorik Assigned Toyorik  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Target Version0.14 
Summary0001005: Arch module - IFC export
DescriptionAllow to export to IFC files
TagsNo tags attached.
FreeCAD Information

Activities

yorik

2013-11-01 14:35

administrator   ~0003845

Notes on implementation:

1) Create a base project

     - if the export set contains at least one valid site->building->floor structure, create from it (them)
     - else create a default one

2) Get IFC type of each object

    - if the object has some form of override (Role property, etc), use it
    - else create from arch type

3) Get representation data of each object

Check for the geometry type, to decide which geometry to use to export arch objects to IFC, using the most
straightforward available:

    - extruded polyline ( IfcSweptAreaSolid ). We need the base polyline, and an extrusion vector.
      http://www.buildingsmart-tech.org/ifc/IFC2x4/rc1/html/ifcgeometricmodelresource/lexical/ifcsweptareasolid.htm
    - faceted solid ( IfcFacetedBrep ). Only flat faces, and only line-based edges. Faces must have their edgeloop ordered,
      and inner wires must be reversed.
      http://www.buildingsmart-tech.org/ifc/IFC2x4/rc1/html/ifcgeometricmodelresource/lexical/ifcfacetedbrep.htm
    - full brep ( IfcAdvancedBrep ). This is more complex, and should be used when there are curve-based edges.
      Maybe aothms can help with some auto conversion there.
      http://www.buildingsmart-tech.org/ifc/IFC2x4/rc1/html/ifcgeometricmodelresource/lexical/ifcadvancedbrep.htm

Additions and subtractions are also treated:

    - windows are treated as IfcOpeningElement. their shape follows the same rule as above.
    - subwalls should not be subtracted, should be made into separate walls. See if there is a way to relate them
      somehow.
    - other additions and subtractions are IfcBooleanResults
      http://www.buildingsmart-tech.org/ifc/IFC2x4/rc1/html/ifcgeometricmodelresource/lexical/ifcbooleanresult.htm

So to get ifc representation data from arch objects we should follow the following path:

    - if they are based on an extruded polyline, return polyline points + extrusion vector
    - else if they are based on flat faces, return a list of wires lists
    - else go for full brep (now figure out how to do that :( )
    - create and return subtraction objects
    - create and return addition objects
    - bind additions and subtractions

yorik

2013-11-01 14:35

administrator   ~0003846

Last edited: 2013-11-01 14:36

Working IFC writer already done:

https://gist.github.com/yorikvanhavre/6040612

yorik

2013-12-23 13:51

administrator   ~0003974

Basically working now, except bugfixing.

Additonal items:
- Add preferences settings to set a custom path to ifcopenshell
- Make the importer use the new version if available

Related Changesets

FreeCAD: master df596822

2013-12-17 19:44:08

yorik

Details Diff
Arch: added ifc writer Affected Issues
0001005
mod - src/Mod/Arch/CMakeLists.txt Diff File
add - src/Mod/Arch/ifcWriter.py Diff File
mod - src/WindowsInstaller/ModArch.wxi Diff File

FreeCAD: master 990ece8c

2013-12-17 22:47:04

yorik

Details Diff
Arch: More work on the IFC exporter Affected Issues
0001005
mod - src/Mod/Arch/ArchCommands.py Diff File
mod - src/Mod/Arch/ArchStructure.py Diff File
mod - src/Mod/Arch/Arch_rc.py Diff File
mod - src/Mod/Arch/Resources/ui/archprefs-import.ui Diff File
mod - src/Mod/Arch/ifcWriter.py Diff File
mod - src/Mod/Arch/importIFC.py Diff File

FreeCAD: master 5224e9a2

2013-12-19 23:41:42

yorik

Details Diff
Arch: Further work on the IFC exporter, now supports windows and bldg hierarchy Affected Issues
0001005
mod - src/Mod/Arch/ArchCommands.py Diff File
mod - src/Mod/Arch/ArchWindow.py Diff File
mod - src/Mod/Arch/ifcWriter.py Diff File
mod - src/Mod/Arch/importIFC.py Diff File
mod - src/Mod/Draft/Draft.py Diff File

FreeCAD: master 55c0253c

2013-12-20 16:25:41

yorik

Details Diff
Arch: added workarounds for export bugs in ifcopenshell Affected Issues
0001005
mod - src/Mod/Arch/ifcWriter.py Diff File

FreeCAD: master 8db8db4a

2013-12-20 22:41:58

yorik

Details Diff
Arch: more bugfixing in ifc exporter Affected Issues
0001005
mod - src/Mod/Arch/ifcWriter.py Diff File

FreeCAD: master b8a8f186

2013-12-21 02:39:46

yorik

Details Diff
Arch: Still more fixes to ifc export... Affected Issues
0001005
mod - src/Mod/Arch/ifcWriter.py Diff File
mod - src/Mod/Arch/importIFC.py Diff File

FreeCAD: master 7ceef577

2013-12-26 14:38:30

yorik

Details Diff
Arch: Added IFC export to the GUI + using new ifcopenshell for import - fixes 0001005 Affected Issues
0001005
mod - src/Mod/Arch/InitGui.py Diff File
mod - src/Mod/Arch/ifcWriter.py Diff File
mod - src/Mod/Arch/importIFC.py Diff File
mod - src/Mod/Draft/DraftGeomUtils.py Diff File

Issue History

Date Modified Username Field Change
2013-02-14 20:57 yorik New Issue
2013-02-14 20:57 yorik Status new => assigned
2013-02-14 20:57 yorik Assigned To => yorik
2013-11-01 14:35 yorik Note Added: 0003845
2013-11-01 14:35 yorik Note Added: 0003846
2013-11-01 14:36 yorik Note Edited: 0003846
2013-12-23 13:51 yorik Note Added: 0003974
2013-12-23 13:52 yorik Changeset attached => FreeCAD Master master b8a8f186
2013-12-23 13:52 yorik Changeset attached => FreeCAD Master master 8db8db4a
2013-12-23 13:53 yorik Changeset attached => FreeCAD Master master 55c0253c
2013-12-23 13:53 yorik Changeset attached => FreeCAD Master master 5224e9a2
2013-12-23 13:53 yorik Changeset attached => FreeCAD Master master 990ece8c
2013-12-23 13:54 yorik Changeset attached => FreeCAD Master master df596822
2013-12-26 13:41 yorik Changeset attached => FreeCAD Master master 7ceef577
2013-12-26 13:41 yorik Status assigned => closed
2013-12-26 13:41 yorik Resolution open => fixed