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

Porting BIMServer to IFC 4.3_RC #1236

Open
dkurillo opened this issue Jan 27, 2022 · 10 comments
Open

Porting BIMServer to IFC 4.3_RC #1236

dkurillo opened this issue Jan 27, 2022 · 10 comments
Labels

Comments

@dkurillo
Copy link

Does somebody plan to port BimServer to the latest version of IFC standard? Is it difficult, are there any pitfalls?

@hlg
Copy link
Member

hlg commented Jan 27, 2022

We are planning to add IFC4.3 with the final version and official release.

@hlg hlg added the feature label Jan 27, 2022
@epeter-
Copy link

epeter- commented Jan 27, 2022 via email

@muren400
Copy link

muren400 commented Aug 1, 2023

Hi, are there any news regarding support for IFC4.3?

@muren400
Copy link

muren400 commented Aug 8, 2023

If I wanted to add support for IFC4X3 or some other IFC Schema myself, what steps would I go through to accomplish that? Is there some documentation regarding that topic?

@hlg
Copy link
Member

hlg commented Oct 19, 2023

I still have not found the time to review and reproduce the schema update process and thus cannot give instructions from the top of my head. I would go as follows: First compile issues and commits where the schema has been changed previously, e.g. to IFC4 ADD2 TC1 or IFC4 in general, or the process has been discussed (partly). Check the files that have changed and read related code, e.g. CodeMigrator.java.

Basically, I think we need to 1. generate ecore from the new Express files, 2. derive the genmodel from the ecore, 3. generate derived classes, 4. cater for database migrations, 5. adjust any schema specific code. The latter might be easier after #1158, but this would be a larger endeavour.

@PavelWhiteTiger
Copy link

PavelWhiteTiger commented Oct 23, 2023

Do we need models.ecore or IFC4X3_ADD2.ecore ?
And how i can get models.ecore ?

@hlg
Copy link
Member

hlg commented Oct 23, 2023

I think models.ecore is just a collection of the various packages. For example, the IFC2x3 package in models.ecore should be identical to the one in ifc2x3tc1.ecore. I have not done a diff, maybe you can verify. The difference between IFC packages and other packages (store, log, geometry) is just that the EMF models (.ecore) for IFC packages are derived from EXPRESS models (.exp) and the other packages are directly maintained as EMF models, for example using Eclipse tooling for modelling. Then, the models are in some regards treated the same, e.g. for database storage.

I forgot that with a new schema, we also need to touch many plugins, most notably IfcPlugins with serializers and deserializers. There are also different predefined queries for each schema. Basically, I would search the whole code base for occurrences of the existing IFC schema names in code or filenames. Then walk through the findings and for each occurrence understand why schemas are treated differently and how to fit in the new schema.

@monrus
Copy link

monrus commented Feb 21, 2024

Hi, we prepared support of ifc4x3. We would like to do PR and publish a new version

@hlg
Copy link
Member

hlg commented Feb 21, 2024

Great, I saw your PR in opensourceBIM/BuildingSMARTLibrary as well as the work in the monrus/IfcPlugins fork with no PR yet. Other than those two and this repository, I think there are no other affected opensourceBIM repositories, are they?

For BIMserver itself I did not find your fork yet. You are welcome to go ahead and submit a PR. As this will be a bit larger of a change and more involved, review and testing will take a bit longer though. I would like to do a release before merging the PR, with the changes currently in master, and then after the merge. In the meantime, others could also build, test and use the snapshot from your fork.

Would you also share documentation of the steps in the procedure, such that we can put that in the Wiki and easily reproduce this in the future for IFC4X4?

@monrus
Copy link

monrus commented Feb 22, 2024

We prepared changes on the BimServer repository but haven't published them on GitHub yet (use our own private repositories). Currently, we work with the version that supports ifc4x3 and it looks good for our use cases via the java client. The main problem with publishing it to GitHub is that we do other changes that need to be separated. I am going to do it next week.

I will prepare documentation with steps (your comments on #1306 were very helpful) and describe some cases which, I think, still contain problems.

@hlg hlg mentioned this issue May 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants