private void applyFields(Set<String> geometryFields, TypeDef typeDef, Include include) throws QueryException { include.addType(typeDef); include.addField("geometry"); Include geometryInclude = include.createInclude(); geometryInclude.addType(GeometryPackage.eINSTANCE.getGeometryInfo(), false); geometryInclude.addField("data"); Include geometryData = geometryInclude.createInclude(); geometryData.addType(GeometryPackage.eINSTANCE.getGeometryData(), false); geometryData.addField("color"); for (String field : geometryFields) { geometryData.addField(field); } }
product.addType(packageMetaData.getEClass("IfcProduct"), true); product.addFieldDirect("geometry"); Include geometryInfo = product.createInclude(); geometryInfo.addType(GeometryPackage.eINSTANCE.getGeometryInfo(), false);
include.addType(eClass, true); include.addField("geometry"); Include include2 = include.createInclude(); include2.addType(new TypeDef(GeometryPackage.eINSTANCE.getGeometryInfo(), false)); include2.addField("data");
openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings"); Include hasOpenings = openingsInclude.createInclude(); hasOpenings.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); hasOpenings.addField("RelatedOpeningElement");
include.addType(geometryInfoClass, false); include.addField("data"); Include geometryData = include.createInclude(); geometryData.addType(getPackageMetaData().getEClassIncludingDependencies("GeometryData"), false); geometryData.addFieldDirect("indices");
include.addType(eClass, false); include.addField("geometry"); Include include2 = include.createInclude(); include2.addType(new TypeDef(GeometryPackage.eINSTANCE.getGeometryInfo(), false)); include2.addField("data");
connected.addField("ConnectedTo"); connected.addField("ConnectedFrom"); Include connectedTo = connected.createInclude(); connectedTo.addType(packageMetaData.getEClass("IfcRelConnectsPathElements"), false); connectedTo.addField("RelatedElement"); Include openingsInclude = connectedTo.createInclude(); openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings"); Include hasOpenings = openingsInclude.createInclude(); hasOpenings.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); hasOpenings.addField("RelatedOpeningElement"); fillsVoidsInclude.addType(eClass, false); fillsVoidsInclude.addField("VoidsElements"); Include fillsInclude = fillsVoidsInclude.createInclude(); fillsInclude.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); fillsInclude.addField("RelatingBuildingElement"); openingsInclude.addType(packageMetaData.getEClass(eClass.getName()), false); openingsInclude.addField("HasOpenings"); Include hasOpenings = openingsInclude.createInclude(); hasOpenings.addType(packageMetaData.getEClass("IfcRelVoidsElement"), false); hasOpenings.addField("RelatedOpeningElement");
unitsInContextInclude.addType(packageMetaData.getEClass("IfcProject"), false); unitsInContextInclude.addField("UnitsInContext"); Include units = unitsInContextInclude.createInclude(); units.addType(packageMetaData.getEClass("IfcUnitAssignment"), false); units.addField("Units"); Include unit = units.createInclude(); unit.addType(packageMetaData.getEClass("IfcSIUnit"), false);
representationInclude.addType(eClass, false); representationInclude.addFieldDirect("Representation"); Include representationsInclude = representationInclude.createInclude(); representationsInclude.addType(packageMetaData.getEClass("IfcProductRepresentation"), true); representationsInclude.addFieldDirect("Representations"); Include itemsInclude = representationsInclude.createInclude(); itemsInclude.addType(packageMetaData.getEClass("IfcShapeRepresentation"), false); itemsInclude.addFieldDirect("Items"); itemsInclude.addFieldDirect("ContextOfItems"); Include mappingSourceInclude = itemsInclude.createInclude(); mappingSourceInclude.addType(packageMetaData.getEClass("IfcMappedItem"), false); mappingSourceInclude.addFieldDirect("MappingSource"); mappingSourceInclude.addFieldDirect("MappingTarget"); Include representationMap = mappingSourceInclude.createInclude(); representationMap.addType(packageMetaData.getEClass("IfcRepresentationMap"), false); representationMap.addFieldDirect("MappedRepresentation"); Include createInclude = representationMap.createInclude(); createInclude.addType(packageMetaData.getEClass("IfcShapeRepresentation"), true); Include targetInclude = mappingSourceInclude.createInclude(); targetInclude.addType(packageMetaData.getEClass("IfcCartesianTransformationOperator3D"), false); targetInclude.addFieldDirect("Axis1"); include3.addType(eClass, false); include3.addFieldDirect("Representation"); Include rInclude = include3.createInclude(); rInclude.addType(packageMetaData.getEClass("IfcProductRepresentation"), true); rInclude.addFieldDirect("Representations"); Include representationsInclude2 = rInclude.createInclude();
product.addType(packageMetaData.getEClass("IfcProduct"), true); product.addFieldDirect("geometry"); Include geometryInfo = product.createInclude(); geometryInfo.addType(GeometryPackage.eINSTANCE.getGeometryInfo(), false); geometryInfo.addFieldDirect("data"); geometryInfo.addFieldDirect("boundsMm"); Include boundsInclude = geometryInfo.createInclude(); boundsInclude.addType(GeometryPackage.eINSTANCE.getBounds(), false); boundsInclude.addFieldDirect("min"); boundsInclude.addFieldDirect("max"); Include dataInclude = geometryInfo.createInclude(); dataInclude.addType(GeometryPackage.eINSTANCE.getGeometryData(), false); dataInclude.addFieldDirect("boundsMm"); Include dataBoundsInclude = dataInclude.createInclude(); dataBoundsInclude.addType(GeometryPackage.eINSTANCE.getBounds(), false); dataBoundsInclude.addFieldDirect("min");
for (EReference field : inc.getFields()) { if (ifcProduct.isSuperTypeOf((EClass)field.getEType()) || ((EClass)field.getEType()).isSuperTypeOf(ifcProduct)) { Include newInclude = inc.createInclude(); applyFields(geometryFields, new TypeDef(ifcProduct, true), newInclude);