Skip to content

Commit 0101e7d

Browse files
committed
Merge branch 'v0.8.0' of https://github.com/IfcOpenShell/IfcOpenshell into 3drepo_current
# Conflicts: # src/ifcgeom/IfcGeomRepresentation.h
1 parent ee1ff8b commit 0101e7d

1 file changed

Lines changed: 46 additions & 81 deletions

File tree

README.md

Lines changed: 46 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,47 @@
11

2-
IfcOpenShell
3-
============
4-
5-
<p align="center">
6-
<img src="https://github.com/IfcOpenShell/IfcOpenShell/assets/88302/34901387-e2dd-4a0c-8e38-9ffc32a66cde">
7-
</p>
8-
9-
10-
IfcOpenShell is an open source ([LGPL]) software library for working with Industry Foundation Classes ([IFC]). Complete
11-
parsing support is provided for [IFC2x3 TC1], [IFC4 Add2 TC1], IFC4x1, IFC4x2, and [IFC4x3 Add2]. Extensive geometric support
12-
is implemented for the IFC releases [IFC2x3 TC1] and [IFC4 Add2 TC1]. Extending with support for arbitrary IFC schemas
13-
is possible at compile-time when using C++ and at run-time when using Python.
14-
15-
In addition to a C++ and Python API, IfcOpenShell comes with an ecosystem of tools, notably including IfcConvert (an application
16-
to convert IFC models to other formats), Bonsai (an add-on to Blender providing a graphical IFC authoring platform),
17-
and many other libraries, CLI apps, and more. Support is also provided for auxiliary standards such as BCF and IDS.
18-
19-
For more information, see:
20-
21-
* [IfcOpenShell Website](http://ifcopenshell.org)
22-
* [IfcOpenShell Documentation](https://docs.ifcopenshell.org)
23-
* [IfcOpenShell C++ Installation](https://docs.ifcopenshell.org/ifcopenshell/installation.html)
24-
* [IfcOpenShell Python Installation](https://docs.ifcopenshell.org/ifcopenshell-python/installation.html)
25-
* [IfcOpenShell Python Hello World Tutorial](https://docs.ifcopenshell.org/ifcopenshell-python/hello_world.html)
26-
* [Bonsai Website](https://bonsaibim.org)
27-
* [Bonsai Documentation](https://docs.bonsaibim.org/index.html)
28-
* [Add-on Installation](https://docs.bonsaibim.org/quickstart/installation.html)
29-
* [Exploring an IFC model](https://docs.bonsaibim.org/quickstart/explore_model.html)
30-
31-
Development is sponsored through your generous donations!
32-
33-
[![Open Collective Contributors](https://img.shields.io/opencollective/all/opensourcebim?label=Sponsors&color=22ce5f)](https://opencollective.com/opensourcebim/)
34-
35-
Contents
36-
--------
37-
38-
| Name | Description | License | Service |
39-
| ------------------------- | --------------------------------------------------------------------- | ------------------- | ------- |
40-
| bcf | Library to read and write BCF-XML and query OpenCDE BCF-API modules | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/bcf-client?label=PyPI&color=006dad)](https://pypi.org/project/bcf-client/) [![Anaconda-Server Badge](https://anaconda.org/conda-forge/bcf-client/badges/version.svg)](https://anaconda.org/conda-forge/bcf-client) |
41-
| bonsai | Add-on to Blender providing a graphical native IFC authoring platform | GPL-3.0-or-later | [![Official](https://img.shields.io/badge/BonsaiBIM.org-Download-70ba35)](https://bonsaibim.org/download.html) [![GitHub Unstable](https://img.shields.io/github/v/release/ifcopenshell/ifcopenshell?filter=bonsai-*&label=GitHub-Unstable&color=f6f8fa)](https://github.com/IfcOpenShell/IfcOpenShell/releases?q=bonsai&expanded=true) [![Chocolatey](https://img.shields.io/chocolatey/v/blenderbim-nightly?label=Chocolatey&color=5c9fd8)](https://community.chocolatey.org/packages/blenderbim-nightly/) |
42-
| bsdd | Library to query the bSDD API | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/bsdd?label=PyPI&color=006dad)](https://pypi.org/project/bsdd/) |
43-
| ifc2ca | Utility to convert IFC structural analysis models to Code_Aster | LGPL-3.0-or-later |
44-
| ifc4d | Convert to and from IFC and project management software | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifc4d?label=PyPI&color=006dad)](https://pypi.org/project/ifc4d/) |
45-
| ifc5d | Report and optimise cost information from IFC | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifc5d?label=PyPI&color=006dad)](https://pypi.org/project/ifc5d/) |
46-
| ifcbimtester | Wrapper for Gherkin based unit testing for IFC models | LGPL-3.0-or-later |
47-
| ifcblender | Historic Blender IFC import add-on | LGPL-3.0-or-later\* |
48-
| ifccityjson | Convert CityJSON to IFC | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifccityjson?label=PyPI&color=006dad)](https://pypi.org/project/ifccityjson/) |
49-
| ifcclash | Clash detection library and CLI app | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifcclash?label=PyPI&color=006dad)](https://pypi.org/project/ifcclash/) |
50-
| ifcconvert | CLI app to convert IFC to many other formats | LGPL-3.0-or-later\* | [![Official](https://img.shields.io/badge/IfcOpenShell.org-Download-70ba35)](https://docs.ifcopenshell.org/ifcconvert/installation.html) [![GitHub](https://img.shields.io/github/v/release/ifcopenshell/ifcopenshell?filter=ifcconvert-*&label=GitHub&color=f6f8fa)](https://github.com/IfcOpenShell/IfcOpenShell/releases?q=ifcconvert&expanded=true)
51-
| ifccsv | Library and CLI app to export and import schedules from IFC | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifccsv?label=PyPI&color=006dad)](https://pypi.org/project/ifccsv/) |
52-
| ifcdiff | Compare changes between IFC models | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifcdiff?label=PyPI&color=006dad)](https://pypi.org/project/ifcdiff/) |
53-
| ifcfm | Extract IFC data for FM handover requirements | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifcfm?label=PyPI&color=006dad)](https://pypi.org/project/ifcfm/) |
54-
| ifcmax | Historic extension for IFC support in 3DS Max | LGPL-3.0-or-later\* | [![Official](https://img.shields.io/badge/IfcOpenShell.org-Download-70ba35)](https://docs.ifcopenshell.org/ifcmax.html)
55-
| ifcopenshell-python | Python library for IFC manipulation | LGPL-3.0-or-later\* | [![Official](https://img.shields.io/badge/IfcOpenShell.org-Download-70ba35)](https://docs.ifcopenshell.org/ifcopenshell-python/installation.html) [![GitHub](https://img.shields.io/github/v/release/ifcopenshell/ifcopenshell?filter=ifcopenshell-python-*&label=GitHub&color=f6f8fa)](https://github.com/IfcOpenShell/IfcOpenShell/releases?q=ifcopenshell-python&expanded=true) [![PyPI](https://img.shields.io/pypi/v/ifcopenshell?label=PyPI&color=006dad)](https://pypi.org/project/ifcopenshell/) [![Anaconda](https://img.shields.io/conda/vn/conda-forge/ifcopenshell?label=Anaconda&color=43b02a)](https://anaconda.org/conda-forge/ifcopenshell) [![Anaconda](https://img.shields.io/conda/vn/ifcopenshell/ifcopenshell?label=Anaconda-Unstable&color=43b02a)](https://anaconda.org/ifcopenshell/ifcopenshell) [![Docker](https://img.shields.io/docker/pulls/aecgeeks/ifcopenshell?label=Docker&color=1D63ED)](https://hub.docker.com/r/aecgeeks/ifcopenshell) [![AUR](https://img.shields.io/aur/version/ifcopenshell?label=AUR&color=1793d1)](https://aur.archlinux.org/packages/ifcopenshell) [![AUR Unstable](https://img.shields.io/aur/version/ifcopenshell-git?label=AUR-Unstable&color=1793d1)](https://aur.archlinux.org/packages/ifcopenshell-git) |
56-
| ifcpatch | Utility to run pre-packaged scripts to manipulate IFCs | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifcpatch?label=PyPI&color=006dad)](https://pypi.org/project/ifcpatch/) |
57-
| ifcsverchok | Blender Add-on for visual node programming with IFC | GPL-3.0-or-later | [![GitHub Unstable](https://img.shields.io/github/v/release/ifcopenshell/ifcopenshell?filter=ifcsverchok-*.*.*.*&label=GitHub-Unstable&color=f6f8fa)](https://github.com/IfcOpenShell/IfcOpenShell/releases?q=ifcsverchok&expanded=true)
58-
| ifctester | Library, CLI and webapp for IDS model auditing | LGPL-3.0-or-later | [![PyPI](https://img.shields.io/pypi/v/ifctester?label=PyPI&color=006dad)](https://pypi.org/project/ifctester/) |
59-
60-
The IfcOpenShell C++ codebase is split into multiple interal libraries:
61-
62-
| Name | Description | License |
63-
| ------------------------- | --------------------------------------------------------------------- | ------------------- |
64-
| ifcgeom | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
65-
| ifcgeom\_schema\_agnostic | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
66-
| ifcgeomserver | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
67-
| ifcjni | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
68-
| ifcparse | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
69-
| ifcwrap | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
70-
| qtviewer | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
71-
| serializers | Internal library for IfcOpenShell | LGPL-3.0-or-later\* |
72-
73-
[LGPL]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/COPYING.LESSER "LGPL-3.0-or-later"
74-
[IFC]: https://technical.buildingsmart.org/standards/ifc/ "IFC"
75-
[IFC2x3 TC1]: https://standards.buildingsmart.org/IFC/RELEASE/IFC2x3/TC1/HTML/ "IFC2x3 TC1"
76-
[IFC4 Add2 TC1]: https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD2_TC1/HTML/ "IFC4 Add2 TC1"
77-
[IFC4x3 Add2]: https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/ "IFC4x3 Add2"
78-
[Visual Studio]: https://www.visualstudio.com/ "Visual Studio"
79-
[Visual C++ Build Tools]: http://landinghub.visualstudio.com/visual-cpp-build-tools "Visual C++ Build Tools"
80-
[MSYS2]: https://msys2.github.io/ "MSYS2"
81-
[win/readme.md]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/win/readme.md "win/readme.md"
82-
[nix/build-all.py]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/nix/build-all.py "nix/build-all.py"
2+
IfcOpenShell (3D Repo Fork)
3+
===========================
4+
5+
This is a fork of IfcOpenShell for use by [3drepobouncer](https://github.com/3drepo/3drepobouncer).
6+
7+
It currently tracks 0.8.0.
8+
9+
### Changes
10+
11+
1. Merged this PR: https://github.com/IfcOpenShell/IfcOpenShell/pull/6329
12+
2. Gave control over lifetime of Iterator Elements to the consumer (see this discussion: https://github.com/IfcOpenShell/IfcOpenShell/issues/6385)
13+
14+
Problems we are aware of but will not fix:
15+
16+
1. HDF5 caching won't work default materials: https://github.com/IfcOpenShell/IfcOpenShell/issues/6340
17+
2. PropertySetDefinitionSets are not supported: https://github.com/IfcOpenShell/IfcOpenShell/issues/6330
18+
3. [IfcRelDefinesByObject](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/FINAL/HTML/schema/ifckernel/lexical/ifcreldefinesbyobject.htm) does not take the RelatingObject's Representations.
19+
20+
21+
### Building
22+
23+
**Windows v143**
24+
25+
1. Give `set IFCOS_INSTALL_PYTHON=FALSE` before running build-deps.cmd.
26+
2. Make sure to give the build tools with build-deps.cmd, e.g. `build-deps.cmd vs2022-x64`. Despite the samples, this is not optional.
27+
3. Give the same tools for run-cmake.bat, and disable python: `run-cmake.bat vs2022-x64 -DBUILD_IFCPYTHON=0 -DCOLLADA_SUPPORT=0`
28+
29+
30+
**Windows v142**
31+
32+
1. Give `set IFCOS_INSTALL_PYTHON=FALSE` before running build-deps.cmd
33+
2. Make sure to give the build tools with build-deps.cmd, e.g. `build-deps.cmd vs2019-x64`. Despite the samples, this is not optional.
34+
3. Give the same tools for run-cmake.bat, and disable python: `run-cmake.bat vs2019-x64 -DBUILD_IFCPYTHON=0 -DCOLLADA_SUPPORT=0`
35+
36+
If receiving linker errors, replace the Boost environment variables with a 3rd party copy of Boost in `run-cmake.bat`, e.g.
37+
38+
```
39+
set BOOST_ROOT=D:\3drepo\bouncer\boost_1_86_0
40+
set BOOST_LIBRARYDIR=D:\3drepo\bouncer\boost_1_86_0\lib64-msvc-14.2
41+
```
42+
43+
IfcOpenShell comes with its own version of OpenCascade (7.8.1).
44+
45+
It is necessary to copy the Eigen dependency into the installed `/include` folder, as `INSTALL` wont do it.
46+
47+
IFCOS 0.7.0 introduced CGAL, which itself introduces two static dependencies. The `FindIFCOPENSHELL` module has been updated to also include these libraries (`mpfr`, `mpir`), however these must be copied into the IfcOpenShell installation `/lib` folder on Windows (on Linux, the CMake will search `usr/libs` which should find the OS versions).

0 commit comments

Comments
 (0)