Skip to content

Commit 5965ccf

Browse files
authored
Create README_ES.md
Any suggestion, I'll gladly change it as many times as necessary :) @weilixu
1 parent cc421f9 commit 5965ccf

1 file changed

Lines changed: 220 additions & 0 deletions

File tree

README_ES.md

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt)
2+
[![Twitter Follow](https://img.shields.io/twitter/follow/sendgrid.svg?style=social&label=Follow)](https://twitter.com/buildsimhub)
3+
4+
**Esta librería te permite usar rápida y fácilmente el API v1 de WEB BuildSimHub via Python.**
5+
6+
Esta librería representa el comienzo de la función de Cloud Simulation en BuildSimHub. Queremos que esta librería sea llevada por la comunidad y guiada por BuildSimHub. Necesitamos tu ayuda para alcanzar esta meta. Para ayudar, asegúrate que estamos creando las cosas correctas en el orden correcto, te pedimos que crees issues y pull requests,
7+
o simplemente que votes o comentes issues o pull requests ya existentes. Apreciamos su apoyo continuo, ¡gracias!
8+
9+
# Tabla de Contenidos
10+
* [Instalación](#installation)
11+
* [Empezar](#quick-start)
12+
* [Funciones y Objetos](#functions)
13+
* [Hoja de Ruta](#roadmap)
14+
* [Acerca De](#about)
15+
* [Licencia](#license)
16+
17+
<a name="installation"></a>
18+
19+
# Instalación
20+
21+
## Prerrequisitos
22+
- El servicio BuildSimHub, empezando en el [free level](https://my.buildsim.io/register.html)
23+
- Python version 2.6, 2.7, 3.4, 3.5 or 3.6
24+
25+
## Instalación de Paquete
26+
Simplemente clona este repositorio y colócalo dentro de la carpeta en la que quieras crear la aplicación. Ejemplos:
27+
![picture alt](https://imgur.com/x60rk2O.png)
28+
29+
## Preparación del entorno
30+
Después que has descargado todo el paquete. Lo primero que necesitas hacer es reconfigurar el API de usuario en el archivo [info.config](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/info.config) file.
31+
Puedes conseguir la llave API asociada a tu cuenta en la página de perfil:
32+
33+
![picture alt](https://imgur.com/gHehDiN.png)
34+
35+
Simplemente edita el [info.config](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/info.config)
36+
`user_api_key:[YOUR_API_KEY]`
37+
38+
## Modelo clave
39+
La clave del modelo se puede encontrar en su proyecto buildsimhub.
40+
41+
<a name="quick-start"></a>
42+
43+
# Empezar
44+
45+
## Corre la simulación
46+
Lo siguiente es el código mínimo requerido para iniciar una simulación regular con el [helpers/simulationJob](https://github.com/weilix88/buildsimhub_python_api/tree/master/BuildSimHubAPI/helpers)
47+
48+
### Con SimulationJob Class
49+
```python
50+
from BuildSimHubAPI import buildsimhub
51+
#this key can be found under an energy model
52+
model_key="0ade3a46-4d07-4b99-907f-0cfeece321072"
53+
54+
#absolute directory to the energyplus model
55+
file_dir = "/Users/weilixu/Desktop/5ZoneAirCooled.idf"
56+
57+
############### AHORA, UTILIZA EL CÓDIGO ########################
58+
59+
bsh = buildsimhub.BuildSimHubAPIClient()
60+
newSJ = bsh.new_simulation_job(model_key,'my first cloud simulation', 'regular',1)
61+
response = newSj.create_model(file_dir)
62+
63+
############### LISTO! #################################
64+
65+
#Puedes imprimir las respuestas para verificar si la simulación
66+
#tuvo éxito o no.
67+
print (response)
68+
```
69+
El `BuildSimHubAPIClient` crea un [portal object](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/buildsimhub.py) que maneja el flujo de trabajo de la simulación.
70+
Desde este objeto, puedes iniciar un [simulationJob](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationJob.py) para conducir una Cloud Simulation. Llama el método createModel() con parámetros que puedan empezar la Cloud Simulation.
71+
72+
### Sigue el progreso de la Cloud Simulation
73+
```python
74+
from BuildSimHubAPI import buildsimhub
75+
bsh = buildsimhub.BuildSimHubAPIClient()
76+
77+
#this key can be found under your project folder
78+
model_key="0ade3a46-4d07-4b99-907f-0cfeece321072"
79+
80+
#absolute directory to the energyplus model
81+
file_dir = "/Users/weilixu/Desktop/5ZoneAirCooled.idf"
82+
83+
newSJ = bsh.new_simulation_job(model_key)
84+
response = newSj.create_model(file_dir)
85+
86+
######DEBAJO ESTÁ EL CODIGO PARA SEGUIR LA SIMULACIÓN#########
87+
if(response == 'success'):
88+
while newSJ.track_simulation():
89+
print (newSJ.trackStatus)
90+
time.sleep(5)
91+
```
92+
Como fue mencionado previamente, [BuildSimHubAPIClient](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/buildsimhub.py) maneja la totalidad de flujo de trabajo de la simulación. Así que una vez que la Cloud Simulation ha sido correctamente empezada por la clase [SimulationJob](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationJob.py) puedes simplemente llamar la función `trackSimulation()` para recibir el progreso de la simulación.
93+
94+
### Obtener los resultados de la Cloud Simulation
95+
```python
96+
from BuildSimHubAPI import buildsimhub
97+
bsh = buildsimhub.BuildSimHubAPIClient()
98+
99+
#this key can be found under your project folder
100+
model_key="0ade3a46-4d07-4b99-907f-0cfeece321072"
101+
102+
#absolute directory to the energyplus model
103+
file_dir = "/Users/weilixu/Desktop/5ZoneAirCooled.idf"
104+
105+
newSJ = bsh.new_simulation_job(model_key)
106+
response = newSj.create_model(file_dir)
107+
108+
if(response == 'success'):
109+
while newSJ.track_simulation():
110+
print (newSJ.trackStatus)
111+
time.sleep(5)
112+
113+
######DEBAJO ESTÁ EL CODIGO PARA OBTENER LOS RESULTADOS DE LA SIMULACION#########
114+
response = newSJ.get_simulation_results('html')
115+
print(response)
116+
```
117+
Si el trabajo se completó, puedes obtener los resultados llamando la funcion `get_simulation_results(type)`.
118+
119+
<a name="functions"></a>
120+
121+
#Funciones y Objetos
122+
## SimulationJob
123+
La manera más fácil de generar una clase [SimulationJob](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationJob.py) es llamando el método `newSimulationJob()` en el [BuildSimHubAPIClient](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/buildsimhub.py).
124+
Sin embargo, tienes que proveer una `folder_key` para poder crear una nueva instancia [SimulationJob](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationJob.py).
125+
126+
La `folder_key` puede ser encontrada en cada carpeta de tu proyecto
127+
![picture alt](https://imgur.com/jNrghIZ.png)
128+
129+
## simulationType
130+
La clase [SimulationType](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationType.py) te ayuda a configurar la Cloud Simulation. Hay dos tipos de simulación: `regular` y `fast`. Además, puedes incrementar el número de agentes llamando la función `increaseAgents()`.
131+
```python
132+
simulationType = bsh.get_simulation_type()
133+
numOfAgents = simulationType.increaseAgents();
134+
print (numOfAgents)
135+
```
136+
Hay que tomar en cuenta que el número máximo de agentes laborando en un trabajo de simulación está limitado a 12, y mientras más agentes asignaste a un trabajo de simulación, más rápido será tu simulación. También podrías llamar la función `resetAgent()` para resetear el número de agentes a 2.
137+
138+
## SimulationJob
139+
Un trabajo de simulación maneja un solo tipo de Cloud Simulation. Este contiene tres funciones principales las cuales son mostradas a continuación:
140+
141+
### create_model
142+
la función `create_model()`tiene un total de 4 parámetros.
143+
1. `file_dir` (requerido): el directorio local absoluto de tu EnergyPlus / OpenStudio model (p.ej., "/Users/weilixu/Desktop/5ZoneAirCooled.idf")
144+
2. `comment`(opcional): La descripción de la version del modelo que será subido a tu carpeta. El mensaje por defecto es `Upload through Python API`
145+
3. `simulationType` (opcional): El simulation Type debería ser generado de la clase [SimulationType](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationType.py). Esta clase maneja el simulation type además de la cantidad de agentes que quieras asignar al trabajo de simulación. **Hay que tomar en cuenta que si este parámetro no es usado, entonces el create_model método no lanzará la simulación**
146+
4. `agent` (opcional): El número de agentes es propiedad de la clase [SimulationType](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationType.py). Si se selecciona la simulación rápida, Entonces la cantidad de agentes por defecto será de 2.
147+
148+
Este método devuelve dos tipos de información:
149+
Si es exitoso: `success`
150+
o un mensaje de error mostrará que estuvo mal en tu pedido.
151+
152+
### run_simulation
153+
La función `run_simulation()` puede ser llamada dentro de un trabajo de simulación si la simulación no es conducida. La función tiene dos parámetros:
154+
1. `simulationType` (optional): El simulation Type debería ser generado de la clase [SimulationType](https://github.com/weilix88/buildsimhub_python_api/blob/master/BuildSimHubAPI/helpers/simulationType.py). Esta clase maneja el simulation type además de la cantidad de agentes que quieras asignar al trabajo de simulación. **Hay que tomar en cuenta que si este parámetro no es usado, entonces el create_model método no lanzará la simulación**
155+
156+
### track_simulaiton
157+
La función `track_simulation()` no requiere ningún parámetro. Sin embargo, es necesario que una cloud simulation exitosa sea creada y lanzada en la nube. De otra manera, recibirás un mensaje llamando esta función:
158+
`No simulation is running or completed in this Job - please start simulation using createModel method.`
159+
Si hay una simulación corriendo en la nube para este simulationJob, entonces, esta función se convertirá en `true` y podrás obtener el estatus de la simulación mediante el parámetro de la clase trackStatus.Ejemplo a continuación:
160+
```python
161+
if(newSimulationJob.track_simulation()):
162+
print(newSimulationJob.trackStatus)
163+
```
164+
### get_simulation_results
165+
La función `get_simulation_results(type)` requiere 1 parámetro, el result type. Actualmente, puedes obtener tres tipos de resultados: el archive error (`err`), archivo eso (`eso`) y archivo html (`html`), generado de la simulación EnergyPlus.
166+
167+
```python
168+
response = newSimulationJob.get_simulation_results('err')
169+
print (response)
170+
```
171+
## Model
172+
La clase model contiene una serie de métodos que provee la información del modelo y resultados (después de la simulación)
173+
### Pre-simulation methods
174+
1. *num_total_floor()*: puede ser llamado antes de que la simulación se complete. Este obtiene el número de suelos, o -1 si hay un error.
175+
2. *num_zones()*: puede ser llamado antes que la simulación se complete. Este obtiene el número total de zonas termales, o -1 si hay un error.
176+
3. *num_condition_zones()*: puede ser llamado antes que la simulación se complete. Este obtiene el número total de zonas condicionadas, o -1 si hay un error.
177+
4. *conditioned_floor_area (unit)*: puede ser llamado antes que la simulación se complete. Este obtiene las áreas de suelo de espacios condicionados, o -1 si hay un error. Este método tiene una entrada adicional: unit. Si deseas obtener la unidad ft2, entonces necesitas especificar ‘ip’ para el parámetro de la unidad:
178+
` m.condition_floor_area("ip")
179+
`
180+
5. *gross_floor_area(unit)*: puede ser llamado antes que la simulación se complete. Este obtiene el total de áreas de suelo (incluyendo espacios plenum), o -1 si hay un error. Este método tiene una entrada opcional: unit. Si deseas obtener la unidad ft2, entonces necesitas especificar ‘ip’ para el parámetro de la unidad:
181+
` m.gross_floor_area("ip")
182+
`
183+
6. *window_wall_ratio()*: puede ser llamado antes que la simulación se complete. Este obtiene el radio total de ventana a pared (por encima del area de superficie del suelo) o -1 si hay un error.
184+
185+
### Métodos Pre-simulación
186+
1. *new_site_eui()*: Obtiene el net site eui de la simulación (incluye generadores como PV). La unidad debería basarse en la especificación de modelo: SI (kWh/m2 or MJ/m2), IP(kWh/m2).
187+
2. *total_site_eui()*: Obtiene el total site eui de la simulación. La unidad debería basarse en la especificación de modelo: SI (kWh/m2 or MJ/m2), IP(kWh/m2).
188+
3. *not_met_hour_cooling()*: Regresa el setpoint de tiempo ‘not met hours’ durante el periodo enfriamiento. unidad: hora
189+
4. *not_met_hour_heating()*: Regresa el setpoint de tiempo ‘not met hours’ durante del periodo de calentamiento. unidad: hora
190+
5. *not_met_hour_total()*: Regresa el setpoint de tiempo ‘not met hours’ durante el periodo total de enfriamiento y calentamiento. unidad: hora
191+
6. *total_end_use_electricity()*: Obtiene el total de consumo eléctrico del diseño. unidad: kWh or GJ, IP is kBtu
192+
7. *total_end_use_naturalgas()*: Obtiene el total de consumo de gas natural del diseño. unidad: kWh or GJ, IP is kBtu
193+
194+
195+
### Métodos diversos y variables
196+
1. lastParameterUnit: Puedes verificar el valor de la variable pedida por la llamada API más reciente.
197+
```python
198+
m = newSj.model
199+
print(str(m.net_site_eui())+ " " + m.lastParameterUnit)
200+
#Output: 242.98 MJ/m2
201+
print(str(m.total_end_use_electricity())+ " " + m.lastParameterUnit)
202+
#Output: 156.67 GJ
203+
```
204+
205+
<a name="roadmap"></a>
206+
# Hoja de Ruta
207+
1. También estamos en APIs para obtención de resultados, los cuales permiten a los usuarios obtener resultados de la simulación para el post-procesamiento.
208+
2. Si estás interesado en el futuro de este proyecto, por favor echa un vistazo a nuestros [issues](https://github.com/weilix88/buildsimhub_python_api/issues) y [pull requests](https://github.com/weilix88/buildsimhub_python_api/pulls). Nos encantaría escuchar tus opiniones y recomendaciones.
209+
210+
211+
<a name="about"></a>
212+
# Acerca De
213+
214+
buildsimhub-python está guíado y apoyado por el BuildSimHub [Developer Experience Team](mailto:haopeng.wang@buildsimhub.net).
215+
216+
buildsimhub-python es mantenido y financiado por BuildSimHub, Inc. Los nombres y logos de buildsimhub-python son trademarks de BuildSimHub, Inc.
217+
218+
<a name="license"></a>
219+
# Licencia
220+
[The MIT License (MIT)](LICENSE.txt)

0 commit comments

Comments
 (0)