$npx skillfedfor your agent

ifcopenshell

Python bindings, utility functions, and high-level API for IfcOpenShell

Worth itPyPI Scientific/EngineeringReleased Apr 2026694.9K downloads / mocopyleft licensePlatform wheel

Decision gist · record as of 2026-08-14

platform wheels — ifcopenshell-0.8.5-py310-none-macosx_10_15_x86_64.whl · ifcopenshell-0.8.5-py310-none-macosx_11_0_arm64.whl · ifcopenshell-0.8.5-py310-none-manylinux_2_31_aarch64.whl
v0.8.5 · released 2026-04-13 · Python <3.15,>=3.10 · 6 runtime deps: shapely, numpy, isodate, python-dateutil, lark, typing-extensions

Yes. IfcOpenShell is actively maintained, carries no known vulnerabilities, and has strong adoption in the BIM community. The LGPL license is permissive for most use cases. Install friction is moderate but manageable thanks to prebuilt wheels. Choose this if you need to work with IFC files programmatically; it is the de facto standard Python library for that task.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later; IFC file must be in a supported schema (IFC2x3 TC1, IFC4 Add2 TC1, IFC4x1, IFC4x2, or IFC4x3 Add2).
  • Installation is straightforward with prebuilt wheels for Python 3.10–3.13 across macOS (Intel and ARM), Linux, and Windows.
  • The package carries medium install friction due to its compiled nature and six runtime dependencies including shapely and numpy, but wheels eliminate the need to compile from source.

License · maintenance · safety

copyleft license (copyleft) — IfcOpenShell is licensed under LGPL-3.0-or-later (copyleft). You may use it freely in your own projects, but any modifications to the library itself must be shared under the same license; proprietary applications can link to it as a library without disclosing their own source.

last release 2026-04-13 (123 days) · last repo commit 2026-08-14 · 2,705 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 694,928 downloads/mo, #5,311 on PyPI

Verify before relying

import ifcopenshell

model = ifcopenshell.open('model.ifc')
for wall in model.by_type('IfcWall'):
    print(wall.Name)
  • Extent of geometric support for IFC4x1, IFC4x2, and IFC4x3 Add2 schemas (description states extensive support for IFC2x3 TC1 and IFC4 Add2 TC1 only).
  • Performance characteristics when working with large or complex IFC models.
  • Availability and maturity of the Python API relative to the C++ API.
Same gist for agents: .md · .json

What it is and what it does

IfcOpenShell is a Python binding to an open-source C++ library for reading and writing IFC (Industry Foundation Classes) files—the standard format for Building Information Models (BIM) in architecture, engineering, and construction. The package provides both low-level schema access and high-level utility functions for extracting, querying, and modifying building geometry and metadata. It supports multiple IFC schema versions and includes geometric processing for spatial analysis.

Typically used by BIM software developers, data analysts, and researchers who need to programmatically access or transform building model data. The library integrates with shapely and numpy for geometric operations, and its runtime dependencies are lightweight and widely available. Active development and a large repository community (2705 stars) indicate ongoing maintenance and real-world adoption in the AEC (architecture, engineering, construction) industry.

Use it for

  • Extract wall, door, and window properties from IFC models for energy analysis or cost estimation.
  • Automate clash detection or spatial conflict analysis between building systems.
  • Convert IFC models to other formats (via IfcConvert) for interoperability with non-BIM tools.
  • Query and validate building model data against project requirements or standards.
  • Programmatically generate or modify IFC files for parametric design workflows.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

IfcOpenShell is actively maintained, carries no known vulnerabilities, and has strong adoption in the BIM community. The LGPL license is permissive for most use cases. Install friction is moderate but manageable thanks to prebuilt wheels. Choose this if you need to work with IFC files programmatically; it is the de facto standard Python library for that task.

Install

ifcopenshell on PyPI

Before you install

Installation is straightforward with prebuilt wheels for Python 3.10–3.13 across macOS (Intel and ARM), Linux, and Windows. The package carries medium install friction due to its compiled nature and six runtime dependencies including shapely and numpy, but wheels eliminate the need to compile from source.

Requires Python 3.10 or later; IFC file must be in a supported schema (IFC2x3 TC1, IFC4 Add2 TC1, IFC4x1, IFC4x2, or IFC4x3 Add2).

License in practice

IfcOpenShell is licensed under LGPL-3.0-or-later (copyleft). You may use it freely in your own projects, but any modifications to the library itself must be shared under the same license; proprietary applications can link to it as a library without disclosing their own source.

Quickstart

import ifcopenshell

model = ifcopenshell.open('model.ifc')
for wall in model.by_type('IfcWall'):
    print(wall.Name)

Verify before relying

  • Extent of geometric support for IFC4x1, IFC4x2, and IFC4x3 Add2 schemas (description states extensive support for IFC2x3 TC1 and IFC4 Add2 TC1 only).
  • Performance characteristics when working with large or complex IFC models.
  • Availability and maturity of the Python API relative to the C++ API.

Package facts

Licensecopyleft license copyleft
Python supportSupports the current Python release <3.15,>=3.10
Install frictionMedium. Platform-specific wheel
Runtime dependencies
6 packages
shapelynumpyisodatepython-dateutillarktyping-extensions
MaintenanceActively maintained 123 days since the last release
Last repo commit
First released
Downloads694,928 / month, #5,311 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)Programming Language :: Python :: 3

Evidence: ifcopenshell-0.8.5-py310-none-macosx_10_15_x86_64.whl; ifcopenshell-0.8.5-py310-none-macosx_11_0_arm64.whl; ifcopenshell-0.8.5-py310-none-manylinux_2_31_aarch64.whl; ifcopenshell-0.8.5-py310-none-manylinux_2_31_x86_64.whl; ifcopenshell-0.8.5-py310-none-win_amd64.whl; ifcopenshell-0.8.5-py311-none-macosx_10_15_x86_64.whl; ifcopenshell-0.8.5-py311-none-macosx_11_0_arm64.whl; ifcopenshell-0.8.5-py311-none-manylinux_2_31_aarch64.whl; ifcopenshell-0.8.5-py311-none-manylinux_2_31_x86_64.whl; ifcopenshell-0.8.5-py311-none-win_amd64.whl; ifcopenshell-0.8.5-py312-none-macosx_10_15_x86_64.whl; ifcopenshell-0.8.5-py312-none-macosx_11_0_arm64.whl; ifcopenshell-0.8.5-py312-none-manylinux_2_31_aarch64.whl; ifcopenshell-0.8.5-py312-none-manylinux_2_31_x86_64.whl; ifcopenshell-0.8.5-py312-none-win_amd64.whl; ifcopenshell-0.8.5-py313-none-macosx_10_15_x86_64.whl; ifcopenshell-0.8.5-py313-none-macosx_11_0_arm64.whl; ifcopenshell-0.8.5-py313-none-manylinux_2_31_aarch64.whl; ifcopenshell-0.8.5-py313-none-manylinux_2_31_x86_64.whl; ifcopenshell-0.8.5-py313-none-win_amd64.whl

Tags

Capabilities
IFC file parsing and manipulationbuilding information model processingIFC schema support pythongeometric analysis of IFC modelsBIM data extraction and editing
Topics
bimifcbuilding-models

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “IFC file parsing and manipulation”

  • ifcopenshellIfcOpenShell is a Python library for parsing, manipulating, and…
  • fluent.syntaxParse, write, and transform Fluent localization files with built-in…
  • pyProvides cross-platform path objects, INI file parsing, code…

Give your agent the search over MCP, or paste the wish link into any chat.

More Scientific/Engineering packages

numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
pandas Worth it
PyPI · Scientific/Engineering · released Jul 2026

pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.

BSD-3-Clausecompiled wheel · 3.11+
769.1Mdownloads / mo
scipy Worth it
PyPI · Libraries · released Jun 2026

scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.

BSD-3-Clausecompiled wheel · 3.12+
449.0Mdownloads / mo
scikit-learn Worth it
PyPI · Software Development · released Jun 2026

scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.

Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.

BSD-3-Clausecompiled wheel · 3.11+
235.5Mdownloads / mo
dill Worth it
PyPI · Software Development · released Jan 2026

dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.

BSD-3-Clausepure Python · 3.9+
208.1Mdownloads / mo
multiprocess Worth it
PyPI · Software Development · released Jan 2026

Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.

Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.

BSD-3-Clausepure Python · 3.9+
202.7Mdownloads / mo

See also coal-library · libcoal · skforecast · cyvcf2 · scapy · coal · lazr.config · cf-units · contourpy · colcon-cd