diff --git a/nusamai-plateau/src/models/iur/uro/common.rs b/nusamai-plateau/src/models/iur/uro/common.rs index bb53eb4b..843947ae 100644 --- a/nusamai-plateau/src/models/iur/uro/common.rs +++ b/nusamai-plateau/src/models/iur/uro/common.rs @@ -77,6 +77,26 @@ pub struct DataQualityAttribute { #[citygml(path = b"uro:publicSurveyDataQualityAttribute/uro:PublicSurveyDataQualityAttribute")] pub public_survey_data_quality_attribute: Option, + #[citygml(path = b"uro:BuildingDataQualityAttribute")] + pub building_data_quality_attribute: Option, +} + +#[citygml_data(name = "uro:BuildingDataQualityAttribute")] +pub struct BuildingDataQualityAttribute { + #[citygml(path = b"uro:srcScale")] + pub src_scale: Vec, + + #[citygml(path = b"uro:geometrySrcDesc")] + pub geometry_src_desc: Vec, + + #[citygml(path = b"uro:appearanceSrcDesc")] + pub appearance_src_desc: Vec, + + #[citygml(path = b"uro:lod1HeightType")] + pub lod1_height_type: Vec, + + #[citygml(path = b"uro:lodType")] + pub lod_type: Vec, } #[citygml_data(name = "uro:PublicSurveyDataQualityAttribute")] diff --git a/nusamai-plateau/src/models/iur/uro/dem.rs b/nusamai-plateau/src/models/iur/uro/dem.rs new file mode 100644 index 00000000..6e414479 --- /dev/null +++ b/nusamai-plateau/src/models/iur/uro/dem.rs @@ -0,0 +1,9 @@ +use nusamai_citygml::{citygml_feature, CityGmlElement}; + +use super::common::DataQualityAttribute; + +#[citygml_feature(name = "uro:demDataQualityAttribute")] +pub struct DemDataQualityAttribute { + #[citygml(path = b"uro:DataQualityAttribute", required)] + pub data_quality_attribute: Option, +} diff --git a/nusamai-plateau/src/models/iur/uro/mod.rs b/nusamai-plateau/src/models/iur/uro/mod.rs index e78e1ee4..2fe5bc6d 100644 --- a/nusamai-plateau/src/models/iur/uro/mod.rs +++ b/nusamai-plateau/src/models/iur/uro/mod.rs @@ -4,6 +4,7 @@ mod bridge; mod building; mod city_furniture; mod common; +mod dem; mod disaster_risk; mod dm; mod facility; @@ -24,6 +25,7 @@ pub use bridge::*; pub use building::*; pub use city_furniture::*; pub use common::*; +pub use dem::*; pub use disaster_risk::*; pub use dm::*; pub use facility::*; diff --git a/nusamai-plateau/src/models/iur/uro/underground_building.rs b/nusamai-plateau/src/models/iur/uro/underground_building.rs index dafdb8c0..6ea83504 100644 --- a/nusamai-plateau/src/models/iur/uro/underground_building.rs +++ b/nusamai-plateau/src/models/iur/uro/underground_building.rs @@ -60,6 +60,9 @@ pub struct UndergroundBuilding { #[citygml(path = b"uro:bldgDataQualityAttribute/uro:DataQualityAttribute")] pub bldg_data_quality_attribute: Option, + #[citygml(path = b"uro:buildingDataQualityAttribute")] + pub building_data_quality_attribute: Option, + #[citygml(path = b"uro:buildingDisasterRiskAttribute")] #[citygml(path = b"uro:bldgDisasterRiskAttribute")] pub bldg_disaster_risk_attribute: Vec, // -> uro:DisasterRiskAttribute diff --git a/nusamai-plateau/src/models/relief.rs b/nusamai-plateau/src/models/relief.rs index 6ecd67f7..c414bff6 100644 --- a/nusamai-plateau/src/models/relief.rs +++ b/nusamai-plateau/src/models/relief.rs @@ -11,6 +11,9 @@ pub struct ReliefFeature { #[citygml(path = b"dem:reliefComponent", required)] pub relief_component: Vec, // -> dem:_ReliefComponent + + #[citygml(path = b"uro:demDataQualityAttribute", required)] + pub dem_data_quality_attribute: Option, } #[citygml_property(name = "dem:_ReliefComponentProperty")]