GltfSerializers icon indicating copy to clipboard operation
GltfSerializers copied to clipboard

IFC4 (streaming) to GLTF2 conversion not working.

Open bhargavdave27 opened this issue 6 years ago • 2 comments

When I try to convert a IFC4 (streaming file) to GLTF 2 format I am getting this error.

class org.eclipse.emf.ecore.impl.EDataTypeImpl cannot be cast to class org.eclipse.emf.ecore.EEnum (org.eclipse.emf.ecore.impl.EDataTypeImpl and org.eclipse.emf.ecore.EEnum are in unnamed module of loader 'app')

This is the log: 18:46:09 ERROR [pool-1-thread-2]: (LongAction.java:194) java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EDataTypeImpl cannot be cast to class org.eclipse.emf.ecore.EEnum (org.eclipse.emf.ecore.impl.EDataTypeImpl and org.eclipse.emf.ecore.EEnum are in unnamed module of loader 'app') at org.bimserver.schemaconverter.AbstractSchemaConverter.copy(AbstractSchemaConverter.java:90) at org.bimserver.schemaconverter.AbstractSchemaConverter.copy(AbstractSchemaConverter.java:129) at org.bimserver.schemaconverter.Ifc4ToIfcIfc2x3tc1Converter.convert(Ifc4ToIfcIfc2x3tc1Converter.java:42) at org.bimserver.serializers.SerializerFactory.create(SerializerFactory.java:104) at org.bimserver.longaction.LongDownloadOrCheckoutAction.convertModelToCheckoutResult(LongDownloadOrCheckoutAction.java:77) at org.bimserver.longaction.LongDownloadOrCheckoutAction.executeAction(LongDownloadOrCheckoutAction.java:139) at org.bimserver.longaction.LongDownloadAction.execute(LongDownloadAction.java:49) at org.bimserver.longaction.LongActionManager$1.run(LongActionManager.java:54) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:835) 18:46:09 ERROR [pool-1-thread-2]: (LongDownloadAction.java:54) java.lang.ClassCastException: class org.eclipse.emf.ecore.impl.EDataTypeImpl cannot be cast to class org.eclipse.emf.ecore.EEnum (org.eclipse.emf.ecore.impl.EDataTypeImpl and org.eclipse.emf.ecore.EEnum are in unnamed module of loader 'app') at org.bimserver.schemaconverter.AbstractSchemaConverter.copy(AbstractSchemaConverter.java:90) at org.bimserver.schemaconverter.AbstractSchemaConverter.copy(AbstractSchemaConverter.java:129) at org.bimserver.schemaconverter.Ifc4ToIfcIfc2x3tc1Converter.convert(Ifc4ToIfcIfc2x3tc1Converter.java:42) at org.bimserver.serializers.SerializerFactory.create(SerializerFactory.java:104) at org.bimserver.longaction.LongDownloadOrCheckoutAction.convertModelToCheckoutResult(LongDownloadOrCheckoutAction.java:77) at org.bimserver.longaction.LongDownloadOrCheckoutAction.executeAction(LongDownloadOrCheckoutAction.java:139) at org.bimserver.longaction.LongDownloadAction.execute(LongDownloadAction.java:49) at org.bimserver.longaction.LongActionManager$1.run(LongActionManager.java:54) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:835)

Any help will be appreciated. Thanks.

bhargavdave27 avatar Aug 27 '19 13:08 bhargavdave27

The glTF2 serializer only supports Ifc2x3tc1. BIMserver tries to convert your IFC4 model to Ifc2x3tc1 to comply to the expected input format of the glTF2 serializer. That's where this breaks. The current schema conversion code is simply an example of how it could be done, the implementation is not complete though.

rubendel avatar Aug 27 '19 14:08 rubendel

Thanks Ruben. We'll look into glTF2 serializer.

bhargavdave27 avatar Aug 27 '19 17:08 bhargavdave27