Tool to quickly output 2d views / sections from ifc?

Hello everybody,
I'm looking for a tool (viewer or other) that would allow me to quickly output 2d views (dwg, dxf ...) from an ifc.
Do you know any software capable of doing that ?
Thanks in advance
BR
David

Comments

  • edited November 2021


    about 45:00

    Opus
  • edited November 2021

    @JanF said:
    about 45:00

    Hi JanF,
    I used IFC Toolbox but I haven't tried the converter to svg yet ... I'll try it, thanks;)
    BR
    David

  • How about using Blender's Lineart tool then exporting into a CAD program and scaling?

  • I tested it and while it can be great for simple files, it is really tricky once there are a lot of objects and the geometry count grows past a certain threshold.

  • Thanks @Bedson and @Gorgious
    That's what I thought. the ifc I use are huge ... and often very far from the origin. I'll probably test Lineart tool and Blender when I have time, but right now I need a program that can do this to me quickly when I need it.
    Thank you so much !
    BR
    David

  • The SVG converter effectively uses IfcOpenShell's IfcConvert. This is currently being upgraded quite a bit with progress documented in https://github.com/IfcOpenShell/IfcOpenShell/issues/1153 (sorry it's a long thread, but lots of good info hidden in there) - unfortunately right now there are performance problems with the projection of complex backgrounds. As these problems slowly get resolved, though, I think it might be exactly what you're looking for.

    danielkrajnik
  • Hi Dion and thank you for your feedback.
    Great documentation indeed ;) but I'll have a look at it ASAP!
    thank you so much
    BR
    David

  • I haven't tried FreeCAD. Can it import all of Blender's objects as individual objects (Revit can import .obj but only as a 'single lump')? What are the quirks of a Blender / FreeCAD workflow?

  • @Bedson said:
    I haven't tried FreeCAD. Can it import all of Blender's objects as individual objects (Revit can import .obj but only as a 'single lump')? What are the quirks of a Blender / FreeCAD workflow?

    If you export your Blender project as IFC project, FreeCAD will import and open it as individual IFC objects.

  • FreeCAD works, but I'm worried about performance too. In FreeCAD, it would be IFC -> FreeCAD -> FreeCAD HLR Renderer -> SVG. Historically, in the past with the BlenderBIM Add-on I did IFC -> Blender -> Blender Hybrid Raster + Vector Renderer -> SVG. The Raster Vector hybrid allows it to scale up to huge scenes, as the vector only dealt with the cut plane, and the raster handles everything in the background. Blender, especially when combined with Blender links, can handle hundreds of thousands of objects and produce a raster render super quickly. I'm not so sure if FreeCAD can handle >100k objects, or something like 1GB of federated IFCs.

    This new approach which is being worked on is designed to be IFC -> OpenCascade HLR Renderer -> SVG with no inbetween steps. So in theory it should be able to scale as well, but right now the projection vector performance only seems practical on small scenes based on my tests.

    There is another approach, developed by @agviegas on IFC.JS, but I don't know enough about it just yet on how it handles vectors, closed polygons, annotations, etc.

    Would love to hear @yorik and @aothms thoughts on this - the drawing generation issue is a huge problem which needs to be solved.

  • but right now the projection vector performance only seems practical on small scenes based on my tests.

    Performance is proportional to number of edges. In my experience you can have a bit of elements if they are modelled efficiently. But yeah other than that everything of interest is buried in the thread at https://github.com/IfcOpenShell/IfcOpenShell/issues/1153

  • Hey @Moult , we are focusing on floor plants and our implementation is super simple. We'll release it next week hopefully, so you can take a look and, if you have any questions, we can walk you through it! Our algorithm is quite fast regarding sectioned elements because it uses Garrett Johnson's BVH implementation for Three.js.

    ArnoldEstruturasGorgiousbitacovir
  • edited November 2021

    Hello,
    Thank you again for your interesting answers.

    I tried IFC Convert, but it fails. Someone knows where the problem may come from.

    I made a very simple ifc (2 columns and a beam). first I tried converting to svg ... it failed. I therefore tried in the other format and I have the same problem. has anyone had the same problem?

    ... and if anyone has an idea for a viewer that could output elevations and sections directly, I'm still interested ;)

    thank you very much and good day !
    David

  • @Dav_id can you just use IfcConvert directly? https://github.com/IfcOpenBot/IfcOpenShell/commit/e0e8281a1e9249fe58e5f83c708310dbf6d9f0c0#comments

    The default settings of IfcConvert to svg are to only include spaces. Since you don't have any, it seems. That could be the "erreur" being reported.

    In the thread here there are some examples of command line options https://github.com/IfcOpenShell/IfcOpenShell/issues/1153#issuecomment-790626411

  • edited November 2021

    thanks @aothms s and @JanF

    @aothms said:
    @Dav_id can you just use IfcConvert directly? https://github.com/IfcOpenBot/IfcOpenShell/commit/e0e8281a1e9249fe58e5f83c708310dbf6d9f0c0#comments

    The default settings of IfcConvert to svg are to only include spaces. Since you don't have any, it seems. That could be the "erreur" being reported.

    In the thread here there are some examples of command line options https://github.com/IfcOpenShell/IfcOpenShell/issues/1153#issuecomment-790626411

    I tried directly and it works in * .obj, * .dae, * .stp ... but not in * .svg :( ... I will look there, probably I do not type what it takes ...

    I don't understand what you mean by "The default settings of IfcConvert to svg are to only include spaces. Since you don't have any, it seems. That could be the" error "being reported"

    I will look at the thread ... but so far, I have also tried in admin mode and I have the same message ...

    thanks again
    BR
    David

  • I don't understand what you mean by...

    Maybe you can try with IfcConvert <in.ifc> <out.svg> --exclude entities IfcOpeningElement to override the default set of elements included. It would also help if you post the full command line output and input.

  • @agviegas said:
    Hey @Moult , we are focusing on floor plants and our implementation is super simple. We'll release it next week hopefully, so you can take a look and, if you have any questions, we can walk you through it! Our algorithm is quite fast regarding sectioned elements because it uses Garrett Johnson's BVH implementation for Three.js.

    This looks amazing!

  • @Moult said:
    FreeCAD works, but I'm worried about performance too. In FreeCAD, it would be IFC -> FreeCAD -> FreeCAD HLR Renderer -> SVG. Historically, in the past with the BlenderBIM Add-on I did IFC -> Blender -> Blender Hybrid Raster + Vector Renderer -> SVG. The Raster Vector hybrid allows it to scale up to huge scenes, as the vector only dealt with the cut plane, and the raster handles everything in the background. Blender, especially when combined with Blender links, can handle hundreds of thousands of objects and produce a raster render super quickly. I'm not so sure if FreeCAD can handle >100k objects, or something like 1GB of federated IFCs.

    Sure there are limits. FreeCAD is not "for everyone, for everything". People must try it and see if this tool is suitable for their workflow or part of it.

  • edited November 2021

    @aothms said:

    I don't understand what you mean by...

    Maybe you can try with IfcConvert <in.ifc> <out.svg> --exclude entities IfcOpeningElement to override the default set of elements included. It would also help if you post the full command line output and input.

    thx @aothms,
    I still don't know how to use it (sorry) but it's better

    the last thing i tried is this
    IfcConvert test2.ifc test3.svg --exclude=entities IfcOpeningElement --auto-elevation
    and here is the result
    IfcOpenShell IfcConvert -e0e8281a (OCC 7.5.3)
    Scanning file...
    Done scanning file
    Parsing input file took 0 seconds
    Creating geometry...
    Done creating geometry (3 objects)
    Conversion took 0 seconds
    my *.ifc is really simple

    and here is the result in inkscape ... oups

    i will have a look to the --help command to show how that works
    thanks again !
    David

  • Yes and have a look at the examples in https://github.com/IfcOpenShell/IfcOpenShell/issues/1153 --bounds (without or without --scale) will likely help. And --svg-project to include things besides purse sections with the cross plane. --section-heights-from-storeys is a good default to include as well typically

  • edited December 2021

    I just noticed that IfcToolBox has no mention on our wiki. Anyone ready to fix that? Maybe @Yousheng or a friend?
    A small entry on the software directory at least, then maybe its own page. The inkscape page is the template for new software pages.
    This video should be linked to:

  • @duncan said:
    I just noticed that IfcToolBox has no mention on our wiki. Anyone ready to fix that? Maybe @Yousheng or a friend?
    A small entry on the software directory at least, then maybe its own page. The inkscape page is the template for new software pages.

    Added to software directory.

    paulleeduncanYousheng
  • edited December 2021

    @Dav_id Sorry for the late reply, we got a new way to install IFC Toolbox with a sideload package, for some users this actually fixed the binary error. Here is the link for the package. https://github.com/youshengCode/IfcToolbox/releases/tag/sideload
    And as Dion said, behind the IfcConvertor we use IfcConvert CLI tool from IfcOpenShell. Before the next release of IfcToolbox, I suggest you to using the current IfcOpenShell build directly. The next major release for V2 is planned for 2022 Q1.

    bty, thanks @bitacovir @duncan for adding IfcToolbox to the software list! Please let me know if I could help fulfil some content. Thanks.

  • @Yousheng the next step on the wiki is to make a dedicated page. The example page I always refer to is the page for Inscape https://wiki.osarch.org/index.php?title=Inkscape
    Once a simple page like that is ready it can replace the link from the Software Directory. We just want to keep the software pages general so they don't get out of date quickly. We don't really have resources to keep updating those pages. If you want to take that on it would be great.

  • While I really appreciate the efforts towards an IFC - > SVG workflow I would really like to know your opinion on how the reverse could be realized. A live connection between 2D and 3D is essential for many users, and object manipulation in 2D is still the way most people work, hence the success of Revit and Archicad. Multiple views in Blender: are those possible? Svg manipulation with callbacks to ifc and blender maybe? Or is a new way necessary to work with IFC in the long run? Are there new render engines that you are aware of that can cope better with both 2d and 3d? Could something like godot be used to start something from scratch?
    Just thinking out loud...

  • @tobenz said:
    A live connection between 2D and 3D is essential for many users, and object manipulation in 2D is still the way most people work, hence the success of Revit and Archicad. While I really appreciate the efforts towards an IFC - > SVG workflow I would really like to know your opinion on how the reverse could be realized.

    Believe @Moult 's approach to 2d documentation in BlenderBIM, will store the 2d geometry and annotations within the ifc file

  • True, but it is an "on demand" render workflow, not a wysiwyg approach

  • Multiple views in Blender: are those possible?

    yes. See GIF below.
    However, activating a BB drawing however seems to apply across all the windows. Ideally it would be nice it only applies to the active window. I think, however, this is only a matter of tweaking the code base a bit.

    True, but it is an "on demand" render workflow, not a wysiwyg approach

    I think it will eventually get there, however.... that is, being able to see a hatch, for example, in blender, in real time. There's discussion like this for example.

    AcetlangCadGiru
Sign In or Register to comment.