|
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. } } } |