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

Handle IFC header data when working with low level interface #1307

Open
PavelWhiteTiger opened this issue Nov 10, 2023 · 3 comments
Open

Handle IFC header data when working with low level interface #1307

PavelWhiteTiger opened this issue Nov 10, 2023 · 3 comments

Comments

@PavelWhiteTiger
Copy link

How to get IfcHeader? When we try download ifc model, ServerIfcModel has`t modelMetaData and IfcHeader... In all cases IfcHeader = null

@hlg
Copy link
Member

hlg commented Nov 12, 2023

Please provide some more information on how you use BIMserver (embedded, standalone?) and how you try to access the BIMserver data ("download the IFC model"), in order to reproduce this potential issue. Also the subject line could be a bit more specific, yet less verbose.

@PavelWhiteTiger
Copy link
Author

We fill the model using ClientIfcModel (in the client code) and in LongDownloadOrCheckoutAction we get ServerIfcModel, ifcHeader in ServerIfcModelis=null.
IfcPluginBase on BimServer when using the writeHeader method also shows that ifcHeader == null. We are using IfcStepSerializer (ifc4)

@hlg
Copy link
Member

hlg commented Nov 16, 2023

I assume you use recordChanges=true and ClientIfcModel.commit(String comment) to populate the model and send it to the server? This is based on the low level interface. It seems that in this case header data is indeed not transferred to the server and currently there is no way to do so or to set it explicitly. Header data population on the server is only implemented for transfer of serialized data where the serialization includes the header data (e.g. IFC-SPF as the standard serialization). Thus, if you set header properties via ClientIfcModel.getMetaData().getIfcHeader() and then use ClientIfcModel.checkin(long poid, String comment), the header data should end up on the server in the database and subsequently in following downloads. This is because contrary to incremental model transfer with commit, checkin (with recordChanges=false) serializes the whole model and transfers it in one go. However, for this method you need IfcPlugins loaded on the client side. I will tag this issue, that is header handling for low level changes, as a feature for future improvements of the low level interface. This interface needs a serious overhaul and refactoring anyway.

@hlg hlg changed the title I canot get IfcHeader Handle IFC header data when working with low level interface Nov 23, 2023
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

2 participants