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

IFC4 deserializer fails to parse IfcRationalBsplineSurfaceWithKnots #7

Open
hlg opened this issue Aug 22, 2017 · 5 comments
Open

IFC4 deserializer fails to parse IfcRationalBsplineSurfaceWithKnots #7

hlg opened this issue Aug 22, 2017 · 5 comments

Comments

@hlg
Copy link
Member

hlg commented Aug 22, 2017

IFC4 deserializer fails to parse IfcRationalBsplineSurfaceWithKnots with error message Error on line xxx: Field not found: ListAsString. The offending line looks like this and does not seem to be wrong:

#15=IFCRATIONALBSPLINESURFACEWITHKNOTS(3,1,((#1,#2),(#3,#4),(#5,#6),(#7, #8),(#9,#10),(#11,#12),(#13,#14)),.RULED_SURF.,.F.,.F.,.U.,(4,1,1,1,4),(2,2),(0.,0.25,0.5,0.749999999999999,1.),(0.,1.),.UNSPECIFIED.,((1.,1.),(1.,1.),(1.,1.),(1.,1.),(1.,1.),(1.,1.),(1.,1.)));

I checked against the attribute types in the Express file, but did not manage to trace this back to the ecore layer. I am using Bimserver version 1.5.81. Here is the stacktrace.

org.bimserver.shared.exceptions.UserException: 
        at org.bimserver.database.actions.StreamingCheckinDatabaseAction.execute(StreamingCheckinDatabaseAction.java:350)
        at org.bimserver.database.actions.StreamingCheckinDatabaseAction.execute(StreamingCheckinDatabaseAction.java:79)
        at org.bimserver.database.DatabaseSession.executeAndCommitAction(DatabaseSession.java:708)
        at org.bimserver.database.DatabaseSession.executeAndCommitAction(DatabaseSession.java:685)
        at org.bimserver.longaction.LongStreamingCheckinAction.execute(LongStreamingCheckinAction.java:62)
        at org.bimserver.longaction.LongActionManager$1.run(LongActionManager.java:43)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.bimserver.plugins.deserializers.DeserializeException: Error on line 429057: Field not found: ListAsString
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.readList(IfcStepStreamingDeserializer.java:437)
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.readList(IfcStepStreamingDeserializer.java:472)
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.processRecord(IfcStepStreamingDeserializer.java:377)
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.processLine(IfcStepStreamingDeserializer.java:248)
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.read(IfcStepStreamingDeserializer.java:183)
        at org.bimserver.ifc.step.deserializer.IfcStepStreamingDeserializer.read(IfcStepStreamingDeserializer.java:165)
        at org.bimserver.database.actions.StreamingCheckinDatabaseAction.execute(StreamingCheckinDatabaseAction.java:198)
        ... 6 common frames omitted
@hlg
Copy link
Member Author

hlg commented Aug 24, 2017

This is obviously related to the deserialization of multidimensional arrays, which are new in IFC4. There was some work going on in this area of the IFC deserializer recently (commits 492bb93, 166790e). @rubendel, is this considered final or still under development?

@rubendel
Copy link
Member

That's probably a bug in the multidimensional array code. I'll have a look at it, thanks for reporting. I still have very little (valid) IFC4 files to test with, can you perhaps help me with more models?

@hlg
Copy link
Member Author

hlg commented Aug 28, 2017

I am sorry, we can not share IFC4 files from our research project currently. However, we can keep reporting issues as they arise, and provide minimal test files for these issues, such as the one attached. Would that help?

IfcRationalBSplineSurfaceWithKnots.ifc.txt (added .txt extension to make Github happy)

@rubendel
Copy link
Member

Sure that's even better! Thanks. Kinda busy at the moment so it can take a while before I get back to this.

@hlg
Copy link
Member Author

hlg commented Sep 6, 2017

I am adding two new sample files for testing. BIMserver fails when representation items are parsed in isolation without representation context. Thus, in the new file, I have embedded the sample IfcRationalBSplineSurfaceWithKnots entity in a proper IfcShapeRepresentation.

IfcRationalBSplineSurfaceWithKnots_IfcShapeRep.ifc.txt

The second sample file with IfcTriangulatedFaceSet does also contain a two-dimensional array, but as opposed to the original sample, this one does not refer to other entities, its elements are of primitive type. With this one, the error does not occur, the parser is happy.

IfcTriangulatedFaceSet_IfcShapeRep.ifc.txt

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

No branches or pull requests

2 participants