August 12, 2020:
Want to view building models on the web? Have a look at IFC pipeline. An open source self-hosted IFC processing and visualization pipeline. Available to try at

Star Fork

IfcConvert: An application for converting ifc geometry into several file formats

Installation instructions for Windows, Linux and Mac OSX

Installation on other platforms


IfcOpenShell IfcConvert 0.5.0-dev
Usage: IfcConvert [options] <input.ifc> [<output>]

Converts the geometry in an IFC file into one of the following formats:
  .obj   WaveFront OBJ  (a .mtl file is also created)
  .dae   Collada        Digital Asset Exchange
  .stp   STEP           Standard for the Exchange of Product Data
  .igs   IGES           Initial Graphics Exchange Specification
  .xml   XML            Property definitions and decomposition tree
  .svg   SVG            Scalable Vector Graphics (2d floor plan)

Command line options
  --help                display usage information
  --version             display version information
  -v [ --verbose ]      more verbose output

Advanced options
  --plan                          Specifies whether to include curves in the 
                                  output result. Typically these are 
                                  representations of type Plan or Axis. 
                                  Excluded by default.
  --model                         Specifies whether to include surfaces and 
                                  solids in the output result. Typically these
                                  are representations of type Body or 
                                  Facetation. Included by default.
  --weld-vertices                 Specifies whether vertices are welded, 
                                  meaning that the coordinates vector will only
                                  contain unique xyz-triplets. This results in 
                                  a manifold mesh which is useful for modelling
                                  applications, but might result in unwanted 
                                  shading artefacts in rendering applications.
  --use-world-coords              Specifies whether to apply the local 
                                  placements of building elements directly to 
                                  the coordinates of the representation mesh 
                                  rather than to represent the local placement 
                                  in the 4x3 matrix, which will in that case be
                                  the identity matrix.
  --convert-back-units            Specifies whether to convert back geometrical
                                  output back to the unit of measure in which 
                                  it is defined in the IFC file. Default is to 
                                  use meters.
  --sew-shells                    Specifies whether to sew the faces of 
                                  IfcConnectedFaceSets together. This is a 
                                  potentially time consuming operation, but 
                                  guarantees a consistent orientation of 
                                  surface normals, even if the faces are not 
                                  properly oriented in the IFC file.
  --merge-boolean-operands        Specifies whether to merge all 
                                  IfcOpeningElement operands into a single 
                                  operand before applying the subtraction 
                                  operation. This may introduce a performance 
                                  improvement at the risk of failing, in which 
                                  case the subtraction is applied one-by-one.
  --disable-opening-subtractions  Specifies whether to disable the boolean 
                                  subtraction of IfcOpeningElement 
                                  Representations from their RelatingElements.
  --bounds arg                    Specifies the bounding rectangle, for example
                                  512x512, to which the output will be scaled. 
                                  Only used when converting to SVG.
  --include                       Specifies that the entities listed after 
                                  --entities are to be included
  --exclude                       Specifies that the entities listed after 
                                  --entities are to be excluded
  --entities arg                  A list of entities that should be included in
                                  or excluded from the geometrical output, 
                                  depending on whether --ignore or --include is
                                  specified. Defaults to IfcOpeningElement and 
                                  IfcSpace to be excluded.

Please visit the forums for additional support Can't get enough of semantics in the built environment?
Visit, the free community-based semi-semantical architecture archive!
Follow IfcOpenShell on twitter Comments? Suggestions? Feature requests? Just plain angry with the world?
Follow the development of IfcOpenShell on twitter (@aothms)