Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turn BlenderBIM into a client for remote BIM-collaboration on existing OpenCDE-API-server with a graph backend #93

Open
marwiss opened this issue Apr 1, 2024 · 4 comments

Comments

@marwiss
Copy link

marwiss commented Apr 1, 2024

Outline

The project aim is to turn BlenderBIM into a client for remote BIM-collaboration and a client for remote BIM-model-sharing through a Common Data Environment (a CDE working as BIM/IFC-server) using the already developed OpenCDE API server and the OpenCDE API specifications provided by buildingSMART: BCF API and Documents API.

OpenCDE API:s are open standards. This project will hence enable usage of BlenderBIM as a client on other BIM-servers that implements the OpenCDE API:s.

Details

An OpenCDE API server that implements all buildingSMART OpenCDE API:s (BCF API, Documents API and Foundation API) has been developed in python and the FastAPI framework. Solibri Office was used as a client for testing this server software during development.

The code of the OpenCDE server is located in the IfcOpenShell repository here: https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/opencdeserver

The OpenCDE API:s is a set of open API-specifications provided by buildingSMART. https://github.com/buildingSMART/OpenCDE-API

  • BIM Collaboration Format (BCF) API is used for collaboration on shared BIM models through a remote BCF-server. BCF API has the same purpose as BCF XML (which is a file format) but the difference is that the data is communicated as JSON through a BCF-server, instead of sending XML-files. https://github.com/buildingSMART/BCF-API
  • Documents API is used communication between a client and a CDE (acc. ISO 19650-1). The purpose is a common data environement for sharing models, documents et.c. https://github.com/buildingSMART/documents-API
  • Foundation API is used for authentication et.c. and must be implemented by any client or server that implements anyone of the other two OpenCDE API:s. https://github.com/buildingSMART/foundation-API

To summarize: The model (the IFC data) will normally be shared to the server using Documents API, and downloaded form the server using Documents API. BCF API can be used for remote collaboration on the models located on the server et.c.

The purpose of the open API specification is to enable independent development of clients and servers that can communication with eachother. A server has already been developed and shared as open source on IfcOpenShell. However, at the moment there is no open source client with a graphical user interface for the OpenCDE API:s. A python library for BCF API communication is available: https://pypi.org/project/bcf-client/.

The aim of this project is to turn BlenderBIM into a OpenCDE-client (a client that already have BIM-capabilities) that can communicate remotely with (and make use of) the existing open source OpenCDE-server on: https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.7.0/src/opencdeserver

An add-on for GIT-collaboration have already been developed:

Collaboration using Documents API and BCF API is just another way of collaboration. This way of collaboration might be more suitable for AEC-professionals who does not have experience of GIT. Som features of GIT are not possible. But other features that are possible when using the OpenCDE API:s are not possible using GIT.

Expected Outcome

  • The BlenderBIM can connect as a client to the OpenCDE API server using the Foundation API
  • User management functionality is added to OpenCDE API server: Register, invite, delete users
  • BlenderBIM is a BCF API client - can collaborate on BIM-models remotely using the already developed OpenCDE-server
  • BlenderBIM is a Documents API client - can share/download BIM-models remotely with the already developed OpenCDE-server
  • User interface in BlenderBIM for setting up OpenCDE-server on localhost and user management (inviting collegues, adding/deleting users et.c.)
  • User interface in BlenderBIM for remote BIM collaboration using BCF API
  • User interface in BlenderBIM for remote model download and sharing using Documents API
  • Simplify the process of turning your computer into an OpenCDE-server and inviting colleages to collaborate on your BIM model
  • Simplify the process of deploying the OpenCDE-server as a BIM-server to the cloud for remote collaboration with BlenderBIM as a client

Extra: Implement som of the routes/endpoints of the OpenCDE API specifications that Solibri Office does not support. I.e. implement the full official buildingSMART open specifications using the open source server (OpenCDE API server) and open source client (BlenderBIM).

Future Possibilities

  • IFC-server capabilities: Round-tripping of IFC data between IFC STEP (or python or C++ objects in IfcOpenShell) and the OpenCDE API server graph DB. More info on storing IFC data as label property graph (LPG) here: https://www.sciencedirect.com/science/article/pii/S0926580523000389
  • Potential synergies with the other GSoC project "Web-based UI integration with Blender" Web-based UI integration with Blender #87 because the Web-based UI could be hosted by the same OpenCDE API server as in this project.
  • Visualization of IFC data as graph in that Web-based UI. For example using pyviz or similar tools.

Project Properties

Skills

Difficulty

Hard

Size

Long (350h)

Additional Information

@Kenyg369
Copy link

Kenyg369 commented Apr 3, 2024

@marwiss
I am interested!! ,
but the GSoC 2024 application submission is just due after you posted this. 😥

@marwiss
Copy link
Author

marwiss commented Apr 3, 2024

I am sorry @Kenyg369 my mistake. I thought the deadline was for the project idea proposal. Maybe it will be possible again next year.

@ayushgupta9906
Copy link

I want to work on this issue. Please Assign this to me.
Thanks

@marwiss
Copy link
Author

marwiss commented Apr 11, 2024

@ayushgupta9906 thanks for your interest! Nice that you are enthusiastic. I think the deadline for GSoC is over, but this is open source, so I guess voluntary contributors are welcome at anytime. Maybe it would be a good idea to create a team for this project, because it is quite complex and requires many skills. You can contact @Moult for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants