use of org.bimserver.database.queries.om.QueryPart in project BIMserver by opensourceBIM.
the class TestGetMaterials method test.
@Test
public void test() {
try {
// Create a new BimServerClient with authentication
BimServerClientInterface bimServerClient = getFactory().create(new UsernamePasswordAuthenticationInfo("admin@bimserver.org", "admin"));
// Create a new project
SProject newProject = bimServerClient.getServiceInterface().addProject("test" + Math.random(), "ifc2x3tc1");
// Get the appropriate deserializer
SDeserializerPluginConfiguration deserializer = bimServerClient.getServiceInterface().getSuggestedDeserializerForExtension("ifc", newProject.getOid());
// Checkin the file
bimServerClient.checkinSync(newProject.getOid(), "test", deserializer.getOid(), false, new URL("https://github.com/opensourceBIM/TestFiles/raw/master/TestData/data/AC11-Institute-Var-2-IFC.ifc"));
// Refresh project info
newProject = bimServerClient.getServiceInterface().getProjectByPoid(newProject.getOid());
IfcModelInterface model = bimServerClient.getModel(newProject, newProject.getLastRevisionId(), false, false);
Query query = new Query(model.getPackageMetaData());
query.setDoubleBuffer(true);
QueryPart queryPart = query.createQueryPart();
queryPart.addType(new TypeDef(model.getPackageMetaData().getEClass("IfcProduct"), true));
Include include = queryPart.createInclude();
include.addType(model.getPackageMetaData().getEClass("IfcObjectDefinition"), true);
include.addField("HasAssociations");
include.addInclude("ifc2x3tc1-stdlib:IfcRelAssociatesMaterial");
JsonQueryObjectModelConverter converter = new JsonQueryObjectModelConverter(model.getPackageMetaData());
model.query(converter.toJson(query), true);
int nrMaterialsWithName = 0;
for (IfcProduct ifcProduct : model.getAllWithSubTypes(IfcProduct.class)) {
Set<IfcMaterial> materials = getMaterials(ifcProduct);
for (IfcMaterial ifcMaterial : materials) {
if (ifcMaterial.getName() != null) {
System.out.println(ifcMaterial.getName());
nrMaterialsWithName++;
}
}
}
Assert.assertEquals(416, nrMaterialsWithName);
} catch (Throwable e) {
e.printStackTrace();
if (e instanceof AssertionError) {
throw (AssertionError) e;
}
fail(e.getMessage());
}
}
Aggregations