Usuarios



 Foro FIDE :: Paquetes de Desarrollo
Welcome Guest   [Register]  [Login]
 Subject :Inicios con FIDE.. 03-03-2010 12:25:37 
JoanD
Joined: 20-01-2010 12:44:02
Posts: 0
Location

Para los que se inicien con el uso de las librerias en c# voy a poner el código necesario para leer el edificio.

En primer lugar declaramos las variables a nivel de módulo que vamos a usar:

 

CCFicheroFide FIDE;

CCDescriptorEdificacion Descriptor;

CCCadenaMulti[] CadenaMulti;

CCSitio Sitio;

CCEdificio Edificio;

 CCEjeCoordenadas EjeCoordenadasGlobal;

string PathXSD;

En el constructor de la clase podemos inicializar la variable que nos dice donde está el esquema con el que se valida el formato:

 

string PathXSD= Path.GetDirectoryName(Application.ExecutablePath) +"\\Fide.xsd";

 

Permitimos al usuario elegir un fichero en formato FIDE:

 

OpenFileDialog Fichero = new OpenFileDialog();

Fichero.Filter = "Fichero FIDE(*.xml)|*.xml|Todos los ficheros(*.*)|*.*";

if (Fichero.ShowDialog() == DialogResult.OK)

{ NomFitxerFIDE = Fichero.FileName; }

 

//Leemos el fichero

FIDE = new CCFicheroFide();

FIDE.abrirFichero(NomFitxerFIDE, PathXSD);

Descriptor = FIDE.getDescriptorEdificacion();

CCSitio[] Sitios = Descriptor.getSitios();

foreach (CCSitio Sit in Sitios)

{

  if (Sit.getSistemaCoordGlobal() != null)

 {

  EjeCoordenadasGlobal = Sit.getSistemaCoordGlobal().getCoordenadasGlobales();

  CCEdificio[] Edificios = Sit.getEdificios();

  foreach (CCEdificio Edif in Edificios)

  {

     CCRecinto[] Recintos = Edif.getRecintos();

     if (Recintos != null)

     {

          foreach (CCRecinto Recint in Recintos) { ObtenerRecintos(Recint); }

     }

   }

   CCFormaProducto Forma = Sit.getRepresentacion();

   if (Forma != null)

   {

       CCLocalizacionObjeto Localizacion = Sit.getLocalizacionObjeto(); //Aquí­ se podrian llamar métodos de visualización, de cálculo de mediciones, etc.

    }

   }

 }

 //Techos y cubiertas

CCElementoConstructivoCerramientoHorizontal[] Techos = FIDE.getElementoConstructivoCerramientoHorizontal();

  if (Techos != null)

  {

     foreach (CCElementoConstructivoCerramientoHorizontal Techo in Techos)

    {

       CCFormaProducto Forma = Techo.getRepresentacion(); //Aquí se podrian llamar métodos de cálculo de mediciones, etc.

   }

 }

}

Obtener recintos es una función recursiva:

private void ObtenerRecintos(CCRecinto pRecinto)

{

   CCRecinto[] Recintos = pRecinto.getRecintos();

    if (Recintos != null)

    {

        foreach (CCRecinto Recint in Recintos)

        {

             ObtenerRecintos(Recint); //Aquí­ se podrian llamar métodos de visualización, de cálculo de mediciones, etc.

        }

    }

 }

IP Logged
Last Edited On: 19-05-2010 14:17:05 By JoanD for the Reason
Página # 


Powered by ccBoard