package test; import java.io.File; import nl.tue.buildingsmart.emf.SchemaLoader; import org.bimserver.emf.IdEObject; import org.bimserver.emf.IfcModelInterface; import org.bimserver.ifc.step.deserializer.IfcStepDeserializer; import org.bimserver.ifc.xml.deserializer.IfcXmlDeserializer; import org.bimserver.plugins.deserializers.DeserializeException; public class EmbeddedReader2 { /** * @param args * @throws DeserializeException */ public static void main(String[] args) throws DeserializeException{ IfcStepDeserializer d = new IfcStepDeserializer(); IfcXmlDeserializer e = new IfcXmlDeserializer(); d.init(SchemaLoader.loadSchema(new File("schema/IFC2X3_TC1.exp"))); //must check the format (STEP|XML) befor this point //use IfcXmlDeserializer for IFC XML //IfcStepDeserializer will never return from read if given .ifcxml file IfcModelInterface s = d.read(new File("/media/titan-data/experiments-parsers/ifc/ifc-samples/DDS-DuplexHouse_Sanitary_V1.0.ifc/DDS-DuplexHouse_Sanitary_V1.0.ifc.txt")); int n=0; for(IdEObject o: s.getValues()){ if (n%10000==0) System.out.println(o.toString()); n++; } System.out.println(n+" Number of objects in IFC file"); } }