bimdata / BCF-API-XML-translator

0 stars 4 forks source link

Collaboration with IfcOpenShell's BCF lib? #3

Open Moult opened 3 years ago

Moult commented 3 years ago

Hey there! Just wondering if you know about https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.6.0/src/bcf and https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.6.0/src/foundationserver and whether we could collaborate somehow? There seems to be some duplication of effort.

Amoki commented 3 years ago

Sure! The purpose of this lib is to import BCF-xml files into a BCF-server storing data in the BCF-API format and to export files from it. If I understand well, the IfcOpenShell bcf lib is a tool to read BCF-xml files and a BCF-API client.

We use it in our own BCF-server implementation to add import/export, an equivalent of foundationserver but coded in Django. It generates an Open API file (https://api.bimdata.io/doc/bcf) used by https://github.com/OpenAPITools/openapi-generator to generate an API client.

We could open source (LGPL license) a Django app using our BCF-server implementation as well, which have more feature than Flask (backoffice, integrated migrations, and possible libs for authentication/Odata filters), why not directly on the IfcOpenShell github org.

What do you have in mind?

Moult commented 3 years ago

Ah I missed this reply. Yes I guess this repo is less to do with BCF and more to do with OpenCDE data massaging if I understand it right. If so, yes indeed open sourcing the OpenCDE server which is more fully featured would be a great idea!

aothms commented 3 years ago

+1 on django being nice in the sense that you get the admin module for easy crud tasks for free. Let me know if I need to create a repo for something.

Amoki commented 3 years ago

What I have in mind:

BlenderBIM would use the low-level lib, dev already using Django just wanting to add a BCF API to their app (at least BIMData.io) would use the Django lib and devs who want to have a standalone BCF API would use the Django app.

The low-level python lib should have its own repo, its own CI cycle, and pypi release. The Django stuff would be in another repo. The lib will be released on pypi and we could build a docker image to run the Django app more easily.

Timing speaking, we plan to do this in october