Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Energy ADE
Energy ADE 3 3DCityDB
Commits
68ccaaab
Commit
68ccaaab
authored
May 15, 2026
by
Rushikesh Padsala
Browse files
refactoring
parent
b0d4a3f9
Changes
3
Hide whitespace changes
Inline
Side-by-side
resources/database/3dcitydb/postgreSQL/CREATE_ADE_DB.sql
0 → 100644
View file @
68ccaaab
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- CityGML Energy ADE 3.0 (beta 7)
--
-- Last update: 2025-10-14
--
-- This DDL script installs the 3DCityDB schema for the Energy ADE. It must be run
-- from within the ADE Manager plugin of the 3DCityDB Importer/Exporter.
--
-- This script was first automatically generated using the 3DCityDB ADE Manager
-- and successively edited and restructured by:
--
-- Dr. Giorgio Agugiaro
-- 3D Geoinformation group
-- Delft University of Technology
-- The Netherlands
--
-- https://3d.bk.tudelft.nl/gagugiaro/
--
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ***************************** CREATE_ADE_DB.SQL execution START ************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Create Sequences ***********************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CREATE
SEQUENCE
ng3_ctyobj_relation_seq
INCREMENT
BY
1
MINVALUE
0
MAXVALUE
9223372036854775807
START
WITH
1
CACHE
1
NO
CYCLE
OWNED
BY
NONE
;
CREATE
SEQUENCE
ng3_optical_property_seq
INCREMENT
BY
1
MINVALUE
0
MAXVALUE
9223372036854775807
START
WITH
1
CACHE
1
NO
CYCLE
OWNED
BY
NONE
;
CREATE
SEQUENCE
ng3_qualified_attribute_seq
INCREMENT
BY
1
MINVALUE
0
MAXVALUE
9223372036854775807
START
WITH
1
CACHE
1
NO
CYCLE
OWNED
BY
NONE
;
CREATE
SEQUENCE
ng3_suitability_seq
INCREMENT
BY
1
MINVALUE
0
MAXVALUE
9223372036854775807
START
WITH
1
CACHE
1
NO
CYCLE
OWNED
BY
NONE
;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Create tables **************************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- --------------------------------------------------------------------
-- ng3_address_to_building_unit
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_address_to_building_unit
(
address_id
BIGINT
NOT
NULL
,
building_unit_id
BIGINT
NOT
NULL
,
PRIMARY
KEY
(
address_id
,
building_unit_id
)
);
-- --------------------------------------------------------------------
-- ng3_building - extends building table
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_building
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
is_protected
NUMERIC
,
constr_weight
VARCHAR
,
constr_weight_codespace
VARCHAR
,
attic_thm_status
VARCHAR
,
basement_thm_status
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_building_partition
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_building_partition
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
-- Thermal Zone attributes
heat_capacity
NUMERIC
,
heat_capacity_uom
VARCHAR
,
infiltration_rate
NUMERIC
,
infiltration_rate_uom
VARCHAR
,
is_cooled
NUMERIC
,
is_heated
NUMERIC
,
coincides_with_lod2_hull
NUMERIC
,
coincides_with_lod3_hull
NUMERIC
,
-- Usage Zone and BuildingUnit attributes
type
VARCHAR
,
type_codespace
VARCHAR
,
-- Usage Zone attributes
is_primary
NUMERIC
,
num_of_building_units
INTEGER
,
int_heat_gains
NUMERIC
,
int_heat_gains_uom
VARCHAR
,
int_heat_gains_conv
NUMERIC
,
int_heat_gains_conv_uom
VARCHAR
,
int_heat_gains_lat
NUMERIC
,
int_heat_gains_lat_uom
VARCHAR
,
int_heat_gains_rad
NUMERIC
,
int_heat_gains_rad_uom
VARCHAR
,
-- BuildingUnit attributes
num_of_rooms
INTEGER
,
owner_name
VARCHAR
,
ownership_type
VARCHAR
,
ownership_type_codespace
VARCHAR
,
-- Used to store the FK to the schedule(s)
cooling_schedule_id
BIGINT
,
heating_schedule_id
BIGINT
,
ventilation_schedule_id
BIGINT
,
-- Used to store the association from UsageZone to BuildingUnit
usage_zone_id
BIGINT
,
-- Used to store the association from ThermalZone to UsageZone
thermal_zone_id
BIGINT
,
-- Parent id (Building(Part) of a ThermalZone, UsageZone or BuildintUnit
building_id
BIGINT
,
-- FK to the geometries in the surface_geometry table
lod1_solid_id
BIGINT
,
lod2_solid_id
BIGINT
,
lod3_solid_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_cityobject - extends cityobject table
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_cityobject
(
id
BIGINT
PRIMARY
KEY
,
layered_construction_id
BIGINT
,
ref_point
geometry
(
POINTZ
)
);
-- --------------------------------------------------------------------
-- ng3_ctyobj_relation
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_ctyobj_relation
(
id
BIGINT
PRIMARY
KEY
DEFAULT
nextval
(
'ng3_ctyobj_relation_seq'
::
regclass
),
-- this refers to ng3_cityobject (id), i.e. the source
ng3_cityobject_id
BIGINT
,
-- this refers to cityobject (id), i.e. the target
cityobject_id
BIGINT
,
relation_type
VARCHAR
,
relation_type_codespace
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_device
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_device
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
-- AbstractDevice attributes (also for LightingDevice, GenericDevice, GenericElectricalDevice)
model
VARCHAR
,
num_of_devices
INTEGER
,
year_of_manufacture
INTEGER
,
installed_power
NUMERIC
,
installed_power_uom
VARCHAR
,
nominal_efficiency
NUMERIC
,
nominal_efficiency_uom
VARCHAR
,
efficiency_indicator
VARCHAR
,
heat_diss
NUMERIC
,
heat_diss_uom
VARCHAR
,
heat_diss_conv
NUMERIC
,
heat_diss_conv_uom
VARCHAR
,
heat_diss_lat
NUMERIC
,
heat_diss_lat_uom
VARCHAR
,
heat_diss_rad
NUMERIC
,
heat_diss_rad_uom
VARCHAR
,
-- HeatPump attributes
heat_source
VARCHAR
,
cop_source_temp
NUMERIC
,
cop_source_temp_uom
VARCHAR
,
cop_operation_temp
NUMERIC
,
cop_operation_temp_uom
VARCHAR
,
-- Boiler attributes
has_condensation
NUMERIC
,
-- MovableShadingDevice attributes
type
VARCHAR
,
type_codespace
VARCHAR
,
installation_side
VARCHAR
,
max_cover_ratio
NUMERIC
,
max_cover_ratio_uom
VARCHAR
,
-- FK to table optical_property
transmittance_id
BIGINT
,
cityobject_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_device_operation
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_device_operation
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
yearly_global_efficiency
NUMERIC
,
-- FK
schedule_id
BIGINT
,
device_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_energy_perf_cert
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_energy_perf_cert
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
label
VARCHAR
,
value
NUMERIC
,
value_uom
VARCHAR
,
issue_date
DATE
,
expiration_date
DATE
,
cert_method
VARCHAR
,
cert_uri
VARCHAR
,
-- FK
building_id
BIGINT
,
building_partition_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_layer
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_layer
(
id
BIGINT
PRIMARY
KEY
,
thickness
NUMERIC
,
thickness_uom
VARCHAR
,
material_id
BIGINT
,
-- FK
layered_construction_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_layered_construction
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_layered_construction
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
u_value
NUMERIC
,
u_value_uom
VARCHAR
,
g_value
NUMERIC
,
g_value_uom
VARCHAR
,
glazing_ratio
NUMERIC
,
glazing_ratio_uom
VARCHAR
,
library_code
VARCHAR
,
library_code_codespace
VARCHAR
,
-- FKs
layered_construction_id
BIGINT
,
library_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_library
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_library
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
type
VARCHAR
,
type_codespace
VARCHAR
,
author
VARCHAR
,
source
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_material
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_material
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
-- Abstract library attributes
library_code
VARCHAR
,
library_code_codespace
VARCHAR
,
-- SolidMaterial attributes
thm_conductivity
NUMERIC
,
thm_conductivity_uom
VARCHAR
,
spec_heat_capacity
NUMERIC
,
spec_heat_capacity_uom
VARCHAR
,
density
NUMERIC
,
density_uom
VARCHAR
,
permeance
NUMERIC
,
permeance_uom
VARCHAR
,
porosity
NUMERIC
,
porosity_uom
VARCHAR
,
embodied_carbon
NUMERIC
,
embodied_carbon_uom
VARCHAR
,
embodied_energy
NUMERIC
,
embodied_energy_uom
VARCHAR
,
-- Gas attributes
is_ventilated
NUMERIC
,
r_value
NUMERIC
,
r_value_uom
VARCHAR
,
-- FK
library_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_occupants
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_occupants
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
num_of_occupants
INTEGER
,
heat_diss
NUMERIC
,
heat_diss_uom
VARCHAR
,
heat_diss_conv
NUMERIC
,
heat_diss_conv_uom
VARCHAR
,
heat_diss_lat
NUMERIC
,
heat_diss_lat_uom
VARCHAR
,
heat_diss_rad
NUMERIC
,
heat_diss_rad_uom
VARCHAR
,
avg_diet_type
VARCHAR
,
avg_diet_type_codespace
VARCHAR
,
avg_income_level
VARCHAR
,
avg_income_level_codespace
VARCHAR
,
avg_instr_level
VARCHAR
,
avg_instr_level_codespace
VARCHAR
,
-- FK
schedule_id
BIGINT
,
building_partition_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_opening - extends (building) opening table
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_opening
(
id
BIGINT
PRIMARY
KEY
,
area
NUMERIC
,
area_uom
VARCHAR
,
azimuth
NUMERIC
,
azimuth_uom
VARCHAR
,
inclination
NUMERIC
,
inclination_uom
VARCHAR
,
ground_view_factor
NUMERIC
,
ground_view_factor_uom
VARCHAR
,
sky_view_factor
NUMERIC
,
sky_view_factor_uom
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_optical_property
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_optical_property
(
id
BIGINT
PRIMARY
KEY
DEFAULT
nextval
(
'ng3_optical_property_seq'
::
regclass
),
objectclass_id
INTEGER
,
fraction
NUMERIC
,
fraction_uom
VARCHAR
,
surface
VARCHAR
,
wavelength_range
VARCHAR
,
-- FK
layered_construction_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_qualified_attribute
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_qualified_attribute
(
id
BIGINT
PRIMARY
KEY
DEFAULT
nextval
(
'ng3_qualified_attribute_seq'
::
regclass
),
objectclass_id
INTEGER
,
type
VARCHAR
,
type_codespace
VARCHAR
,
value
NUMERIC
,
value_uom
VARCHAR
,
description
VARCHAR
,
source
VARCHAR
,
-- FK
building_id
BIGINT
,
building_partition_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_refurbishment_measure
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_refurbishment_measure
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
start_date
DATE
,
end_date
DATE
,
library_code
VARCHAR
,
library_code_codespace
VARCHAR
,
-- FK
building_id
BIGINT
,
building_partition_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_resource
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_resource
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
type
VARCHAR
,
type_codespace
VARCHAR
,
enduse
VARCHAR
,
enduse_codespace
VARCHAR
,
status
VARCHAR
,
operation_type
VARCHAR
,
operation_type_codespace
VARCHAR
,
year
INTEGER
,
amount_type
VARCHAR
,
amount_type_codespace
VARCHAR
,
amount
NUMERIC
,
amount_uom
VARCHAR
,
time_series_id
BIGINT
,
is_amount_normalized
NUMERIC
,
normalization_param
VARCHAR
,
normalization_value
NUMERIC
,
normalization_value_uom
VARCHAR
,
co2_equivalent
NUMERIC
,
co2_equivalent_uom
VARCHAR
,
costs_money
NUMERIC
,
costs_money_uom
VARCHAR
,
yields_money
NUMERIC
,
yields_money_uom
VARCHAR
,
-- Attributes for Energy
energy_carrier
VARCHAR
,
energy_carrier_codespace
VARCHAR
,
maximum_load
NUMERIC
,
maximum_load_uom
VARCHAR
,
source
VARCHAR
,
source_codespace
VARCHAR
,
-- Attributes for Waste
is_dangerous
NUMERIC
,
is_recyclable
NUMERIC
,
-- FK
cityobject_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_schedule
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_schedule
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
library_code
VARCHAR
,
library_code_codespace
VARCHAR
,
type
VARCHAR
,
type_codespace
VARCHAR
,
start_time
TIME
WITHOUT
TIME
ZONE
,
start_day
INTEGER
,
start_month
INTEGER
,
start_year
INTEGER
,
time_interval
NUMERIC
,
time_interval_unit
VARCHAR
,
-- time_interval_factor INTEGER, -- used for temporalExtent
-- time_interval_radix INTEGER, -- used for temporalExtent
-- DualValue Schedule
idle_value
NUMERIC
,
idle_value_uom
VARCHAR
,
usage_value
NUMERIC
,
usage_value_uom
VARCHAR
,
start_usage_time
TIME
WITHOUT
TIME
ZONE
,
end_usage_time
TIME
WITHOUT
TIME
ZONE
,
-- Atomic Schedule
constant_value
NUMERIC
,
constant_value_uom
VARCHAR
,
-- FK
time_series_id
BIGINT
,
library_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_schedule_component
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_schedule_component
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
repetitions
INTEGER
NOT
NULL
DEFAULT
1
,
additional_gap
NUMERIC
,
additional_gap_unit
VARCHAR
,
-- additional_gap_factor INTEGER,
-- additional_gap_radix INTEGER,
-- FK
parent_schedule_id
BIGINT
,
schedule_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_solar_collector
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_solar_collector
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
type
VARCHAR
,
type_codespace
VARCHAR
,
cell_type
VARCHAR
,
cell_type_codespace
VARCHAR
,
module_area
NUMERIC
,
module_area_uom
VARCHAR
,
azimuth
NUMERIC
,
azimuth_uom
VARCHAR
,
inclination
NUMERIC
,
inclination_uom
VARCHAR
,
aperture_area
NUMERIC
,
aperture_area_uom
VARCHAR
,
opt_efficiency
NUMERIC
,
opt_efficiency_uom
VARCHAR
,
lin_heat_loss_coeff
NUMERIC
,
quad_heat_loss_coeff
NUMERIC
,
-- FK
lod2_multi_surface_id
BIGINT
,
lod3_multi_surface_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_storage_device
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_storage_device
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
medium
VARCHAR
,
medium_codespace
VARCHAR
,
preparation_temp
NUMERIC
,
preparation_temp_uom
VARCHAR
,
thm_losses_factor
NUMERIC
,
thm_losses_factor_uom
VARCHAR
,
volume
NUMERIC
,
volume_uom
VARCHAR
,
batt_techn
VARCHAR
,
batt_techn_codespace
VARCHAR
,
power_capacity
NUMERIC
,
power_capacity_uom
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_suitability
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_suitability
(
id
BIGINT
PRIMARY
KEY
DEFAULT
nextval
(
'ng3_suitability_seq'
::
regclass
),
reason
VARCHAR
,
reason_codespace
VARCHAR
,
value
NUMERIC
,
value_uom
VARCHAR
,
description
VARCHAR
,
schedule_id
BIGINT
,
-- FK
cityobject_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_them_surf_to_thermal_zone
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_them_surf_to_thermal_zone
(
thematic_surface_id
BIGINT
NOT
NULL
,
thermal_zone_id
BIGINT
NOT
NULL
,
PRIMARY
KEY
(
thematic_surface_id
,
thermal_zone_id
)
);
-- --------------------------------------------------------------------
-- ng3_thematic_surface - extends (building) thematic_surface table
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_thematic_surface
(
id
BIGINT
PRIMARY
KEY
,
total_surf_area
NUMERIC
,
total_surf_area_uom
VARCHAR
,
opaque_surf_area
NUMERIC
,
opaque_surf_area_uom
VARCHAR
,
open_to_surf_ratio
NUMERIC
,
open_to_surf_ratio_uom
VARCHAR
,
thickness
NUMERIC
,
thickness_uom
VARCHAR
,
azimuth
NUMERIC
,
azimuth_uom
VARCHAR
,
inclination
NUMERIC
,
inclination_uom
VARCHAR
,
ground_view_factor
NUMERIC
,
ground_view_factor_uom
VARCHAR
,
sky_view_factor
NUMERIC
,
sky_view_factor_uom
VARCHAR
,
is_adiabatic
NUMERIC
,
heat_capacity
NUMERIC
,
heat_capacity_uom
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_time_series
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_time_series
(
id
BIGINT
PRIMARY
KEY
,
objectclass_id
INTEGER
,
-- AbstractTieSeries attributes
acquisition_method
VARCHAR
,
acquisition_method_codespace
VARCHAR
,
interpolation_type
VARCHAR
,
source
VARCHAR
,
-- Other attributes
period_begin
TIMESTAMP
WITH
TIME
ZONE
,
period_end
TIMESTAMP
WITH
TIME
ZONE
,
start_time
TIME
WITHOUT
TIME
ZONE
,
start_day
INTEGER
,
start_month
INTEGER
,
temporal_extent
NUMERIC
,
temporal_extent_unit
VARCHAR
,
-- temporal_extent_factor INTEGER,
-- temporal_extent_radix INTEGER,
time_interval
NUMERIC
,
time_interval_unit
VARCHAR
,
-- time_interval_factor INTEGER,
-- time_interval_radix INTEGER,
values_list
TEXT
,
values_list_uom
VARCHAR
,
uom
VARCHAR
,
file_uri
VARCHAR
,
num_of_header_lines
INTEGER
,
field_separator
VARCHAR
,
record_separator
VARCHAR
,
value_column_number
INTEGER
,
decimal_symbol
VARCHAR
,
auth_type
VARCHAR
,
auth_type_codespace
VARCHAR
,
base_url
VARCHAR
,
connection_type
VARCHAR
,
connection_type_codespace
VARCHAR
,
datastream_id
VARCHAR
,
link_to_observation
VARCHAR
,
link_to_sensor_description
VARCHAR
,
mqtt_server
VARCHAR
,
mqtt_topic
VARCHAR
,
observation_id
VARCHAR
,
observation_property
VARCHAR
,
sensor_id
VARCHAR
,
sensor_name
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_urban_function_area
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_urban_function_area
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
code
VARCHAR
,
code_codespace
VARCHAR
);
-- --------------------------------------------------------------------
-- ng3_utl_ntw_connection
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_utl_ntw_connection
(
id
BIGINT
PRIMARY
KEY
,
network_type
VARCHAR
,
network_type_codespace
VARCHAR
,
connection_status
VARCHAR
,
function_in_network
VARCHAR
,
function_in_network_codespace
VARCHAR
,
usage_in_network
VARCHAR
,
usage_in_network_codespace
VARCHAR
,
network_id
VARCHAR
,
network_node_id
VARCHAR
,
-- FK
cityobject_id
BIGINT
);
-- --------------------------------------------------------------------
-- ng3_weather_data
-- --------------------------------------------------------------------
CREATE
TABLE
ng3_weather_data
(
id
BIGINT
PRIMARY
KEY
,
type
VARCHAR
,
type_codespace
VARCHAR
,
value_type
VARCHAR
,
value_type_codespace
VARCHAR
,
yearly_value
NUMERIC
,
yearly_value_uom
VARCHAR
,
library_code
VARCHAR
,
library_code_codespace
VARCHAR
,
-- FK
time_series_id
BIGINT
,
cityobject_id
BIGINT
,
--
position
geometry
(
POINTZ
)
);
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Create foreign keys ********************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- --------------------------------------------------------------------
-- ng3_address_to_building_unit
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_address_to_building_unit
ADD
CONSTRAINT
ng3_addr_to_bdgu_fk1
FOREIGN
KEY
(
address_id
)
REFERENCES
address
(
id
)
ON
DELETE
CASCADE
;
ALTER
TABLE
ng3_address_to_building_unit
ADD
CONSTRAINT
ng3_addr_to_bdgu_fk2
FOREIGN
KEY
(
building_unit_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
CASCADE
;
-- --------------------------------------------------------------------
-- ng3_building
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_building
ADD
CONSTRAINT
ng3_bdg_fk
FOREIGN
KEY
(
id
)
REFERENCES
building
(
id
);
-- --------------------------------------------------------------------
-- ng3_building_partition
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_lod1_fk
FOREIGN
KEY
(
lod1_solid_id
)
REFERENCES
surface_geometry
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_lod2_fk
FOREIGN
KEY
(
lod2_solid_id
)
REFERENCES
surface_geometry
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_lod3_fk
FOREIGN
KEY
(
lod3_solid_id
)
REFERENCES
surface_geometry
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_uz_fk
FOREIGN
KEY
(
usage_zone_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_tz_fk
FOREIGN
KEY
(
thermal_zone_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_bdg_fk
FOREIGN
KEY
(
building_id
)
REFERENCES
ng3_building
(
id
);
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_sched_fk1
FOREIGN
KEY
(
cooling_schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_sched_fk2
FOREIGN
KEY
(
heating_schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_building_partition
ADD
CONSTRAINT
ng3_bdgp_sched_fk3
FOREIGN
KEY
(
ventilation_schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_cityobject
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_cityobject
ADD
CONSTRAINT
ng3_cto_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_cityobject
ADD
CONSTRAINT
ng3_cto_lcns_fk
FOREIGN
KEY
(
layered_construction_id
)
REFERENCES
ng3_layered_construction
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_ctyobj_relation
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_ctyobj_relation
ADD
CONSTRAINT
ng3_cto_rel_fk2
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
cityobject
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_ctyobj_relation
ADD
CONSTRAINT
ng3_cto_rel_fk1
FOREIGN
KEY
(
ng3_cityobject_id
)
REFERENCES
ng3_cityobject
(
id
);
-- --------------------------------------------------------------------
-- ng3_device
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_device
ADD
CONSTRAINT
ng3_dev_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_device
ADD
CONSTRAINT
ng3_dev_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_device
ADD
CONSTRAINT
ng3_dev_opt_fk
FOREIGN
KEY
(
transmittance_id
)
REFERENCES
ng3_optical_property
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_device
ADD
CONSTRAINT
ng3_dev_ng3_cto_fk
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
ng3_cityobject
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_device_operation
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_device_operation
ADD
CONSTRAINT
ng3_dev_opr_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_device_operation
ADD
CONSTRAINT
ng3_dev_opr_sched_fk
FOREIGN
KEY
(
schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_device_operation
ADD
CONSTRAINT
ng3_dev_opr_dev_fk
FOREIGN
KEY
(
device_id
)
REFERENCES
ng3_device
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_energy_perf_cert
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_energy_perf_cert
ADD
CONSTRAINT
ng3_epc_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_energy_perf_cert
ADD
CONSTRAINT
ng3_epc_bdg_fk
FOREIGN
KEY
(
building_id
)
REFERENCES
ng3_building
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_energy_perf_cert
ADD
CONSTRAINT
ng3_epc_bdg_part_fk
FOREIGN
KEY
(
building_partition_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_layer
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_layer
ADD
CONSTRAINT
ng3_lyr_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_layer
ADD
CONSTRAINT
ng3_lyr_mat_fk
FOREIGN
KEY
(
material_id
)
REFERENCES
ng3_material
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_layer
ADD
CONSTRAINT
ng3_lyr_lcns_fk
FOREIGN
KEY
(
layered_construction_id
)
REFERENCES
ng3_layered_construction
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_layered_construction
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_layered_construction
ADD
CONSTRAINT
ng3_lcns_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_layered_construction
ADD
CONSTRAINT
ng3_lcns_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_layered_construction
ADD
CONSTRAINT
ng3_lcns_lcns_fk
FOREIGN
KEY
(
layered_construction_id
)
REFERENCES
ng3_layered_construction
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_layered_construction
ADD
CONSTRAINT
ng3_lcns_lib_fk
FOREIGN
KEY
(
library_id
)
REFERENCES
ng3_library
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_library
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_library
ADD
CONSTRAINT
ng3_lib_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_library
ADD
CONSTRAINT
ng3_lib_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
-- --------------------------------------------------------------------
-- ng3_material
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_material
ADD
CONSTRAINT
ng3_mat_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_material
ADD
CONSTRAINT
ng3_mat_lib_fk
FOREIGN
KEY
(
library_id
)
REFERENCES
ng3_library
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_occupants
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_occupants
ADD
CONSTRAINT
ng3_occ_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_occupants
ADD
CONSTRAINT
ng3_occ_sched_fk
FOREIGN
KEY
(
schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_occupants
ADD
CONSTRAINT
ng3_occ_ng3_bdgp_fk
FOREIGN
KEY
(
building_partition_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_opening
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_opening
ADD
CONSTRAINT
ng3_opn_fk
FOREIGN
KEY
(
id
)
REFERENCES
opening
(
id
);
-- --------------------------------------------------------------------
-- ng3_optical_property
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_optical_property
ADD
CONSTRAINT
ng3_optpty_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_optical_property
ADD
CONSTRAINT
ng3_optpty_lcns_fk
FOREIGN
KEY
(
layered_construction_id
)
REFERENCES
ng3_layered_construction
(
id
);
-- --------------------------------------------------------------------
-- ng3_qualified_attribute
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_qualified_attribute
ADD
CONSTRAINT
ng3_qatt_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_qualified_attribute
ADD
CONSTRAINT
ng3_qatt_bdg_fk
FOREIGN
KEY
(
building_id
)
REFERENCES
ng3_building
(
id
);
ALTER
TABLE
ng3_qualified_attribute
ADD
CONSTRAINT
ng3_qatt_bdg_part_fk
FOREIGN
KEY
(
building_partition_id
)
REFERENCES
ng3_building_partition
(
id
);
-- --------------------------------------------------------------------
-- ng3_refurbishment_measure
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_refurbishment_measure
ADD
CONSTRAINT
ng3_refurb_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_refurbishment_measure
ADD
CONSTRAINT
ng3_refurb_bdg_fk
FOREIGN
KEY
(
building_id
)
REFERENCES
ng3_building
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_refurbishment_measure
ADD
CONSTRAINT
ng3_refurb_bdg_part_fk
FOREIGN
KEY
(
building_partition_id
)
REFERENCES
ng3_building_partition
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_resource
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_resource
ADD
CONSTRAINT
ng3_res_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_resource
ADD
CONSTRAINT
ng3_res_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_resource
ADD
CONSTRAINT
ng3_res_ts_fk
FOREIGN
KEY
(
time_series_id
)
REFERENCES
ng3_time_series
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_resource
ADD
CONSTRAINT
ng3_res_cto_fk
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
ng3_cityobject
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_schedule
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_schedule
ADD
CONSTRAINT
ng3_sched_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_schedule
ADD
CONSTRAINT
ng3_sched_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_schedule
ADD
CONSTRAINT
ng3_sched_ts_fk
FOREIGN
KEY
(
time_series_id
)
REFERENCES
ng3_time_series
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_schedule
ADD
CONSTRAINT
ng3_sched_lib_fk
FOREIGN
KEY
(
library_id
)
REFERENCES
ng3_library
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_schedule_component
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_schedule_component
ADD
CONSTRAINT
ng3_sched_comp_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_schedule_component
ADD
CONSTRAINT
ng3_sched_comp_sched_fk1
FOREIGN
KEY
(
parent_schedule_id
)
REFERENCES
ng3_schedule
(
id
);
ALTER
TABLE
ng3_schedule_component
ADD
CONSTRAINT
ng3_sched_comp_sched_fk2
FOREIGN
KEY
(
schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_solar_collector
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_solar_collector
ADD
CONSTRAINT
ng3_sol_coll_fk
FOREIGN
KEY
(
id
)
REFERENCES
ng3_device
(
id
);
ALTER
TABLE
ng3_solar_collector
ADD
CONSTRAINT
ng3_sol_coll_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
ALTER
TABLE
ng3_solar_collector
ADD
CONSTRAINT
ng3_sol_coll_lod2_fk
FOREIGN
KEY
(
lod2_multi_surface_id
)
REFERENCES
surface_geometry
(
id
);
ALTER
TABLE
ng3_solar_collector
ADD
CONSTRAINT
ng3_sol_coll_lod3_fk
FOREIGN
KEY
(
lod3_multi_surface_id
)
REFERENCES
surface_geometry
(
id
);
-- --------------------------------------------------------------------
-- ng3_storage_device
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_storage_device
ADD
CONSTRAINT
ng3_sto_dev_fk
FOREIGN
KEY
(
id
)
REFERENCES
ng3_device
(
id
);
ALTER
TABLE
ng3_storage_device
ADD
CONSTRAINT
ng3_sto_dev_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
-- --------------------------------------------------------------------
-- ng3_suitability
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_suitability
ADD
CONSTRAINT
ng3_suit_cto_fk
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
ng3_cityobject
(
id
);
ALTER
TABLE
ng3_suitability
ADD
CONSTRAINT
ng3_suit_sched_fk
FOREIGN
KEY
(
schedule_id
)
REFERENCES
ng3_schedule
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_them_surf_to_thermal_zone
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_them_surf_to_thermal_zone
ADD
CONSTRAINT
ng3_thm_surf_to_tz_fk2
FOREIGN
KEY
(
thermal_zone_id
)
REFERENCES
ng3_building_partition
(
id
);
ALTER
TABLE
ng3_them_surf_to_thermal_zone
ADD
CONSTRAINT
ng3_thm_surf_to_tz_fk1
FOREIGN
KEY
(
thematic_surface_id
)
REFERENCES
thematic_surface
(
id
)
ON
DELETE
CASCADE
;
-- --------------------------------------------------------------------
-- ng3_thematic_surface
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_thematic_surface
ADD
CONSTRAINT
ng3_them_surf_fk
FOREIGN
KEY
(
id
)
REFERENCES
thematic_surface
(
id
);
-- --------------------------------------------------------------------
-- ng3_time_series
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_time_series
ADD
CONSTRAINT
ng3_ts_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_time_series
ADD
CONSTRAINT
ng3_ts_oc_fk
FOREIGN
KEY
(
objectclass_id
)
REFERENCES
objectclass
(
id
);
-- --------------------------------------------------------------------
-- ng3_urban_function_area
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_urban_function_area
ADD
CONSTRAINT
ng3_ufa_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobjectgroup
(
id
);
-- --------------------------------------------------------------------
-- ng3_utl_ntw_connection
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_utl_ntw_connection
ADD
CONSTRAINT
ng3_utl_ntw_con_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_utl_ntw_connection
ADD
CONSTRAINT
ng3_utl_ntw_con_cto_fk
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
ng3_cityobject
(
id
)
ON
DELETE
SET
NULL
;
-- --------------------------------------------------------------------
-- ng3_weather_data
-- --------------------------------------------------------------------
ALTER
TABLE
ng3_weather_data
ADD
CONSTRAINT
ng3_wth_data_fk
FOREIGN
KEY
(
id
)
REFERENCES
cityobject
(
id
);
ALTER
TABLE
ng3_weather_data
ADD
CONSTRAINT
ng3_wth_data_ts_fk
FOREIGN
KEY
(
time_series_id
)
REFERENCES
ng3_time_series
(
id
)
ON
DELETE
SET
NULL
;
ALTER
TABLE
ng3_weather_data
ADD
CONSTRAINT
ng3_wth_data_ng3_cto_fk
FOREIGN
KEY
(
cityobject_id
)
REFERENCES
ng3_cityobject
(
id
)
ON
DELETE
SET
NULL
;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Create Indexes *************************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- --------------------------------------------------------------------
-- ng3_address_to_building_unit
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_address_to_bdgu_fk1x
ON
ng3_address_to_building_unit
USING
btree
(
address_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_address_to_bdgu_fk2x
ON
ng3_address_to_building_unit
USING
btree
(
building_unit_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_building
-- --------------------------------------------------------------------
-- no indices needed
-- --------------------------------------------------------------------
-- ng3_building_partition
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_bdgp_oc_fkx
ON
ng3_building_partition
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_sched_fk1x
ON
ng3_building_partition
USING
btree
(
cooling_schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_sched_fk2x
ON
ng3_building_partition
USING
btree
(
heating_schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_sched_fk3x
ON
ng3_building_partition
USING
btree
(
ventilation_schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_uz_fkx
ON
ng3_building_partition
USING
btree
(
usage_zone_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_tz_fkx
ON
ng3_building_partition
USING
btree
(
thermal_zone_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_bdg_fkx
ON
ng3_building_partition
USING
btree
(
building_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_solid1_fkx
ON
ng3_building_partition
USING
btree
(
lod1_solid_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_solid2_fkx
ON
ng3_building_partition
USING
btree
(
lod2_solid_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_bdgp_solid3_fkx
ON
ng3_building_partition
USING
btree
(
lod3_solid_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_cityobject
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_cto_ref_point_spx
ON
ng3_cityobject
USING
gist
(
ref_point
);
CREATE
INDEX
ng3_cto_lcns_fkx
ON
ng3_cityobject
USING
btree
(
layered_construction_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_ctyobj_relation
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_cto_rel_fk1x
ON
ng3_ctyobj_relation
USING
btree
(
ng3_cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_cto_rel_fk2x
ON
ng3_ctyobj_relation
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_device
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_dev_oc_fkx
ON
ng3_device
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_dev_opt_fkx
ON
ng3_device
USING
btree
(
transmittance_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_dev_cto_fkx
ON
ng3_device
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_device_operation
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_dev_opr_sched_fkx
ON
ng3_device_operation
USING
btree
(
schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_dev_opr_dev_fkx
ON
ng3_device_operation
USING
btree
(
device_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_energy_perf_cert
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_epc_bdg_fkx
ON
ng3_energy_perf_cert
USING
btree
(
building_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_epc_bdg_part_fkx
ON
ng3_energy_perf_cert
USING
btree
(
building_partition_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_layer
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_lyr_mat_fkx
ON
ng3_layer
USING
btree
(
material_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_lyr_lcns_fkx
ON
ng3_layer
USING
btree
(
layered_construction_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_layered_constr
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_lcns_oc_fkx
ON
ng3_layered_construction
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_lcns_lcns_fkx
ON
ng3_layered_construction
USING
btree
(
layered_construction_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_lcns_lib_fkx
ON
ng3_layered_construction
USING
btree
(
library_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_library
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_lib_oc_fkx
ON
ng3_library
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_material
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_mat_oc_fkx
ON
ng3_material
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_mat_lib_fkx
ON
ng3_material
USING
btree
(
library_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_occupants
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_occ_sched_fkx
ON
ng3_occupants
USING
btree
(
schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_occ_ng3_bdgp_fkx
ON
ng3_occupants
USING
btree
(
building_partition_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_opening
-- --------------------------------------------------------------------
-- no indices needed
-- --------------------------------------------------------------------
-- ng3_optical_property
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_optpty_oc_fkx
ON
ng3_optical_property
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_optpty_lcns_fkx
ON
ng3_optical_property
USING
btree
(
layered_construction_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_qualified_attribute
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_qual_attr_oc_fkx
ON
ng3_qualified_attribute
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_qual_attr_bdg_fkx
ON
ng3_qualified_attribute
USING
btree
(
building_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_qual_attr_bdg_part_fkx
ON
ng3_qualified_attribute
USING
btree
(
building_partition_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_qual_attr_type_idx
ON
ng3_qualified_attribute
USING
btree
(
type
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_refurbishment_measure
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_ref_meas_bdg_fkx
ON
ng3_refurbishment_measure
USING
btree
(
building_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_ref_meas_bdg_part_fkx
ON
ng3_refurbishment_measure
USING
btree
(
building_partition_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_resource
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_res_oc_fkx
ON
ng3_resource
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_res_ts_fkx
ON
ng3_resource
USING
btree
(
time_series_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_res_cto_fkx
ON
ng3_resource
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_schedule
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_sched_oc_fkx
ON
ng3_schedule
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_sched_ts_fkx
ON
ng3_schedule
USING
btree
(
time_series_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_sched_lib_fkx
ON
ng3_schedule
USING
btree
(
library_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_schedule_component
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_sched_comp_sched_fk1x
ON
ng3_schedule_component
USING
btree
(
parent_schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_sched_comp_sched_fk2x
ON
ng3_schedule_component
USING
btree
(
schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_solar_collector
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_sol_col_oc_fkx
ON
ng3_solar_collector
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_sol_col_lod2_fkx
ON
ng3_solar_collector
USING
btree
(
lod2_multi_surface_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_sol_col_lod3_fkx
ON
ng3_solar_collector
USING
btree
(
lod2_multi_surface_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_storage_device
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_sto_dev_oc_fkx
ON
ng3_storage_device
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_suitability
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_suit_cto_fkx
ON
ng3_suitability
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_suit_sched_fkx
ON
ng3_suitability
USING
btree
(
schedule_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_suit_reas_fkx
ON
ng3_suitability
USING
btree
(
reason
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_them_surf_to_thermal_zone
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_thm_surf_to_tz_fk1x
ON
ng3_them_surf_to_thermal_zone
USING
btree
(
thematic_surface_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_thm_surf_to_tz_fk2x
ON
ng3_them_surf_to_thermal_zone
USING
btree
(
thermal_zone_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_thematic_surface
-- --------------------------------------------------------------------
-- no indices needed
-- --------------------------------------------------------------------
-- ng3_time_series
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_ts_oc_fkx
ON
ng3_time_series
USING
btree
(
objectclass_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_urban_function_area
-- --------------------------------------------------------------------
-- no indices needed
-- --------------------------------------------------------------------
-- ng3_utl_ntw_connection
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_utl_ntw_conn_cto_fkx
ON
ng3_utl_ntw_connection
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
-- --------------------------------------------------------------------
-- ng3_weather_data
-- --------------------------------------------------------------------
CREATE
INDEX
ng3_wht_data_ts_fkx
ON
ng3_weather_data
USING
btree
(
time_series_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
CREATE
INDEX
ng3_wht_data_cto_fkx
ON
ng3_weather_data
USING
btree
(
cityobject_id
ASC
NULLS
LAST
)
WITH
(
FILLFACTOR
=
90
);
resources/database/3dcitydb/postgreSQL/DROP_ADE_DB.sql
0 → 100644
View file @
68ccaaab
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--
-- CityGML Energy ADE 3.0 (beta 7)
--
-- Last update: 2025-10-14
--
-- This DDL script uninstalls the 3DCityDB schema for the Energy ADE. It must be run
-- from within the ADE Manager plugin of the 3DCityDB Importer/Exporter.
--
-- This script was first automatically generated using the 3DCityDB ADE Manager
-- and successively edited and restructured by:
--
-- Dr. Giorgio Agugiaro
-- 3D Geoinformation group
-- Delft University of Technology
-- The Netherlands
--
-- https://3d.bk.tudelft.nl/gagugiaro/
--
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ******************************* DROP_ADE_DB.SQL execution START ************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Drop foreign keys **********************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ALTER
TABLE
ng3_address_to_building_unit
DROP
CONSTRAINT
ng3_addr_to_bdgu_fk1
;
ALTER
TABLE
ng3_address_to_building_unit
DROP
CONSTRAINT
ng3_addr_to_bdgu_fk2
;
ALTER
TABLE
ng3_building
DROP
CONSTRAINT
ng3_bdg_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_bdg_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_lod1_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_lod2_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_lod3_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_oc_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_sched_fk1
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_sched_fk2
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_sched_fk3
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_tz_fk
;
ALTER
TABLE
ng3_building_partition
DROP
CONSTRAINT
ng3_bdgp_uz_fk
;
ALTER
TABLE
ng3_cityobject
DROP
CONSTRAINT
ng3_cto_fk
;
ALTER
TABLE
ng3_cityobject
DROP
CONSTRAINT
ng3_cto_lcns_fk
;
ALTER
TABLE
ng3_ctyobj_relation
DROP
CONSTRAINT
ng3_cto_rel_fk1
;
ALTER
TABLE
ng3_ctyobj_relation
DROP
CONSTRAINT
ng3_cto_rel_fk2
;
ALTER
TABLE
ng3_device
DROP
CONSTRAINT
ng3_dev_fk
;
ALTER
TABLE
ng3_device
DROP
CONSTRAINT
ng3_dev_ng3_cto_fk
;
ALTER
TABLE
ng3_device
DROP
CONSTRAINT
ng3_dev_oc_fk
;
ALTER
TABLE
ng3_device
DROP
CONSTRAINT
ng3_dev_opt_fk
;
ALTER
TABLE
ng3_device_operation
DROP
CONSTRAINT
ng3_dev_opr_fk
;
ALTER
TABLE
ng3_device_operation
DROP
CONSTRAINT
ng3_dev_opr_dev_fk
;
ALTER
TABLE
ng3_device_operation
DROP
CONSTRAINT
ng3_dev_opr_sched_fk
;
ALTER
TABLE
ng3_energy_perf_cert
DROP
CONSTRAINT
ng3_epc_fk
;
ALTER
TABLE
ng3_energy_perf_cert
DROP
CONSTRAINT
ng3_epc_bdg_fk
;
ALTER
TABLE
ng3_energy_perf_cert
DROP
CONSTRAINT
ng3_epc_bdg_part_fk
;
ALTER
TABLE
ng3_layer
DROP
CONSTRAINT
ng3_lyr_fk
;
ALTER
TABLE
ng3_layer
DROP
CONSTRAINT
ng3_lyr_lcns_fk
;
ALTER
TABLE
ng3_layer
DROP
CONSTRAINT
ng3_lyr_mat_fk
;
ALTER
TABLE
ng3_layered_construction
DROP
CONSTRAINT
ng3_lcns_fk
;
ALTER
TABLE
ng3_layered_construction
DROP
CONSTRAINT
ng3_lcns_lcns_fk
;
ALTER
TABLE
ng3_layered_construction
DROP
CONSTRAINT
ng3_lcns_oc_fk
;
ALTER
TABLE
ng3_layered_construction
DROP
CONSTRAINT
ng3_lcns_lib_fk
;
ALTER
TABLE
ng3_library
DROP
CONSTRAINT
ng3_lib_fk
;
ALTER
TABLE
ng3_library
DROP
CONSTRAINT
ng3_lib_oc_fk
;
ALTER
TABLE
ng3_material
DROP
CONSTRAINT
ng3_mat_fk
;
ALTER
TABLE
ng3_material
DROP
CONSTRAINT
ng3_mat_lib_fk
;
ALTER
TABLE
ng3_occupants
DROP
CONSTRAINT
ng3_occ_fk
;
ALTER
TABLE
ng3_occupants
DROP
CONSTRAINT
ng3_occ_ng3_bdgp_fk
;
ALTER
TABLE
ng3_occupants
DROP
CONSTRAINT
ng3_occ_sched_fk
;
ALTER
TABLE
ng3_opening
DROP
CONSTRAINT
ng3_opn_fk
;
ALTER
TABLE
ng3_optical_property
DROP
CONSTRAINT
ng3_optpty_lcns_fk
;
ALTER
TABLE
ng3_optical_property
DROP
CONSTRAINT
ng3_optpty_oc_fk
;
ALTER
TABLE
ng3_qualified_attribute
DROP
CONSTRAINT
ng3_qatt_oc_fk
;
ALTER
TABLE
ng3_qualified_attribute
DROP
CONSTRAINT
ng3_qatt_bdg_fk
;
ALTER
TABLE
ng3_qualified_attribute
DROP
CONSTRAINT
ng3_qatt_bdg_part_fk
;
ALTER
TABLE
ng3_refurbishment_measure
DROP
CONSTRAINT
ng3_refurb_fk
;
ALTER
TABLE
ng3_refurbishment_measure
DROP
CONSTRAINT
ng3_refurb_bdg_fk
;
ALTER
TABLE
ng3_refurbishment_measure
DROP
CONSTRAINT
ng3_refurb_bdg_part_fk
;
ALTER
TABLE
ng3_resource
DROP
CONSTRAINT
ng3_res_fk
;
ALTER
TABLE
ng3_resource
DROP
CONSTRAINT
ng3_res_oc_fk
;
ALTER
TABLE
ng3_resource
DROP
CONSTRAINT
ng3_res_ts_fk
;
ALTER
TABLE
ng3_resource
DROP
CONSTRAINT
ng3_res_cto_fk
;
ALTER
TABLE
ng3_schedule
DROP
CONSTRAINT
ng3_sched_fk
;
ALTER
TABLE
ng3_schedule
DROP
CONSTRAINT
ng3_sched_oc_fk
;
ALTER
TABLE
ng3_schedule
DROP
CONSTRAINT
ng3_sched_ts_fk
;
ALTER
TABLE
ng3_schedule
DROP
CONSTRAINT
ng3_sched_lib_fk
;
ALTER
TABLE
ng3_schedule_component
DROP
CONSTRAINT
ng3_sched_comp_fk
;
ALTER
TABLE
ng3_schedule_component
DROP
CONSTRAINT
ng3_sched_comp_sched_fk1
;
ALTER
TABLE
ng3_schedule_component
DROP
CONSTRAINT
ng3_sched_comp_sched_fk2
;
ALTER
TABLE
ng3_solar_collector
DROP
CONSTRAINT
ng3_sol_coll_fk
;
ALTER
TABLE
ng3_solar_collector
DROP
CONSTRAINT
ng3_sol_coll_oc_fk
;
ALTER
TABLE
ng3_solar_collector
DROP
CONSTRAINT
ng3_sol_coll_lod2_fk
;
ALTER
TABLE
ng3_solar_collector
DROP
CONSTRAINT
ng3_sol_coll_lod3_fk
;
ALTER
TABLE
ng3_storage_device
DROP
CONSTRAINT
ng3_sto_dev_fk
;
ALTER
TABLE
ng3_storage_device
DROP
CONSTRAINT
ng3_sto_dev_oc_fk
;
ALTER
TABLE
ng3_suitability
DROP
CONSTRAINT
ng3_suit_cto_fk
;
ALTER
TABLE
ng3_suitability
DROP
CONSTRAINT
ng3_suit_sched_fk
;
ALTER
TABLE
ng3_them_surf_to_thermal_zone
DROP
CONSTRAINT
ng3_thm_surf_to_tz_fk1
;
ALTER
TABLE
ng3_them_surf_to_thermal_zone
DROP
CONSTRAINT
ng3_thm_surf_to_tz_fk2
;
ALTER
TABLE
ng3_thematic_surface
DROP
CONSTRAINT
ng3_them_surf_fk
;
ALTER
TABLE
ng3_time_series
DROP
CONSTRAINT
ng3_ts_fk
;
ALTER
TABLE
ng3_time_series
DROP
CONSTRAINT
ng3_ts_oc_fk
;
ALTER
TABLE
ng3_urban_function_area
DROP
CONSTRAINT
ng3_ufa_fk
;
ALTER
TABLE
ng3_utl_ntw_connection
DROP
CONSTRAINT
ng3_utl_ntw_con_cto_fk
;
ALTER
TABLE
ng3_utl_ntw_connection
DROP
CONSTRAINT
ng3_utl_ntw_con_fk
;
ALTER
TABLE
ng3_weather_data
DROP
CONSTRAINT
ng3_wth_data_fk
;
ALTER
TABLE
ng3_weather_data
DROP
CONSTRAINT
ng3_wth_data_ng3_cto_fk
;
ALTER
TABLE
ng3_weather_data
DROP
CONSTRAINT
ng3_wth_data_ts_fk
;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Drop tables ***************************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DROP
TABLE
ng3_address_to_building_unit
CASCADE
;
DROP
TABLE
ng3_building
CASCADE
;
DROP
TABLE
ng3_building_partition
CASCADE
;
DROP
TABLE
ng3_cityobject
CASCADE
;
DROP
TABLE
ng3_ctyobj_relation
CASCADE
;
DROP
TABLE
ng3_device
CASCADE
;
DROP
TABLE
ng3_device_operation
CASCADE
;
DROP
TABLE
ng3_energy_perf_cert
CASCADE
;
DROP
TABLE
ng3_layer
CASCADE
;
DROP
TABLE
ng3_layered_construction
CASCADE
;
DROP
TABLE
ng3_library
CASCADE
;
DROP
TABLE
ng3_material
CASCADE
;
DROP
TABLE
ng3_occupants
CASCADE
;
DROP
TABLE
ng3_opening
CASCADE
;
DROP
TABLE
ng3_optical_property
CASCADE
;
DROP
TABLE
ng3_qualified_attribute
CASCADE
;
DROP
TABLE
ng3_refurbishment_measure
CASCADE
;
DROP
TABLE
ng3_resource
CASCADE
;
DROP
TABLE
ng3_schedule
CASCADE
;
DROP
TABLE
ng3_schedule_component
CASCADE
;
DROP
TABLE
ng3_solar_collector
CASCADE
;
DROP
TABLE
ng3_storage_device
CASCADE
;
DROP
TABLE
ng3_suitability
CASCADE
;
DROP
TABLE
ng3_them_surf_to_thermal_zone
CASCADE
;
DROP
TABLE
ng3_thematic_surface
CASCADE
;
DROP
TABLE
ng3_time_series
CASCADE
;
DROP
TABLE
ng3_urban_function_area
CASCADE
;
DROP
TABLE
ng3_utl_ntw_connection
CASCADE
;
DROP
TABLE
ng3_weather_data
CASCADE
;
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- *********************************** Drop Sequences *************************************
-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DROP
SEQUENCE
ng3_ctyobj_relation_seq
;
DROP
SEQUENCE
ng3_optical_property_seq
;
DROP
SEQUENCE
ng3_qualified_attribute_seq
;
DROP
SEQUENCE
ng3_suitability_seq
;
\ No newline at end of file
resources/database/schema-mapping/schema-mapping.xml
0 → 100644
View file @
68ccaaab
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
****************************************************************************************
****************************************************************************************
CityGML Energy ADE 3.0 (beta 7)
Last update: 2025-10-14
This schema mapping file was first automatically generated using the ADE Manager
of the 3DCityDB Importer/Exporter and successively manually edited and restructured.
****************************************************************************************
This file was generated by:
Dr. Giorgio Agugiaro
3D Geoinformation group
Delft University of Technology
The Netherlands
https://3d.bk.tudelft.nl/gagugiaro/
****************************************************************************************
****************************************************************************************
-->
<schemaMapping
xmlns=
"http://www.3dcitydb.org/database/schema/1.0"
>
<metadata>
<name>
Energy ADE
</name>
<version>
3.0 beta 7 (2025-10-14)
</version>
<description>
Database schema for the 3DCityDB 4.x
</description>
<dbPrefix>
ng3
</dbPrefix>
</metadata>
<applicationSchemas>
<schema
id=
"ng3"
isADERoot=
"true"
>
<namespace
context=
"citygml-2.0"
>
http://www.citygml.org/ade/energy/3.0
</namespace>
</schema>
</applicationSchemas>
<!-- Mapping of the complex types -->
<complexTypes>
<!-- Abstract Optical Property -->
<complexType
abstract=
"true"
id=
"ng3_AbstractOpticalProperty_Type"
table=
"ng3_optical_property"
objectClassId=
"11001"
path=
"AbstractOpticalProperty"
schema=
"ng3"
>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"fraction"
schema=
"ng3"
>
<attribute
column=
"fraction"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"fraction_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</complexType>
<!-- Emissivity-->
<complexType
id=
"ng3_EmissivityType"
table=
"ng3_optical_property"
objectClassId=
"11002"
path=
"Emissivity"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractOpticalProperty_Type"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"surface"
type=
"string"
path=
"surface"
schema=
"ng3"
/>
</complexType>
<!-- Reflectance -->
<complexType
id=
"ng3_ReflectanceType"
table=
"ng3_optical_property"
objectClassId=
"11003"
path=
"Reflectance"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractOpticalProperty_Type"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"surface"
type=
"string"
path=
"surface"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"wavelength_range"
type=
"string"
path=
"wavelengthRange"
schema=
"ng3"
/>
</complexType>
<!-- Transmittance -->
<complexType
id=
"ng3_TransmittanceType"
table=
"ng3_optical_property"
objectClassId=
"11004"
path=
"Transmittance"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractOpticalProperty_Type"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"wavelength_range"
type=
"string"
path=
"wavelengthRange"
schema=
"ng3"
/>
</complexType>
<!-- Abstract Qualified Attribute (height, area, volume) -->
<complexType
abstract=
"true"
id=
"ng3_AbstractQualifiedAttributeType"
table=
"ng3_qualified_attribute"
objectClassId=
"11005"
path=
"AbstractQualifiedAttribute"
schema=
"ng3"
>
<attribute
maxOccurs=
"1"
column=
"description"
type=
"string"
path=
"description"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"source"
type=
"string"
path=
"description"
schema=
"ng3"
/>
</complexType>
<!-- Qualified Area -->
<complexType
id=
"ng3_QualifiedAreaType"
table=
"ng3_qualified_attribute"
objectClassId=
"11006"
path=
"QualifiedArea"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractQualifiedAttributeType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"value"
schema=
"ng3"
>
<attribute
column=
"value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</complexType>
<!-- Qualified Height -->
<complexType
id=
"ng3_QualifiedHeightType"
table=
"ng3_qualified_attribute"
objectClassId=
"11007"
path=
"QualifiedHeight"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractQualifiedAttributeType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"value"
schema=
"ng3"
>
<attribute
column=
"value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</complexType>
<!-- Qualified Volume -->
<complexType
id=
"ng3_QualifiedVolumeType"
table=
"ng3_qualified_attribute"
objectClassId=
"11008"
path=
"QualifiedVolume"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractQualifiedAttributeType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"value"
schema=
"ng3"
>
<attribute
column=
"value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</complexType>
<!-- CityObjectRelation -->
<complexType
id=
"ng3_CityObjectRelationType"
table=
"ng3_ctyobj_relation"
objectClassId=
"11009"
path=
"CityObjectRelation"
schema=
"ng3"
>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"relationType"
schema=
"ng3"
>
<attribute
column=
"relation_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"relation_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
minOccurs=
"1"
maxOccurs=
"1"
target=
"AbstractCityObjectType"
path=
"relatedTo"
schema=
"ng3"
relationType=
"association"
>
<join
table=
"cityobject"
fromColumn=
"cityobject_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</complexType>
<!-- Suitability -->
<complexType
id=
"ng3_SuitabilityType"
table=
"ng3_suitability"
objectClassId=
"11010"
path=
"Suitability"
schema=
"ng3"
>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"reason"
schema=
"ng3"
>
<attribute
column=
"reason_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
<attribute
column=
"reason"
type=
"string"
path=
"."
schema=
"ng3"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"description"
type=
"string"
path=
"description"
schema=
"ng3"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"value"
schema=
"ng3"
>
<attribute
column=
"value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
<attribute
column=
"value"
type=
"double"
path=
"."
schema=
"ng3"
/>
</complexAttribute>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"schedule"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</complexType>
</complexTypes>
<!-- Features and new CityObjects -->
<featureTypes>
<!-- Abstract Time Series -->
<featureType
abstract=
"true"
id=
"ng3_AbstractTimeSeriesType"
table=
"ng3_time_series"
objectClassId=
"11020"
path=
"AbstractTimeSeries"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"acquisitionMethod"
schema=
"ng3"
>
<attribute
column=
"acquisition_method"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"acquisition_method_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"interpolation_type"
type=
"string"
path=
"interpolationType"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"source"
type=
"string"
path=
"source"
schema=
"ng3"
/>
</featureType>
<!-- Regular Time Series -->
<featureType
id=
"ng3_RegularTimeSeriesType"
table=
"ng3_time_series"
objectClassId=
"11021"
path=
"RegularTimeSeries"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractTimeSeriesType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"timeInterval"
schema=
"ng3"
>
<attribute
column=
"time_interval"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"time_interval_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="time_interval_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="time_interval_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<complexProperty
minOccurs=
"1"
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<type
path=
"TimePeriod"
schema=
"ng3"
>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"period_begin"
type=
"timestamp"
path=
"beginPosition"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"period_end"
type=
"timestamp"
path=
"endPosition"
schema=
"ng3"
/>
</type>
</complexProperty>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"values"
schema=
"ng3"
>
<attribute
column=
"values_list"
type=
"clob"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"values_list_uom"
type=
"string"
path=
"@uom"
schema=
"ng3"
/>
</complexAttribute>
</featureType>
<!-- Regular Time Series File -->
<featureType
id=
"ng3_RegularTimeSeriesFileType"
table=
"ng3_time_series"
objectClassId=
"11022"
path=
"RegularTimeSeriesFile"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractTimeSeriesType"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"uom"
type=
"string"
path=
"uom"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"file_uri"
type=
"string"
path=
"file"
schema=
"ng3"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"timeInterval"
schema=
"ng3"
>
<attribute
column=
"time_interval"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"time_interval_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="time_interval_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="time_interval_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"num_of_header_lines"
type=
"integer"
path=
"numberOfHeaderLines"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"field_separator"
type=
"string"
path=
"fieldSeparator"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"record_separator"
type=
"string"
path=
"recordSeparator"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"decimal_symbol"
type=
"string"
path=
"decimalSymbol"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"value_column_number"
type=
"integer"
path=
"valueColumnNumber"
schema=
"ng3"
/>
<complexProperty
minOccurs=
"1"
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<type
path=
"TimePeriod"
schema=
"ng3"
>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"period_begin"
type=
"timestamp"
path=
"beginPosition"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"period_end"
type=
"timestamp"
path=
"endPosition"
schema=
"ng3"
/>
</type>
</complexProperty>
</featureType>
<!-- Typical Values Time Series -->
<featureType
id=
"ng3_TypicalValuesTimeSeriesType"
table=
"ng3_time_series"
objectClassId=
"11023"
path=
"TypicalValuesTimeSeries"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractTimeSeriesType"
/>
<attribute
maxOccurs=
"1"
column=
"start_time"
type=
"timestamp"
path=
"startTime"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_day"
type=
"integer"
path=
"startDay"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_month"
type=
"integer"
path=
"startMonth"
schema=
"ng3"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<attribute
column=
"temporal_extent"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"temporal_extent_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="temporal_extent_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="temporal_extent_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"timeInterval"
schema=
"ng3"
>
<attribute
column=
"time_interval"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"time_interval_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="time_interval_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="time_interval_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"values"
schema=
"ng3"
>
<attribute
column=
"values_list"
type=
"clob"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"values_list_uom"
type=
"string"
path=
"@uom"
schema=
"ng3"
/>
</complexAttribute>
</featureType>
<!-- Typical Values Time Series File -->
<featureType
id=
"ng3_TypicalValuesTimeSeriesFileType"
table=
"ng3_time_series"
objectClassId=
"11024"
path=
"TypicalValuesTimeSeriesFile"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractTimeSeriesType"
/>
<attribute
maxOccurs=
"1"
column=
"start_time"
type=
"timestamp"
path=
"startTime"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_day"
type=
"integer"
path=
"startDay"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_month"
type=
"integer"
path=
"startMonth"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"uom"
type=
"string"
path=
"uom"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"file_uri"
type=
"string"
path=
"file"
schema=
"ng3"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<attribute
column=
"temporal_extent"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"temporal_extent_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="temporal_extent_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="temporal_extent_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"timeInterval"
schema=
"ng3"
>
<attribute
column=
"time_interval"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"time_interval_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="time_interval_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="time_interval_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"num_of_header_lines"
type=
"integer"
path=
"numberOfHeaderLines"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"field_separator"
type=
"string"
path=
"fieldSeparator"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"record_separator"
type=
"string"
path=
"recordSeparator"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"decimal_symbol"
type=
"string"
path=
"decimalSymbol"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"value_column_number"
type=
"integer"
path=
"valueColumnNumber"
schema=
"ng3"
/>
</featureType>
<!-- Sensor Connection -->
<featureType
id=
"ng3_SensorConnectionType"
table=
"ng3_time_series"
objectClassId=
"11025"
path=
"SensorConnection"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractTimeSeriesType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<attribute
column=
"temporal_extent"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"temporal_extent_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="temporal_extent_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="temporal_extent_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"connectionType"
schema=
"ng3"
>
<attribute
column=
"connection_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"connection_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"observation_property"
type=
"string"
path=
"observationProperty"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"uom"
type=
"string"
path=
"uom"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"sensor_id"
type=
"string"
path=
"sensorID"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"sensor_name"
type=
"string"
path=
"sensorName"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"observation_id"
type=
"string"
path=
"observationID"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"datastream_id"
type=
"string"
path=
"datastreamID"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"base_url"
type=
"string"
path=
"baseURL"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"authType"
schema=
"ng3"
>
<attribute
column=
"auth_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"auth_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"mqtt_server"
type=
"string"
path=
"mqttServer"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"mqtt_topic"
type=
"string"
path=
"mqttTopic"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"link_to_observation"
type=
"string"
path=
"linkToObservation"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"link_to_sensor_description"
type=
"string"
path=
"linkToSensorDescription"
schema=
"ng3"
/>
</featureType>
<!-- Abstract Schedule -->
<featureType
abstract=
"true"
id=
"ng3_AbstractScheduleType"
table=
"ng3_schedule"
objectClassId=
"11030"
path=
"AbstractSchedule"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"libraryCode"
schema=
"ng3"
>
<attribute
column=
"library_code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"library_code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"start_time"
type=
"timestamp"
path=
"startTime"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_day"
type=
"integer"
path=
"startDay"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_month"
type=
"integer"
path=
"startMonth"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"start_year"
type=
"integer"
path=
"startYear"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"temporalExtent"
schema=
"ng3"
>
<attribute
column=
"time_interval"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"time_interval_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="time_interval_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="time_interval_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
</featureType>
<!-- Atomic Schedule -->
<featureType
id=
"ng3_AtomicScheduleType"
table=
"ng3_schedule"
objectClassId=
"11031"
path=
"AtomicSchedule"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractScheduleType"
/>
<complexAttribute
minOccurs=
"0"
maxOccurs=
"1"
path=
"constantValue"
schema=
"ng3"
>
<attribute
column=
"constant_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"constant_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
minOccurs=
"0"
maxOccurs=
"1"
target=
"ng3_AbstractTimeSeriesType"
path=
"timeSeries"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_time_series"
fromColumn=
"time_series_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Dual Value Schedule -->
<featureType
id=
"ng3_DualValueScheduleType"
table=
"ng3_schedule"
objectClassId=
"11032"
path=
"DualValueSchedule"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractScheduleType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"idleValue"
schema=
"ng3"
>
<attribute
column=
"idle_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"idle_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"usageValue"
schema=
"ng3"
>
<attribute
column=
"usage_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"usage_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"start_usage_time"
type=
"timestamp"
path=
"startUsageTime"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"end_usage_time"
type=
"timestamp"
path=
"endUsageTime"
schema=
"ng3"
/>
</featureType>
<!-- Composite Schedule -->
<featureType
id=
"ng3_CompositeScheduleType"
table=
"ng3_schedule"
objectClassId=
"11033"
path=
"CompositeSchedule"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractScheduleType"
/>
<featureProperty
minOccurs=
"1"
target=
"ng3_ScheduleComponentType"
path=
"scheduleComponent"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_schedule_component"
fromColumn=
"id"
toColumn=
"parent_schedule_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Schedule Component -->
<featureType
id=
"ng3_ScheduleComponentType"
table=
"ng3_schedule_component"
objectClassId=
"11034"
path=
"ScheduleComponent"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"repetitions"
type=
"integer"
path=
"repetitions"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"additionalGap"
schema=
"ng3"
>
<attribute
column=
"additional_gap"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"additional_gap_unit"
type=
"string"
path=
"@unit"
schema=
"gml"
/>
<!-- <attribute column="additional_gap_radix" type="integer" path="@radix" schema="gml"/> -->
<!-- <attribute column="additional_gap_factor" type="integer" path="@factor" schema="gml"/> -->
</complexAttribute>
<featureProperty
minOccurs=
"1"
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"scheduleComponentMember"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Energy Performance Certificate -->
<featureType
id=
"ng3_EnergyPerformanceCertificateType"
table=
"ng3_energy_perf_cert"
objectClassId=
"11040"
path=
"EnergyPerformanceCertificate"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"value"
schema=
"ng3"
>
<attribute
column=
"value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"label"
type=
"string"
path=
"label"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"issue_date"
type=
"date"
path=
"issueDate"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"expiration_date"
type=
"date"
path=
"expirationDate"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"cert_method"
type=
"string"
path=
"certificationMethod"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"cert_uri"
type=
"string"
path=
"certificationURI"
schema=
"ng3"
/>
</featureType>
<!-- Refurbishment Measure -->
<featureType
id=
"ng3_RefurbishmentMeasureType"
table=
"ng3_refurbishment_measure"
objectClassId=
"11041"
path=
"RefurbishmentMeasure"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"0"
maxOccurs=
"1"
column=
"start_date"
type=
"date"
path=
"startDate"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"end_date"
type=
"date"
path=
"endDate"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"libraryCode"
schema=
"ng3"
>
<attribute
column=
"library_code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"library_code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Utility Network Connection -->
<featureType
id=
"ng3_UtilityNetworkConnectionType"
table=
"ng3_utl_ntw_connection"
objectClassId=
"11042"
path=
"UtilityNetworkConnection"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"networkType"
schema=
"ng3"
>
<attribute
column=
"network_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"network_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"connection_status"
type=
"string"
path=
"connectionStatus"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"functionInNetwork"
schema=
"ng3"
>
<attribute
column=
"function_in_network"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"function_in_network_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"usageInNetwork"
schema=
"ng3"
>
<attribute
column=
"usage_in_network"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"usage_in_network_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"network_id"
type=
"string"
path=
"networkID"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"network_node_id"
type=
"string"
path=
"networkNodeID"
schema=
"ng3"
/>
</featureType>
<!-- Weather Data -->
<featureType
id=
"ng3_WeatherDataType"
table=
"ng3_weather_data"
objectClassId=
"11043"
path=
"WeatherData"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"libraryCode"
schema=
"ng3"
>
<attribute
column=
"library_code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"library_code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"valueType"
schema=
"ng3"
>
<attribute
column=
"value_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"value_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"yearlyValue"
schema=
"ng3"
>
<attribute
column=
"yearly_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"yearly_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractTimeSeriesType"
path=
"timeSeries"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_time_series"
fromColumn=
"time_series_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<geometryProperty
maxOccurs=
"1"
inlineColumn=
"position"
type=
"Point"
path=
"position"
schema=
"ng3"
/>
</featureType>
<!-- Abstract Layered Construction -->
<featureType
abstract=
"true"
id=
"ng3_AbstractLayeredConstructionType"
table=
"ng3_layered_construction"
objectClassId=
"11050"
path=
"AbstractLayeredConstruction"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
</featureType>
<!-- Layered Construction -->
<featureType
id=
"ng3_LayeredConstructionType"
table=
"ng3_layered_construction"
objectClassId=
"11051"
path=
"LayeredConstruction"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractLayeredConstructionType"
/>
<complexAttribute
maxOccurs=
"1"
path=
"libraryCode"
schema=
"ng3"
>
<attribute
column=
"library_code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"library_code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"uValue"
schema=
"ng3"
>
<attribute
column=
"u_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"u_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"gValue"
schema=
"ng3"
>
<attribute
column=
"g_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"g_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"glazingRatio"
schema=
"ng3"
>
<attribute
column=
"glazing_ratio"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"glazing_ratio_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexProperty
refType=
"ng3_EmissivityType"
path=
"emissivity"
schema=
"ng3"
>
<join
table=
"ng3_optical_property"
fromColumn=
"id"
toColumn=
"layered_construction_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<complexProperty
refType=
"ng3_ReflectanceType"
path=
"reflectance"
schema=
"ng3"
>
<join
table=
"ng3_optical_property"
fromColumn=
"id"
toColumn=
"layered_construction_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<complexProperty
refType=
"ng3_TransmittanceType"
path=
"transmittance"
schema=
"ng3"
>
<join
table=
"ng3_optical_property"
fromColumn=
"id"
toColumn=
"layered_construction_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<featureProperty
target=
"ng3_LayerType"
path=
"layer"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_layer"
fromColumn=
"id"
toColumn=
"layered_construction_id"
toRole=
"child"
/>
</featureProperty>
</featureType>
<!-- Reverse Layered Construction -->
<featureType
id=
"ng3_ReverseLayeredConstructionType"
table=
"ng3_layered_construction"
objectClassId=
"11052"
path=
"ReverseLayeredConstruction"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractLayeredConstructionType"
/>
<featureProperty
minOccurs=
"1"
maxOccurs=
"1"
target=
"ng3_LayeredConstructionType"
path=
"baseLayeredConstruction"
schema=
"ng3"
relationType=
"association"
>
<join
table=
"ng3_layered_construction"
fromColumn=
"layered_construction_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Layer -->
<featureType
id=
"ng3_LayerType"
table=
"ng3_layer"
objectClassId=
"11053"
path=
"Layer"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"thickness"
schema=
"ng3"
>
<attribute
column=
"thickness"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"thickness_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
minOccurs=
"1"
maxOccurs=
"1"
target=
"ng3_AbstractMaterialType"
path=
"material"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_material"
fromColumn=
"material_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Abstract Material -->
<featureType
abstract=
"true"
id=
"ng3_AbstractMaterialType"
table=
"ng3_material"
objectClassId=
"11054"
path=
"AbstractMaterial"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"libraryCode"
schema=
"ng3"
>
<attribute
column=
"library_code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"library_code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Solid Material -->
<featureType
id=
"ng3_SolidMaterialType"
table=
"ng3_material"
objectClassId=
"11055"
path=
"SolidMaterial"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractMaterialType"
/>
<complexAttribute
maxOccurs=
"1"
path=
"thermalConductivity"
schema=
"ng3"
>
<attribute
column=
"thm_conductivity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"thm_conductivity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"density"
schema=
"ng3"
>
<attribute
column=
"density"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"density_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"specificHeatCapacity"
schema=
"ng3"
>
<attribute
column=
"spec_heat_capacity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"spec_heat_capacity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"permeance"
schema=
"ng3"
>
<attribute
column=
"permeance"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"permeance_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"porosity"
schema=
"ng3"
>
<attribute
column=
"porosity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"porosity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"embodiedEnergy"
schema=
"ng3"
>
<attribute
column=
"embodied_energy"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"embodied_energy_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"embodiedCarbon"
schema=
"ng3"
>
<attribute
column=
"embodied_carbon"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"embodied_carbon_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Gas -->
<featureType
id=
"ng3_GasType"
table=
"ng3_material"
objectClassId=
"11056"
path=
"Gas"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractMaterialType"
/>
<attribute
maxOccurs=
"1"
column=
"is_ventilated"
type=
"boolean"
path=
"isVentilated"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"rValue"
schema=
"ng3"
>
<attribute
column=
"r_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"r_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- AbstractResource -->
<featureType
abstract=
"true"
id=
"ng3_AbstractResourceType"
table=
"ng3_resource"
objectClassId=
"11070"
path=
"AbstractResource"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"status"
type=
"string"
path=
"status"
schema=
"ng3"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"operationType"
schema=
"ng3"
>
<attribute
column=
"operation_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"operation_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"amountType"
schema=
"ng3"
>
<attribute
column=
"amount_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"amount_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"amount"
schema=
"ng3"
>
<attribute
column=
"amount"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"amount_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractTimeSeriesType"
path=
"timeDependentAmount"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_time_series"
fromColumn=
"time_series_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"is_amount_normalized"
type=
"boolean"
path=
"isAmountNormalized"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"normalizationValue"
schema=
"ng3"
>
<attribute
column=
"normalization_value"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"normalization_value_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
column=
"normalization_param"
type=
"string"
maxOccurs=
"1"
path=
"normalizationParameter"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"co2Equivalent"
schema=
"ng3"
>
<attribute
column=
"co2_equivalent"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"co2_equivalent_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"year"
type=
"integer"
path=
"year"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"costsMoney"
schema=
"ng3"
>
<attribute
column=
"costs_money"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"co2_equivalent_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"yieldsMoney"
schema=
"ng3"
>
<attribute
column=
"yields_money"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"yields_money_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Construction Material -->
<featureType
id=
"ng3_ConstructionMaterialType"
table=
"ng3_resource"
objectClassId=
"11071"
path=
"ConstructionMaterial"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Energy -->
<featureType
id=
"ng3_EnergyType"
table=
"ng3_resource"
objectClassId=
"11072"
path=
"Energy"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"energyCarrier"
schema=
"ng3"
>
<attribute
column=
"energy_carrier"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"energy_carrier_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"maximumLoad"
schema=
"ng3"
>
<attribute
column=
"maximum_load"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"maximum_load_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"source"
schema=
"ng3"
>
<attribute
column=
"source"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"source_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Food -->
<featureType
id=
"ng3_FoodType"
table=
"ng3_resource"
objectClassId=
"11073"
path=
"Food"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Other Resource -->
<featureType
id=
"ng3_OtherResourceType"
table=
"ng3_resource"
objectClassId=
"11074"
path=
"OtherResource"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Urban Space -->
<featureType
id=
"ng3_UrbanSpaceType"
table=
"ng3_resource"
objectClassId=
"11075"
path=
"UrbanSpace"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Resources: Waste -->
<featureType
id=
"ng3_WasteType"
table=
"ng3_resource"
objectClassId=
"11076"
path=
"Waste"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"is_dangerous"
type=
"boolean"
path=
"isDangerous"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"is_recyclable"
type=
"boolean"
path=
"isRecyclable"
schema=
"ng3"
/>
</featureType>
<!-- Resources: Water -->
<featureType
id=
"ng3_WaterType"
table=
"ng3_resource"
objectClassId=
"11077"
path=
"Water"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractResourceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"endUse"
schema=
"ng3"
>
<attribute
column=
"enduse"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"enduse_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Abstract Building Partition -->
<featureType
abstract=
"true"
id=
"ng3_AbstractBuildingPartitionType"
table=
"ng3_building_partition"
objectClassId=
"11080"
path=
"AbstractBuildingPartition"
schema=
"ng3"
>
<extension
base=
"AbstractCityObjectType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexProperty
refType=
"ng3_QualifiedAreaType"
path=
"area"
schema=
"ng3"
>
<join
table=
"ng3_qualified_attribute"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<complexProperty
refType=
"ng3_QualifiedVolumeType"
path=
"volume"
schema=
"ng3"
>
<join
table=
"ng3_qualified_attribute"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<geometryProperty
maxOccurs=
"1"
lod=
"1"
refColumn=
"lod1_solid_id"
type=
"AbstractSolid"
path=
"lod1Solid"
schema=
"ng3"
/>
<geometryProperty
maxOccurs=
"1"
lod=
"2"
refColumn=
"lod2_solid_id"
type=
"AbstractSolid"
path=
"lod2Solid"
schema=
"ng3"
/>
<geometryProperty
maxOccurs=
"1"
lod=
"3"
refColumn=
"lod3_solid_id"
type=
"AbstractSolid"
path=
"lod3Solid"
schema=
"ng3"
/>
</featureType>
<!-- Abstract Thermal Zone -->
<featureType
abstract=
"true"
id=
"ng3_AbstractThermalZoneType"
table=
"ng3_building_partition"
objectClassId=
"11045"
path=
"AbstractThermalZone"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractBuildingPartitionType"
/>
<featureProperty
target=
"ng3_AbstractUsageZoneType"
path=
"usageZone"
schema=
"ng3"
relationType=
"association"
>
<join
table=
"ng3_building_partition"
fromColumn=
"id"
toColumn=
"thermal_zone_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Thermal Zone -->
<featureType
id=
"ng3_ThermalZoneType"
table=
"ng3_building_partition"
objectClassId=
"11081"
path=
"ThermalZone"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractThermalZoneType"
/>
<complexAttribute
maxOccurs=
"1"
path=
"heatCapacity"
schema=
"ng3"
>
<attribute
column=
"heat_capacity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_capacity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"infiltrationRate"
schema=
"ng3"
>
<attribute
column=
"infiltration_rate"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"infiltration_rate_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"is_cooled"
type=
"boolean"
path=
"isCooled"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"is_heated"
type=
"boolean"
path=
"isHeated"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"coincides_with_lod2_hull"
type=
"boolean"
path=
"coincidesWithLod2Hull"
schema=
"ng3"
/>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"coincides_with_lod3_hull"
type=
"boolean"
path=
"coincidesWithLod3Hull"
schema=
"ng3"
/>
<featureProperty
target=
"AbstractBoundarySurfaceType"
path=
"thermalBoundary"
schema=
"ng3"
relationType=
"composition"
>
<joinTable
table=
"ng3_them_surf_to_thermal_zone"
>
<join
table=
"ng3_building_partition"
fromColumn=
"thermal_zone_id"
toColumn=
"id"
toRole=
"parent"
/>
<inverseJoin
table=
"thematic_surface"
fromColumn=
"thematic_surface_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</inverseJoin>
</joinTable>
</featureProperty>
<!-- To be tested: Improved version that does not require the association table -->
<!--
<featureProperty target="AbstractBoundarySurfaceType" path="thermalBoundary" schema="ng3">
<joinTable table="ng3_thematic_surface">
<join table="ng3_building_partition" fromColumn="id" toColumn="thermal_zone_id" toRole="parent"/>
<inverseJoin table="thematic_surface" fromColumn="id" toColumn="id" toRole="parent">
<condition column="objectclass_id" value="${target.objectclass_id}" type="integer"/>
</inverseJoin>
</joinTable>
</featureProperty>
-->
</featureType>
<!-- Attic Floor Surface -->
<featureType
id=
"ng3_AtticFloorSurfaceType"
table=
"thematic_surface"
objectClassId=
"11082"
path=
"AtticFloorSurface"
schema=
"ng3"
>
<extension
base=
"AbstractBoundarySurfaceType"
/>
</featureType>
<!-- Basement Ceiling Surface -->
<featureType
id=
"ng3_BasementCeilingSurfaceType"
table=
"thematic_surface"
objectClassId=
"11083"
path=
"BasementCeilingSurface"
schema=
"ng3"
>
<extension
base=
"AbstractBoundarySurfaceType"
/>
</featureType>
<!-- Intermediate Floor Surface -->
<featureType
id=
"ng3_IntermediateFloorSurfaceType"
table=
"thematic_surface"
objectClassId=
"11084"
path=
"IntermediateFloorSurface"
schema=
"ng3"
>
<extension
base=
"AbstractBoundarySurfaceType"
/>
</featureType>
<!-- Party Wall Surface -->
<featureType
id=
"ng3_PartyWallSurfaceType"
table=
"thematic_surface"
objectClassId=
"11085"
path=
"PartyWallSurface"
schema=
"ng3"
>
<extension
base=
"AbstractBoundarySurfaceType"
/>
</featureType>
<!-- Abstract Usage Zone -->
<featureType
abstract=
"true"
id=
"ng3_AbstractUsageZoneType"
table=
"ng3_building_partition"
objectClassId=
"11090"
path=
"AbstractUsageZone"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractBuildingPartitionType"
/>
<featureProperty
target=
"ng3_AbstractBuildingUnitType"
path=
"buildingUnit"
schema=
"ng3"
relationType=
"association"
>
<join
table=
"ng3_building_partition"
fromColumn=
"id"
toColumn=
"usage_zone_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Usage Zone -->
<featureType
id=
"ng3_UsageZoneType"
table=
"ng3_building_partition"
objectClassId=
"11091"
path=
"UsageZone"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractUsageZoneType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
column=
"is_primary"
type=
"boolean"
maxOccurs=
"1"
path=
"isPrimary"
schema=
"ng3"
/>
<attribute
column=
"num_of_building_units"
type=
"integer"
maxOccurs=
"1"
path=
"numberOfBuildingUnits"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"internalHeatGains"
schema=
"ng3"
>
<attribute
column=
"int_heat_gains"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"int_heat_gains_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"internalHeatGainsConvectiveFraction"
schema=
"ng3"
>
<attribute
column=
"int_heat_gains_conv"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"int_heat_gains_conv_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"internalHeatGainsLatentFraction"
schema=
"ng3"
>
<attribute
column=
"int_heat_gains_lat"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"int_heat_gains_lat_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"internalHeatGainsRadiantFraction"
schema=
"ng3"
>
<attribute
column=
"int_heat_gains_rad"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"int_heat_gains_rad_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"coolingSchedule"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"cooling_schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"heatingSchedule"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"heating_schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"ventilationSchedule"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"ventilation_schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
target=
"ng3_OccupantsType"
path=
"occupiedBy"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_occupants"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
/>
</featureProperty>
</featureType>
<!-- Abstract Building Unit -->
<featureType
abstract=
"true"
id=
"ng3_AbstractBuildingUnitType"
table=
"ng3_building_partition"
objectClassId=
"11092"
path=
"AbstractBuildingUnit"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractBuildingPartitionType"
/>
</featureType>
<!-- Building Unit -->
<featureType
id=
"ng3_BuildingUnitType"
table=
"ng3_building_partition"
objectClassId=
"11093"
path=
"BuildingUnit"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractBuildingUnitType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"num_of_rooms"
type=
"integer"
path=
"numberOfRooms"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"owner_name"
type=
"string"
path=
"ownerName"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"ownershipType"
schema=
"ng3"
>
<attribute
column=
"ownership_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"ownership_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
target=
"AddressType"
path=
"address"
schema=
"ng3"
relationType=
"association"
>
<joinTable
table=
"ng3_address_to_building_unit"
>
<join
table=
"ng3_building_partition"
fromColumn=
"building_unit_id"
toColumn=
"id"
toRole=
"parent"
/>
<inverseJoin
table=
"address"
fromColumn=
"address_id"
toColumn=
"id"
toRole=
"parent"
/>
</joinTable>
</featureProperty>
<featureProperty
target=
"ng3_EnergyPerformanceCertificateType"
path=
"energyPerformanceCertificate"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_energy_perf_cert"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
/>
</featureProperty>
<featureProperty
target=
"ng3_RefurbishmentMeasureType"
path=
"refurbishmentMeasure"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_refurbishment_measure"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
/>
</featureProperty>
<featureProperty
target=
"ng3_OccupantsType"
path=
"occupiedBy"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_occupants"
fromColumn=
"id"
toColumn=
"building_partition_id"
toRole=
"child"
/>
</featureProperty>
</featureType>
<!-- Occupants -->
<featureType
id=
"ng3_OccupantsType"
table=
"ng3_occupants"
objectClassId=
"11094"
path=
"Occupants"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"num_of_occupants"
type=
"integer"
path=
"numberOfOccupants"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipation"
schema=
"ng3"
>
<attribute
column=
"heat_diss"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationConvectiveFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_conv"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_conv_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationLatentFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_lat"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_lat_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationRadiantFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_rad"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_rad_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"averageDietType"
schema=
"ng3"
>
<attribute
column=
"avg_diet_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"avg_diet_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"averageIncomeLevel"
schema=
"ng3"
>
<attribute
column=
"avg_income_level"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"avg_income_level_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"averageInstructionLevel"
schema=
"ng3"
>
<attribute
column=
"avg_instr_level"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"avg_instr_level_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"occupancyRate"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Device Operation -->
<featureType
id=
"ng3_DeviceOperationType"
table=
"ng3_device_operation"
objectClassId=
"11100"
path=
"DeviceOperation"
schema=
"ng3"
>
<extension
base=
"AbstractFeatureType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"yearly_global_efficiency"
type=
"double"
path=
"yearlyGlobalEfficiency"
schema=
"ng3"
/>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractScheduleType"
path=
"schedule"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_schedule"
fromColumn=
"schedule_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Abstract Device -->
<featureType
abstract=
"true"
id=
"ng3_AbstractDeviceType"
table=
"ng3_device"
objectClassId=
"11101"
path=
"AbstractDevice"
schema=
"ng3"
>
<extension
base=
"AbstractCityObjectType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<attribute
maxOccurs=
"1"
column=
"model"
type=
"string"
path=
"model"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"year_of_manufacture"
type=
"integer"
path=
"yearOfManufacture"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"num_of_devices"
type=
"integer"
path=
"numberOfDevices"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"installedPower"
schema=
"ng3"
>
<attribute
column=
"installed_power"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"installed_power_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"nominalEfficiency"
schema=
"ng3"
>
<attribute
column=
"nominal_efficiency"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"nominal_efficiency_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"efficiency_indicator"
type=
"string"
path=
"efficiencyIndicator"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipation"
schema=
"ng3"
>
<attribute
column=
"heat_diss"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationConvectiveFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_conv"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_conv_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationLatentFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_lat"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_lat_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"heatDissipationRadiantFraction"
schema=
"ng3"
>
<attribute
column=
"heat_diss_rad"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_diss_rad_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<featureProperty
target=
"ng3_DeviceOperationType"
path=
"deviceOperation"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_device_operation"
fromColumn=
"id"
toColumn=
"device_id"
toRole=
"child"
/>
</featureProperty>
</featureType>
<!-- Boiler -->
<featureType
id=
"ng3_BoilerType"
table=
"ng3_device"
objectClassId=
"11102"
path=
"Boiler"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
<attribute
column=
"has_condensation"
type=
"boolean"
minOccurs=
"1"
maxOccurs=
"1"
path=
"hasCondensation"
schema=
"ng3"
/>
</featureType>
<!-- Generic Device -->
<featureType
id=
"ng3_GenericDeviceType"
table=
"ng3_device"
objectClassId=
"11103"
path=
"GenericDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
</featureType>
<!-- Generic Electrical Device -->
<featureType
id=
"ng3_GenericElectricalDeviceType"
table=
"ng3_device"
objectClassId=
"11104"
path=
"GenericElectricalDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
</featureType>
<!-- Lighting Device -->
<featureType
id=
"ng3_LightingDeviceType"
table=
"ng3_device"
objectClassId=
"11105"
path=
"LightingDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
</featureType>
<!-- Heat Pump -->
<featureType
id=
"ng3_HeatPumpType"
table=
"ng3_device"
objectClassId=
"11106"
path=
"HeatPump"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"heatSource"
schema=
"ng3"
>
<attribute
column=
"heat_source"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_source_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"copSourceTemperature"
schema=
"ng3"
>
<attribute
column=
"cop_source_temp"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"cop_source_temp_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"copOperationTemperature"
schema=
"ng3"
>
<attribute
column=
"cop_operation_temp"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"cop_operation_temp_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Movable Shading Device -->
<featureType
id=
"ng3_MovableShadingDeviceType"
table=
"ng3_device"
objectClassId=
"11107"
path=
"MovableShadingDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
minOccurs=
"1"
maxOccurs=
"1"
column=
"installation_side"
type=
"string"
path=
"installationSide"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"maximumCoverRatio"
schema=
"ng3"
>
<attribute
column=
"max_cover_ratio"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"max_cover_ratio_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexProperty
maxOccurs=
"1"
refType=
"ng3_TransmittanceType"
path=
"transmittance"
schema=
"ng3"
>
<join
table=
"ng3_optical_property"
fromColumn=
"transmittance_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
</featureType>
<!-- Electrical Storage Device -->
<featureType
id=
"ng3_ElectricalStorageDeviceType"
table=
"ng3_storage_device"
objectClassId=
"11108"
path=
"ElectricalStorageDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
>
<join
table=
"ng3_device"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"batteryTechnology"
schema=
"ng3"
>
<attribute
column=
"batt_techn"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"batt_techn_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"powerCapacity"
schema=
"ng3"
>
<attribute
column=
"power_capacity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"power_capacity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Thermal Storage Device -->
<featureType
id=
"ng3_ThermalStorageDeviceType"
table=
"ng3_storage_device"
objectClassId=
"11109"
path=
"ThermalStorageDevice"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
>
<join
table=
"ng3_device"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"preparationTemperature"
schema=
"ng3"
>
<attribute
column=
"preparation_temp"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"preparation_temp_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"medium"
schema=
"ng3"
>
<attribute
column=
"medium"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"medium_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"thermalLossesFactor"
schema=
"ng3"
>
<attribute
column=
"thm_losses_factor_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
<attribute
column=
"thm_losses_factor"
type=
"double"
path=
"."
schema=
"ng3"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"volume"
schema=
"ng3"
>
<attribute
column=
"volume"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"volume_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Abstract Solar Collector -->
<featureType
abstract=
"true"
id=
"ng3_AbstractSolarCollectorType"
table=
"ng3_solar_collector"
objectClassId=
"11110"
path=
"AbstractSolarCollector"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractDeviceType"
>
<join
table=
"ng3_device"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"moduleArea"
schema=
"ng3"
>
<attribute
column=
"module_area"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"module_area_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"apertureArea"
schema=
"ng3"
>
<attribute
column=
"aperture_area"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"aperture_area_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"azimuth"
schema=
"ng3"
>
<attribute
column=
"azimuth"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"azimuth_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"inclination"
schema=
"ng3"
>
<attribute
column=
"inclination"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"inclination_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<geometryProperty
maxOccurs=
"1"
lod=
"2"
refColumn=
"lod2_multi_surface_id"
type=
"MultiSurface"
path=
"lod2MultiSurface"
schema=
"ng3"
/>
<geometryProperty
maxOccurs=
"1"
lod=
"3"
refColumn=
"lod3_multi_surface_id"
type=
"MultiSurface"
path=
"lod3MultiSurface"
schema=
"ng3"
/>
</featureType>
<!-- Generic Solar Collector -->
<featureType
id=
"ng3_GenericSolarCollectorType"
table=
"ng3_solar_collector"
objectClassId=
"11111"
path=
"GenericSolarCollector"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractSolarCollectorType"
/>
</featureType>
<!-- Photovoltaic Collector -->
<featureType
id=
"ng3_PhotovoltaicCollectorType"
table=
"ng3_solar_collector"
objectClassId=
"11112"
path=
"PhotovoltaicCollector"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractSolarCollectorType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"cellType"
schema=
"ng3"
>
<attribute
column=
"cell_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"cell_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Solar Thermal Collector -->
<featureType
id=
"ng3_SolarThermalCollectorType"
table=
"ng3_solar_collector"
objectClassId=
"11113"
path=
"SolarThermalCollector"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractSolarCollectorType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"collectorType"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"opticalEfficiency"
schema=
"ng3"
>
<attribute
column=
"opt_efficiency"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"opt_efficiency_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"lin_heat_loss_coeff"
type=
"double"
path=
"linearHeatLossCoefficient"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"quad_heat_loss_coeff"
type=
"double"
path=
"quadraticHeatLossCoefficient"
schema=
"ng3"
/>
</featureType>
<!-- Photovoltaic Thermal Collector -->
<featureType
id=
"ng3_PhotovoltaicThermalCollectorType"
table=
"ng3_solar_collector"
objectClassId=
"11114"
path=
"PhotovoltaicThermalCollector"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractSolarCollectorType"
/>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"collectorType"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"cellType"
schema=
"ng3"
>
<attribute
column=
"cell_type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"cell_type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"opticalEfficiency"
schema=
"ng3"
>
<attribute
column=
"opt_efficiency"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"opt_efficiency_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"lin_heat_loss_coeff"
type=
"double"
path=
"linearHeatLossCoefficient"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"quad_heat_loss_coeff"
type=
"double"
path=
"quadraticHeatLossCoefficient"
schema=
"ng3"
/>
</featureType>
<!-- Urban Function Area -->
<featureType
id=
"ng3_UrbanFunctionAreaType"
table=
"ng3_urban_function_area"
objectClassId=
"11120"
topLevel=
"true"
path=
"UrbanFunctionArea"
schema=
"ng3"
>
<extension
base=
"CityObjectGroupType"
>
<join
table=
"cityobjectgroup"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
minOccurs=
"1"
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"code"
schema=
"ng3"
>
<attribute
column=
"code"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"code_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
</featureType>
<!-- Weather Station -->
<featureType
id=
"ng3_WeatherStationType"
table=
"cityobject"
objectClassId=
"11130"
topLevel=
"true"
path=
"WeatherStation"
schema=
"ng3"
>
<extension
base=
"AbstractCityObjectType"
/>
</featureType>
<!-- Abstract Library -->
<featureType
abstract=
"true"
id=
"ng3_AbstractLibraryType"
table=
"ng3_library"
objectClassId=
"11140"
path=
"AbstractLibrary"
schema=
"ng3"
>
<extension
base=
"AbstractCityObjectType"
>
<join
table=
"cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"parent"
/>
</extension>
<complexAttribute
maxOccurs=
"1"
path=
"type"
schema=
"ng3"
>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"source"
type=
"string"
path=
"source"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"author"
type=
"string"
path=
"author"
schema=
"ng3"
/>
</featureType>
<!-- Layered Construction Library -->
<featureType
id=
"ng3_LayeredConstructionLibraryType"
table=
"ng3_library"
objectClassId=
"11141"
topLevel=
"true"
path=
"LayeredConstructionLibrary"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractLibraryType"
/>
<featureProperty
target=
"ng3_AbstractLayeredConstructionType"
path=
"libraryMember"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_layered_construction"
fromColumn=
"id"
toColumn=
"library_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Material Library -->
<featureType
id=
"ng3_MaterialLibraryType"
table=
"ng3_library"
objectClassId=
"11142"
topLevel=
"true"
path=
"MaterialLibrary"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractLibraryType"
/>
<featureProperty
target=
"ng3_AbstractMaterialType"
path=
"libraryMember"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_material"
fromColumn=
"id"
toColumn=
"library_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
<!-- Schedule Library -->
<featureType
id=
"ng3_ScheduleLibraryType"
table=
"ng3_library"
objectClassId=
"11143"
topLevel=
"true"
path=
"ScheduleLibrary"
schema=
"ng3"
>
<extension
base=
"ng3_AbstractLibraryType"
/>
<featureProperty
target=
"ng3_AbstractScheduleType"
path=
"libraryMember"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_schedule"
fromColumn=
"id"
toColumn=
"library_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</featureType>
</featureTypes>
<!-- Mapping of new properties of existing CityGML CityObjects classes extended via ADE hook -->
<propertyInjections>
<!-- ADE _CityObject -->
<propertyInjection
table=
"ng3_cityobject"
defaultBase=
"AbstractCityObjectType"
>
<join
table=
"ng3_cityobject"
fromColumn=
"id"
toColumn=
"id"
toRole=
"child"
/>
<complexProperty
refType=
"ng3_CityObjectRelationType"
path=
"relatedTo"
schema=
"ng3"
>
<join
table=
"ng3_ctyobj_relation"
fromColumn=
"id"
toColumn=
"ng3_cityobject_id"
toRole=
"child"
/>
</complexProperty>
<featureProperty
target=
"ng3_UtilityNetworkConnectionType"
path=
"utilityNetworkConnection"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_utl_ntw_connection"
fromColumn=
"id"
toColumn=
"cityobject_id"
toRole=
"child"
/>
</featureProperty>
<featureProperty
maxOccurs=
"1"
target=
"ng3_AbstractLayeredConstructionType"
path=
"layeredConstruction"
schema=
"ng3"
relationType=
"association"
>
<!-- could be "aggregation" -->
<join
table=
"ng3_layered_construction"
fromColumn=
"layered_construction_id"
toColumn=
"id"
toRole=
"parent"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
target=
"ng3_AbstractDeviceType"
path=
"device"
schema=
"ng3"
relationType=
"aggregation"
>
<join
table=
"ng3_device"
fromColumn=
"id"
toColumn=
"cityobject_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
target=
"ng3_AbstractResourceType"
path=
"resource"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_resource"
fromColumn=
"id"
toColumn=
"cityobject_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<complexProperty
refType=
"ng3_SuitabilityType"
path=
"suitability"
schema=
"ng3"
>
<join
table=
"ng3_suitability"
fromColumn=
"id"
toColumn=
"cityobject_id"
toRole=
"child"
/>
</complexProperty>
<featureProperty
target=
"ng3_WeatherDataType"
path=
"weatherData"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_weather_data"
fromColumn=
"id"
toColumn=
"cityobject_id"
toRole=
"child"
/>
</featureProperty>
<geometryProperty
inlineColumn=
"ref_point"
type=
"Point"
path=
"referencePoint"
schema=
"ng3"
/>
</propertyInjection>
<!-- ADE Building -->
<propertyInjection
table=
"ng3_building"
defaultBase=
"AbstractBuildingType"
>
<join
table=
"ng3_building"
fromColumn=
"id"
toColumn=
"id"
toRole=
"child"
/>
<complexAttribute
maxOccurs=
"1"
path=
"bdgType"
schema=
"ng3"
>
<attribute
column=
"type"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"type_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgConstructionWeight"
schema=
"ng3"
>
<attribute
column=
"constr_weight"
type=
"string"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"constr_weight_codespace"
type=
"string"
path=
"@codespace"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"is_protected"
type=
"boolean"
path=
"bdgIsProtected"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"attic_thm_status"
type=
"string"
path=
"bdgAtticThermalStatus"
schema=
"ng3"
/>
<attribute
maxOccurs=
"1"
column=
"basement_thm_status"
type=
"string"
path=
"bdgBasementThermalStatus"
schema=
"ng3"
/>
<complexProperty
refType=
"ng3_QualifiedHeightType"
path=
"bdgHeight"
schema=
"ng3"
>
<join
table=
"ng3_qualified_attribute"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<complexProperty
refType=
"ng3_QualifiedAreaType"
path=
"bdgArea"
schema=
"ng3"
>
<join
table=
"ng3_qualified_attribute"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<complexProperty
refType=
"ng3_QualifiedVolumeType"
path=
"bdgVolume"
schema=
"ng3"
>
<join
table=
"ng3_qualified_attribute"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</complexProperty>
<featureProperty
target=
"ng3_RefurbishmentMeasureType"
path=
"refurbishmentMeasure"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_refurbishment_measure"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
/>
</featureProperty>
<featureProperty
target=
"ng3_EnergyPerformanceCertificateType"
path=
"energyPerformanceCertificate"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_energy_perf_cert"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
/>
</featureProperty>
<featureProperty
target=
"ng3_AbstractBuildingUnitType"
path=
"buildingUnit"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_building_partition"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
target=
"ng3_AbstractThermalZoneType"
path=
"thermalZone"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_building_partition"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
<featureProperty
target=
"ng3_AbstractUsageZoneType"
path=
"usageZone"
schema=
"ng3"
relationType=
"composition"
>
<join
table=
"ng3_building_partition"
fromColumn=
"id"
toColumn=
"building_id"
toRole=
"child"
>
<condition
column=
"objectclass_id"
value=
"${target.objectclass_id}"
type=
"integer"
/>
</join>
</featureProperty>
</propertyInjection>
<!-- (Building) ADE _BoundarySurface -->
<propertyInjection
table=
"ng3_thematic_surface"
defaultBase=
"AbstractBoundarySurfaceType"
>
<join
table=
"ng3_thematic_surface"
fromColumn=
"id"
toColumn=
"id"
toRole=
"child"
/>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfAzimuth"
schema=
"ng3"
>
<attribute
column=
"azimuth"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"azimuth_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfGroundViewFactor"
schema=
"ng3"
>
<attribute
column=
"ground_view_factor"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"ground_view_factor_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfHeatCapacity"
schema=
"ng3"
>
<attribute
column=
"heat_capacity"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"heat_capacity_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfInclination"
schema=
"ng3"
>
<attribute
column=
"inclination"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"inclination_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<attribute
maxOccurs=
"1"
column=
"is_adiabatic"
type=
"boolean"
path=
"bdgBdrySurfIsAdiabatic"
schema=
"ng3"
/>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfOpaqueSurfaceArea"
schema=
"ng3"
>
<attribute
column=
"opaque_surf_area"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"opaque_surf_area_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfOpeningToSurfaceRatio"
schema=
"ng3"
>
<attribute
column=
"open_to_surf_ration"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"open_to_surf_ration_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfSkyViewFactor"
schema=
"ng3"
>
<attribute
column=
"sky_view_factor"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"sky_view_factor_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfThickness"
schema=
"ng3"
>
<attribute
column=
"thickness"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"thickness_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgBdrySurfTotalSurfaceArea"
schema=
"ng3"
>
<attribute
column=
"total_surf_area"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"total_surf_area_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</propertyInjection>
<!-- (Building) ADE _Opening -->
<propertyInjection
table=
"ng3_opening"
defaultBase=
"AbstractOpeningType"
>
<join
table=
"ng3_opening"
fromColumn=
"id"
toColumn=
"id"
toRole=
"child"
/>
<complexAttribute
maxOccurs=
"1"
path=
"bdgOpnArea"
schema=
"ng3"
>
<attribute
column=
"area"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"area_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgOpnAzimuth"
schema=
"ng3"
>
<attribute
column=
"azimuth"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"azimuth_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgOpnGroundViewFactor"
schema=
"ng3"
>
<attribute
column=
"ground_view_factor"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"ground_view_factor_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgOpnInclination"
schema=
"ng3"
>
<attribute
column=
"inclination"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"inclination_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
<complexAttribute
maxOccurs=
"1"
path=
"bdgOpnSkyViewFactor"
schema=
"ng3"
>
<attribute
column=
"sky_view_factor"
type=
"double"
path=
"."
schema=
"ng3"
/>
<attribute
column=
"sky_view_factor_uom"
type=
"string"
path=
"@uom"
schema=
"gml"
/>
</complexAttribute>
</propertyInjection>
</propertyInjections>
</schemaMapping>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment