IfcConvert(1)

πŸ“¦ version 0.8.1, in ubuntu stonking

πŸ’– NAME πŸ’–

IfcConvert β€” converts IFC files to various formats πŸ¦‹ (section 1, bestie, we're in the big leagues)

okay so picture this: it's IfcOpenShell, it's IfcConvert 0.8.0 (rocking OCC 7.8.1), and it is literally here to take your IFC file and turn it into something else. The whole shape of it is:

IfcConvert [options] <input.ifc> [<output>]

And what's it converting (the geometry in) an IFC file into?? So many options, we love a versatile queen πŸ‘‘:

  • .obj β€” WaveFront OBJ (and yes, a .mtl file is also created, she comes with accessories πŸ’…)
  • .stp β€” STEP, aka Standard for the Exchange of Product Data
  • .igs β€” IGES, aka Initial Graphics Exchange Specification
  • .xml β€” XML, for property definitions and the decomposition tree
  • .svg β€” SVG, Scalable Vector Graphics (2D floor plan energy πŸ—ΊοΈ)
  • .cityjson β€” City JSON format for geospatial data
  • .ttl β€” TTL/WKT, RDF Turtle with Well-Known-Text geometry
  • .ifc β€” IFC-SPF, Industry Foundation Classes

And here's a lil quality-of-life moment: if you don't hand it an output filename, <input>.obj will be used as the output file. No output name? She picks one herself. Self-sufficient icon behavior.


πŸŽ€ Command line options πŸŽ€

  • -h [ --help ] β€” shows you the usage information, the classic cry-for-help but make it productive
  • --version β€” displays the version information ✨
  • -v [ --verbose ] β€” more verbose log messages. Use it twice (-vv) and you're at debugging level β€” that's the deep lore, iykyk
  • -q [ --quiet ] β€” less status and progress output, for when you want her to stop yapping
  • --stderr-progress β€” outputs progress to the stderr stream
  • -y [ --yes ] β€” answers 'yes' automatically to possible confirmation queries (e.g. overwriting an existing output file) β€” consent pre-granted, so be careful out there πŸ™ˆ
  • --no-progress β€” suppresses possible progress bar type of prints that use carriage return
  • --log-format arg β€” log format: plain or json
  • --log-file arg β€” redirects log output to a file

🌈 Geometry options 🌈

  • --kernel arg (=opencascade) β€” the geometry kernel to use (opencascade, cgal, cgal-simple).
  • -j [ --threads ] arg (=1) β€” number of parallel processing threads for geometry interpretation. Default is a humble little 1.
  • --center-model β€” centers the elements by applying the center point of all placements as an offset. Heads up bestie, this can take several minutes on large models, so go make a snack πŸ“
  • --center-model-geometry β€” centers the elements by applying the center point of all mesh vertices as an offset.
  • --model-offset arg β€” applies an arbitrary offset of the form 'x;y;z' to all placements.
  • --model-rotation arg β€” applies an arbitrary quaternion rotation of the form 'x;y;z;w' to all placements.
  • --include arg β€” specifies that the instances that match a specific filtering criteria are to be included in the geometrical output:
    1. 'entities' β€” the following list of types should be included. SVG output defaults to IfcSpace being included. The entity names are handled case-insensitively.
    2. 'layers' β€” the instances that are assigned to presentation layers of which names match the given values should be included.
    3. 'attribute <AttributeName>' β€” products whose value for <AttributeName> should be included. Currently supported arguments are GlobalId, Name, Description, and Tag.

The values for 'layers' and 'arg' are handled case-sensitively (wildcards supported). Also, real talk: --include and --exclude cannot be placed right before the input file argument, and only a single one of each argument is supported for now. See also --exclude.

  • --include+ arg β€” same as --include but it applies the filtering also to the decomposition and/or containment (IsDecomposedBy, HasOpenings, FillsVoid, ContainedInStructure) of the filtered entity. For example, --include+=arg Name "Level 1" includes the entity with name "Level 1" and all of its children β€” she said bring the whole family πŸ’–. See --include for more information.
  • --exclude arg β€” specifies that the entities that match a specific filtering criteria are to be excluded in the geometrical output. See --include for the syntax and more details. The default value is '--exclude=entities IfcOpeningElement IfcSpace'.
  • --exclude+ arg β€” same as --exclude but applies filtering also to the decomposition and/or containment of the filtered entity. See --include+ for more details.
  • --filter-file arg β€” specifies a filter file that describes the used filtering criteria. Supported formats are '--include=arg GlobalId. Spaces and tabs can be used as delimiters. Multiple filters of the same type with different values can be inserted on their own lines. See --include, --include+, --exclude, and --exclude+ for more details.
  • --default-material-file arg β€” specifies a material file that describes the material object types will have if an object does not have any specified material in the IFC file.

fr fr, that's the whole page β€” every flag, every default, every weird missing space preserved with love 🫢

and that's the vibe check bestie ✨ this was IfcConvert(1) from IfcOpenShell IfcConvert 0.8.0 (OCC 7.8.1), dated 26 November 2025. go convert something iconic πŸ’…πŸŒˆ

πŸ“¦ where this page comes from