@SuppressWarnings("unchecked") private void createPresentationStyleAssignmentStyles(IfcModelInterface model, String representationIdentifier, IdEObject ifcPresentationStyleAssignment, IdEObject color) throws IfcModelInterfaceException { if (representationIdentifier.equals("Body")) { IdEObject ifcPresentationStyleSelect = model.create(model.getPackageMetaData().getEClass("IfcSurfaceStyle")); EStructuralFeature stylesFeature = ifcPresentationStyleAssignment.eClass().getEStructuralFeature("Styles"); List<IdEObject> list = (List<IdEObject>) ifcPresentationStyleAssignment.eGet(stylesFeature); list.add(ifcPresentationStyleSelect); createSurfaceStyleStyles(model, representationIdentifier, ifcPresentationStyleSelect, color); } else { // Unimplemented } }
@SuppressWarnings({ "unchecked", "rawtypes" }) private void processRef(IfcModelInterface model, WaitingList<Long> waitingList, IdEObjectImpl object, EStructuralFeature eStructuralFeature, int index, AbstractEList list, long refOid) throws DeserializeException { EntityDefinition entityBN = model.getPackageMetaData().getSchemaDefinition().getEntityBN(object.eClass().getName()); Attribute attributeBN = entityBN.getAttributeBNWithSuper(eStructuralFeature.getName()); if (skipInverses && attributeBN instanceof InverseAttribute && ((EReference)eStructuralFeature).getEOpposite() != null) { // skip } else { if (model.contains(refOid)) { EObject referencedObject = model.get(refOid); if (referencedObject != null) { addToList(eStructuralFeature, index, list, referencedObject); } } else { waitingList.add(refOid, new ListWaitingObject(-1, object, (EReference) eStructuralFeature, index)); } } }
public IdEObject copyBasicObjects(IfcModelInterface model, Map<IdEObject, IdEObject> bigMap) throws IfcModelInterfaceException { PackageMetaData packageMetaData = model.getPackageMetaData(); IdEObject newProject = null; for (IdEObject idEObject : model.getAllWithSubTypes(packageMetaData.getEClass("IfcProject"))) { newProject = copy(idEObject, false, skipRepresentation); bigMap.put(newProject, idEObject); } IdEObject newOwnerHistory = null; for (IdEObject idEObject : model.getAllWithSubTypes(packageMetaData.getEClass("IfcOwnerHistory"))) { newOwnerHistory = copy(idEObject, false, skipRepresentation); bigMap.put(newOwnerHistory, idEObject); } for (IdEObject idEObject : model.getAllWithSubTypes(packageMetaData.getEClass("IfcUnit"))) { bigMap.put(copy(idEObject, false, skipRepresentation), idEObject); } for (IdEObject idEObject : model.getAllWithSubTypes(packageMetaData.getEClass("IfcUnitAssignment"))) { bigMap.put(copy(idEObject, false, skipRepresentation), idEObject); } return newOwnerHistory; } }
public SummaryMap(IfcModelInterface model) throws BimserverDatabaseException { this.packageMetaData = model.getPackageMetaData(); this.summaryMap = new TreeMap<EClass, Integer>(new EClassNameComparator()); for (IdEObject idEObject : model.getValues()) { if (!summaryMap.containsKey(idEObject.eClass())) { summaryMap.put(idEObject.eClass(), 1); } else { summaryMap.put(idEObject.eClass(), summaryMap.get(idEObject.eClass()) + 1); } } }
public <T extends IdEObject> T create(Class<T> clazz) throws IfcModelInterfaceException { T object = model.create(clazz); if (object instanceof IfcRoot) { ((IfcRoot)object).setGlobalId(GuidCompressor.getNewIfcGloballyUniqueId()); if (defaultOwnerHistory != null) { ((IfcRoot)object).setOwnerHistory(defaultOwnerHistory); } } if (addOnCreate) { model.add(object.getOid(), object); } return object; }
setProgress("Deserializing IFC file...", 0); if (getModel().size() == 0) { throw new DeserializeException("Cannot checkin empty model"); for (IdEObject idEObject : getModel().getValues()) { if (idEObject.eClass().getEAnnotation("hidden") == null) { size++; getModel().fixInverseMismatches(); IfcHeader ifcHeader = getModel().getModelMetaData().getIfcHeader(); if (ifcHeader != null) { getDatabaseSession().store(ifcHeader); concreteRevision.setChecksum(getModel().getModelMetaData().getChecksum()); ifcModel.fixOidsFlat(getDatabaseSession()); RenderEnginePool pool = getBimServer().getRenderEnginePools().getRenderEnginePool(model.getPackageMetaData().getSchema(), defaultRenderEngine.getPluginDescriptor().getPluginClassName(), getBimServer().getPluginSettingsCache().getPluginSettings(defaultRenderEngine.getOid())); Set<EClass> eClasses = ifcModel.getUsedClasses(); Map<EClass, Long> startOids = getDatabaseSession().getStartOids(); if (startOids == null) { getDatabaseSession().store(ifcModel.getValues(), project.getId(), concreteRevision.getId());
String type = jsonReader.nextString(); if (eClass == null) { eClass = model.getPackageMetaData().getEClassIncludingDependencies(type); if (model.containsNoFetch(oid)) { object = (IdEObjectImpl) model.getNoFetch(oid); } else { if (eClass == StorePackage.eINSTANCE.getIfcHeader()) { object = (IdEObjectImpl) StoreFactory.eINSTANCE.createIfcHeader(); } else { object = (IdEObjectImpl) model.create(eClass, oid); processRef(model, waitingList, object, eStructuralFeature, index, list, refOid); } else if(eStructuralFeature.getEAnnotation("twodimensionalarray")!=null) { IdEObjectImpl listObject = model.create(((EReference) eStructuralFeature).getEReferenceType()); addToList(eStructuralFeature, index, list, listObject); EStructuralFeature listFeature = listObject.eClass().getEStructuralFeature("List"); if(jsonReader.nextName().equals("_t")){ String t = jsonReader.nextString(); IdEObject wrappedObject = model.create(model.getPackageMetaData().getEClass(t),-1); if(jsonReader.nextName().equals("_v")){ EStructuralFeature wv = wrappedObject.eClass().getEStructuralFeature("wrappedValue"); if (nextName.equals("_t")) { String t = jsonReader.nextString(); IdEObject wrappedObject = (IdEObject) model.create(model.getPackageMetaData().getEClass(t), -1); if (jsonReader.nextName().equals("_v")) { EStructuralFeature wv = wrappedObject.eClass().getEStructuralFeature("wrappedValue");
PackageMetaData packageMetaData = model1.getPackageMetaData(); IfcModelInterface mergedModel = new ServerIfcModel(packageMetaData, null, getDatabaseSession()); mergedModel = merger.merge(project, new IfcModelSet(model1, model2), new ModelHelper(getBimServer().getMetaDataManager(), mergedModel)); mergedModel.getModelMetaData().setName(project.getName() + "." + revision1.getId() + "." + revision2.getId()); EStructuralFeature blueFeature = ifcColourRgbClass.getEStructuralFeature("Blue"); IdEObject red = mergedModel.createAndAdd(ifcColourRgbClass); red.eSet(nameFeature, "red"); red.eSet(redFeature, 0.5D); red.eSet(blueFeature, 0.0D); IdEObject green = mergedModel.createAndAdd(ifcColourRgbClass); green.eSet(nameFeature, "green"); green.eSet(redFeature, 0D); IdEObject blue = mergedModel.createAndAdd(ifcColourRgbClass); blue.eSet(nameFeature, "blue"); blue.eSet(redFeature, 0D); for (IdEObject product : mergedModel.getAllWithSubTypes(packageMetaData.getEClass("IfcProduct"))) { IdEObject color = null; if (added.contains(product.getOid())) { mergedModel.fixOidCounter(); return mergedModel; } catch (IfcModelInterfaceException e) {
public Set<String> getAvailableClassesInRevision(IfcModelInterface ifcModel, QueryInterface query) throws BimserverDatabaseException { checkOpen(); try { getMap(ifcModel, query); Set<String> classes = new HashSet<String>(); for (IdEObject idEObject : ifcModel.getValues()) { classes.add(idEObject.eClass().getName()); } return classes; } catch (BimserverDatabaseException e) { LOGGER.error("", e); } return null; }
lastPackageMetaData = packageMetaData; IfcModelInterface subModel = getDatabaseSession().getAllOfType(packageMetaData.getEPackage().getName(), className, query); subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModelSet.add(subModel); for (Long oid : new HashSet<>(ifcModel.keySet())) { EObject eObject = ifcModel.get(oid); if (eClass.isInstance(eObject)) { DataObject dataObject = StoreFactory.eINSTANCE.createDataObject(); GetDataObjectByOidDatabaseAction.fillDataObject(ifcModel.getObjects(), eObject, dataObject);
@SuppressWarnings("rawtypes") public IfcModelInterface read(InputStream in, IfcModelInterface model, boolean checkWaitingList) throws DeserializeException { if (model.getPackageMetaData().getSchemaDefinition() == null) { throw new DeserializeException("No SchemaDefinition available"); } else if (nextName.equals("header")) { IfcHeader ifcHeader = (IfcHeader) processObject(model, waitingList, jsonReader, StorePackage.eINSTANCE.getIfcHeader()); model.getModelMetaData().setIfcHeader(ifcHeader); for (IdEObject idEObject : model.getValues()) { for (EStructuralFeature eStructuralFeature : idEObject.eClass().getEAllStructuralFeatures()) { Object value = idEObject.eGet(eStructuralFeature);
final boolean store, GeometryCache geometryCache) throws BimserverDatabaseException, GeometryGeneratingException, ObjectAlreadyExistsException, IfcModelInterfaceException { GenerateGeometryResult generateGeometryResult = new GenerateGeometryResult(); packageMetaData = model.getPackageMetaData(); productClass = packageMetaData.getEClass("IfcProduct"); productRepresentationClass = packageMetaData.getEClass("IfcProductRepresentation"); if (model.getPackageMetaData().getSchema() == Schema.IFC4) { pluginName = "org.bimserver.ifc.step.serializer.Ifc4StepSerializerPlugin"; } else if (model.getPackageMetaData().getSchema() == Schema.IFC2X3TC1) { pluginName = "org.bimserver.ifc.step.serializer.Ifc2x3tc1StepSerializerPlugin"; } else { Set<EClass> classes = new HashSet<>(); for (IdEObject object : model.getAllWithSubTypes(packageMetaData.getEClass("IfcProduct"))) { IdEObject representation = (IdEObject)object.eGet(representationFeature); if (representation != null && ((List<?>)representation.eGet(representationsFeature)).size() > 0) { HideAllInversesObjectIDM idm = new HideAllInversesObjectIDM(CollectionUtils.singleSet(packageMetaData.getEPackage()), model.getPackageMetaData()); OidProvider oidProvider = new OidProvider(){ @Override }}; for (final EClass eClass : classes) { final BasicIfcModel targetModel = new BasicIfcModel(model.getPackageMetaData(), null); ModelHelper modelHelper = new ModelHelper(bimServer.getMetaDataManager(), targetModel); modelHelper.setOidProvider(oidProvider); for (IdEObject idEObject : model.getAll(eClass)) { IdEObject newObject = modelHelper.copy(idEObject, false, ModelHelper.createObjectIdm(idEObject.eClass()));
IdEObject cachedObject = objectCache.get(keyOid); if (cachedObject != null && ((IdEObjectImpl)cachedObject).getLoadingState() == State.LOADED) { if (!model.contains(keyOid) && cachedObject.eClass().getEAnnotation("wrapped") == null) { try { model.addAllowMultiModel(keyOid, cachedObject); } catch (IfcModelInterfaceException e) { throw new BimserverDatabaseException(e); } else { IdEObject object = null; if (model.contains(keyOid) && ((IdEObjectImpl)model.get(keyOid)).getLoadingState() == State.LOADED) { object = model.get(keyOid); } else { if (buffer.capacity() == 1 && buffer.get(0) == -1) {
public <T extends IdEObject> List<T> getAll(Class<T> class1) throws BimserverDatabaseException { EClass eClass = getEClass(class1.getPackage().getName(), class1.getSimpleName()); IfcModelInterface allOfType = getAllOfType(eClass, OldQuery.getDefault()); return allOfType.getAll(class1); }
@Override public void run() { targetModel.generateMinimalExpressIds(); allWithSubTypes = targetModel.getAllWithSubTypes(packageMetaData.getEClass("IfcProduct")); } else { allWithSubTypes = targetModel.getAll(eClass); geometryInfo = model.createAndAdd(GeometryPackage.eINSTANCE.getGeometryInfo(), databaseSession.newOid(GeometryPackage.eINSTANCE.getGeometryInfo())); databaseSession.store(geometryInfo, pid, rid); geometryData = model.createAndAdd(GeometryPackage.eINSTANCE.getGeometryData(), databaseSession.newOid(GeometryPackage.eINSTANCE.getGeometryData())); databaseSession.store(geometryData, pid, rid); } else {
ifcModel.add(next.getOid(), newObject); next = queryObjectProvider.next(); next = queryObjectProvider.next(); while (next != null) { IdEObject idEObject = ifcModel.get(next.getOid()); if (idEObject.eClass() != next.eClass()) { for (Object refOid : refOids) { if (refOid instanceof Long) { IdEObject ref = ifcModel.get((long) refOid); if (ref != null) { if (eReference.isUnique()) { if (r instanceof Long) { long refOid = (Long)r; IdEObject referred = ifcModel.get(refOid); idEObject.eSet(eReference, referred); } else if (r instanceof HashMapWrappedVirtualObject) { ifcModel.getModelMetaData().setName(name); ifcModel.getModelMetaData().setRevisionId(1); if (getAuthorization().getUoid() != -1) { ifcModel.getModelMetaData().setAuthorizedUser(getUserByUoid(getAuthorization().getUoid()).getName()); ifcModel.getModelMetaData().setDate(new Date()); } catch (Throwable e) { throw new BimserverDatabaseException(e);
for (Long oid : ifcModel.keySet()) { EObject eObject = ifcModel.get(oid); if (eObject.eClass().getEAnnotation("hidden") == null) { DataObject dataObject = null; dataObject.setName(""); GetDataObjectByOidDatabaseAction.fillDataObject(ifcModel.getObjects(), eObject, dataObject); dataObjects.add(dataObject);
protected void calculateGeometryExtents() throws RenderEngineException, SerializerException { for (IfcProduct ifcProduct : model.getAllWithSubTypes(IfcProduct.class)) { try { calculateExtents(ifcProduct.getGlobalId(), ifcProduct); } catch (Exception e) { LoggerFactory.getLogger(AbstractGeometrySerializer.class).error("", e); } } }
IfcProductRepresentation productRepresentation = product.getRepresentation(); if (product.getRepresentation() == null) { productRepresentation = model.create(IfcProductRepresentation.class); product.setRepresentation(productRepresentation); representation = model.create(IfcRepresentation.class); productRepresentation.getRepresentations().add(representation); } else { representationItem = model.create(IfcRepresentationItem.class); representation.getItems().add(representationItem); } else { representationItem = representation.getItems().get(0); IfcStyledItem styledItem = model.create(IfcStyledItem.class); representationItem.getStyledByItem().clear(); representationItem.getStyledByItem().add(styledItem);