Пример #1
0
  private void processBuilding(CityModel cityModel, IfcBuilding ifcBuilding)
      throws SerializerException {
    Building building = new Building();
    setGlobalId(building, ifcBuilding);
    setName(building.getName(), ifcBuilding.getName());

    CityObjectMember cityObjectMember = new CityObjectMember();
    cityObjectMember.setCityObject(building);
    cityModel.addCityObjectMember(cityObjectMember);

    IfcPostalAddress ifcBuildingAddress = ifcBuilding.getBuildingAddress();
    if (ifcBuildingAddress != null) {
      building.addAddress(createAddress(ifcBuildingAddress));
    }

    for (IfcRelContainedInSpatialStructure ifcRelContainedInSpatialStructure :
        ifcBuilding.getContainsElements()) {
      for (IfcProduct ifcProduct : ifcRelContainedInSpatialStructure.getRelatedElements()) {
        processBoundary(building, createFakeRoom(building), ifcProduct, null);
      }
    }

    for (IfcRelDecomposes ifcRelDecomposes : ifcBuilding.getIsDecomposedBy()) {
      for (IfcObjectDefinition ifcObjectDefinition : ifcRelDecomposes.getRelatedObjects()) {
        if (ifcObjectDefinition instanceof IfcBuildingStorey) {
          IfcBuildingStorey ifcBuildingStorey = (IfcBuildingStorey) ifcObjectDefinition;
          processStorey(building, ifcBuildingStorey);
        }
      }
    }
  }