Catastro
Todos los artículos
GML construccionesPiscinasopenAirPoolModelo 902

GML de piscinas (openAirPool): cómo declararlas a la SEC en el modelo 902

Las piscinas se declaran con OtherConstruction y constructionNature = openAirPool, no como Building. Particularidades del XML, sufijo _PI.N, conditionOfConstruction nulo y diferencia con piscinas cubiertas.

6 min de lecturaEquipo Catastro DXF → GML

Las piscinas son la construcción auxiliar más declarada en el modelo 902, pero no se modelan como edificios. Tienen su propio tipo en el esquema INSPIRE Buildings Extended 2D — OtherConstruction con constructionNature igual a openAirPool — y su estructura XML es ligeramente distinta a la de un Building. Esta guía cubre las particularidades.

Si vienes sin contexto previo del formato, la guía completa del GML de construcciones tiene el resto.

Por qué las piscinas no son Buildings

El modelo INSPIRE Buildings define un Building como una construcción con paredes y techo. Una piscina al aire libre no encaja: tiene un vaso (recinto contenedor) pero no es un edificio en sentido estricto. Para estos casos el esquema reserva OtherConstruction, una clase paralela para construcciones que no son edificios pero que el catastro registra igualmente.

OtherConstruction admite varios constructionNature:

  • openAirPool — piscina al aire libre (la más común).
  • Otras construcciones auxiliares con catálogos específicos publicados por la DGC.

Si la piscina está cubierta (tiene techo permanente, no una lona), entonces sí es un Building, no una OtherConstruction. La distinción importa para la valoración catastral.

Anatomía del XML de una piscina

<gml:featureMember>
  <bu-ext2d:OtherConstruction gml:id="ES.SDGC.BU.9398516VK3799G_PI.1">
    <bu-ext2d:beginLifespanVersion>2026-05-08T00:00:00</bu-ext2d:beginLifespanVersion>
    <bu-ext2d:conditionOfConstruction xsi:nil="true" nilReason="other:unpopulated"/>
    <bu-ext2d:constructionNature>openAirPool</bu-ext2d:constructionNature>
    <bu-ext2d:reference>
      <bu-ext2d:CadastralReference>
        <bu-ext2d:localId>9398516VK3799G</bu-ext2d:localId>
      </bu-ext2d:CadastralReference>
    </bu-ext2d:reference>
    <bu-ext2d:geometry>
      <gml:Polygon srsName="urn:ogc:def:crs:EPSG::25830">
        <gml:exterior>
          <gml:LinearRing>
            <gml:posList srsDimension="2">
              414010.00 4477005.00
              414010.00 4477015.00
              414020.00 4477015.00
              414020.00 4477005.00
              414010.00 4477005.00
            </gml:posList>
          </gml:LinearRing>
        </gml:exterior>
      </gml:Polygon>
    </bu-ext2d:geometry>
  </bu-ext2d:OtherConstruction>
</gml:featureMember>

Las cuatro particularidades

1. Geometría: <gml:Polygon> directo, no <gml:Surface> con patches

Los Buildings llevan <gml:Surface> con N <gml:PolygonPatch> dentro de <gml:patches>, lo que les permite declarar multirrecinto. Las piscinas no tienen multirrecinto: cada vaso es una OtherConstruction independiente. Por eso la geometría es un <gml:Polygon> simple.

Si tienes dos vasos disjuntos (piscina principal + jacuzzi separado, dos vasos pequeños en una urbanización), declaras dos OtherConstruction distintas, cada una con su gml:id:

<bu-ext2d:OtherConstruction gml:id="ES.SDGC.BU.9398516VK3799G_PI.1">...</bu-ext2d:OtherConstruction>
<bu-ext2d:OtherConstruction gml:id="ES.SDGC.BU.9398516VK3799G_PI.2">...</bu-ext2d:OtherConstruction>

2. Sufijo _PI.N en el gml:id

El identificador externo lleva el sufijo _PI.N con número incremental empezando en 1:

  • Primera piscina de la parcela: _PI.1
  • Segunda piscina: _PI.2
  • Tercera: _PI.3

Si añades una piscina nueva en una parcela que ya tiene una declarada, el número correcto es el siguiente disponible: si en Catastro figura _PI.1, la nueva va con _PI.2. Esto requiere consultar antes la información catastral vigente.

3. conditionOfConstruction se declara nulo

Las piscinas no tienen estado de conservación según INSPIRE. El elemento se mantiene en el XML (es obligatorio por esquema) pero con xsi:nil:

<bu-ext2d:conditionOfConstruction xsi:nil="true" nilReason="other:unpopulated"/>

El namespace xsi tiene que estar declarado en la raíz del fichero:

<gml:FeatureCollection
    xmlns:bu-ext2d="..."
    xmlns:gml="..."
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Si lo declaras con un valor concreto (functional, declined, etc.) la SEC rechaza con error de validación de tipo.

4. No hay numberOfFloors, no hay horizontalGeometryEstimatedAccuracy

Los Buildings declaran numberOfFloorsAboveGround y horizontalGeometryEstimatedAccuracy. Las piscinas no llevan ninguno de los dos. El esquema bu-ext2d 2.0 los excluye del tipo OtherConstruction. Si los añades, el parser rechaza por elemento no permitido.

Casos especiales

Piscina dentro de un patio cerrado o terraza

Si la piscina está dentro de un patio interior abierto del edificio (sin techo encima del agua), sigue siendo OtherConstruction con openAirPool. La condición es techo encima del agua, no la posición relativa al edificio.

Piscina demolida

Una piscina demolida se declara como Building con conditionOfConstruction = demolished... ¿o no? En realidad, no. Las OtherConstruction no admiten estado demolished porque su conditionOfConstruction siempre va nulo. Para baja de piscina presentas el modelo 902 sin esa OtherConstruction en el GML, y el sistema deduce la baja al comparar con el catastro vigente.

Piscina con vaso compensador o vaso de pies separado

Físicamente es una piscina con dos vasos. Si están conectados hidráulicamente y son tratables como una unidad, se declara como un único polígono envolvente. Si son independientes (vasos completamente separados con paseo entre medias), van como dos OtherConstruction separadas (_PI.1 y _PI.2).

Piscina cubierta con pérgola o lona retráctil

Una pérgola permanente con techo no permeable convierte la piscina en Building. Una lona retráctil que se quita en verano no la convierte en Building — sigue siendo openAirPool porque la condición se evalúa por la estructura permanente.

Cómo declararla con la herramienta online

Al dibujar la huella en el generador online, selecciona modo "Piscina" antes de trazar. La herramienta:

  • Asigna automáticamente el sufijo _PI.N correcto basándose en cuántas piscinas haya en la parcela.
  • Pone el constructionNature a openAirPool y el conditionOfConstruction nulo.
  • Genera la geometría como <gml:Polygon> simple en vez de <gml:Surface> con patches.
  • Reproyecta a EPSG UTM oficial y aplica orientación CW.

El resultado es un fichero único <RC>_BU.gml con todos los Buildings y piscinas de la parcela mezclados, listo para subir al modelo 902.


Si combinas piscina + edificio principal + ampliación + cobertizo en una misma alteración, todo va en el mismo GML dentro de <gml:FeatureCollection> con sus respectivos <gml:featureMember>. La SEC procesa el conjunto y registra cada cambio según el tipo de feature.

Para la lista completa de errores frecuentes al validar (no solo de piscinas, también edificios), consulta los 9 errores que rechaza la SEC.


¿Te ahorras estos errores con la herramienta?

El primer GML va con el trial gratuito. Si no te convence, no pagas y descargas el GML igual.