pub struct AgsiModelElement {Show 13 fields
pub agsi_data_parameter_value: Vec<AgsiDataParameterValue>,
pub agsi_data_property_from_file: Option<AgsiDataPropertyFromFile>,
pub agsi_data_property_summary: Vec<AgsiDataPropertySummary>,
pub agsi_data_property_value: Vec<AgsiDataPropertyValue>,
pub agsi_geometry: Option<AgsiModelElementAgsiGeometry>,
pub agsi_geometry_area_limit: Option<AgsiGeometryFromFile>,
pub colour_rgb: Option<String>,
pub description: Option<String>,
pub element_id: Option<String>,
pub element_name: Option<String>,
pub element_type: Option<String>,
pub geometry_object: Option<String>,
pub remarks: Option<String>,
}Expand description
A model is made up of elements. These elements are defined by agsiModelElement objects. Each element will have embedded geometry. Which class of object is referenced will depend on the form of geometry required. Elements may also have embedded data (properties and parameters).
JSON schema
{
"description": "A model is made up of elements. These elements are defined by agsiModelElement objects. Each element will have embedded geometry. Which class of object is referenced will depend on the form of geometry required. Elements may also have embedded data (properties and parameters).",
"type": "object",
"properties": {
"agsiDataParameterValue": {
"description": "Array of embedded agsiDataParameterValue objects providing parameter data specific to this model element.",
"type": "array",
"items": {
"$ref": "#/$defs/agsiDataParameterValue"
}
},
"agsiDataPropertyFromFile": {
"description": "An embedded agsiDataPropertyFromFile object, which may be used to reference to an external supporting data file.",
"type": "object",
"$ref": "#/$defs/agsiDataPropertyFromFile"
},
"agsiDataPropertySummary": {
"description": "Array of embedded agsiDataPropertySummary objects providing summaries of property data specific to this model element.",
"type": "array",
"items": {
"$ref": "#/$defs/agsiDataPropertySummary"
}
},
"agsiDataPropertyValue": {
"description": "Array of embedded agsiDataPropertyValue objects providing discrete property data specific to this model element.",
"type": "array",
"items": {
"$ref": "#/$defs/agsiDataPropertyValue"
}
},
"agsiGeometry": {
"description": "An embedded Geometry group object defining the geometry for this element. The object type referenced will depend on the type of geometry, which should be defined in geometryObject. Only one object per element allowed.",
"type": "object",
"anyOf": [
{
"$ref": "#/$defs/agsiGeometryVolFromSurfaces"
},
{
"$ref": "#/$defs/agsiGeometryFromFile"
},
{
"$ref": "#/$defs/agsiGeometryAreaFromLines"
},
{
"$ref": "#/$defs/agsiGeometryPlane"
},
{
"$ref": "#/$defs/agsiGeometryLayer"
}
]
},
"agsiGeometryAreaLimit": {
"description": "If required, an embedded agsiGeometryFromFile object defining the limiting plan area for the element may be defined by reference to a closed polygon object. The polygon acts as a 'cookie cutter' so the element boundary will be curtailed to stay within the polygon. Geometry beyond the boundary is ignored. This allows a large element to be easily divided up into parts, e.g. to allow different properties or parameters to be reported for each part. Use with caution as it may not be supported by all software/applications. Confirm usage in specification. Only one object per element allowed.",
"type": "object",
"$ref": "#/$defs/agsiGeometryFromFile"
},
"colourRGB": {
"description": "Preferred display colour (RGB hexadecimal)",
"type": "string",
"example": "#c0c0c0"
},
"description": {
"description": "More verbose description, as required. Usage may be determined by type of element, e.g. for a geological unit this could be used to describe typical lithology.",
"type": "string",
"example": "Stiff to very stiff slightly sandy blue/grey CLAY, with occasional claystone layers (typically <0.1m). Becoming very sandy towards base of unit."
},
"elementID": {
"description": "Identifier for the model element. May be local to this file or a UUID as required/specified. This is optional and is not referenced anywhere else in the schema, but it may be beneficial to include this to help with data control and integrity, and some software/applications may require it. If used, identifiers for elementID should be unique within the AGSi file. ",
"type": "string",
"example": "GC/W"
},
"elementName": {
"description": "Name or short description of what this element represents.",
"type": "string",
"example": "Gotham Clay, west zone"
},
"elementType": {
"description": "Type of element, i.e. what the element represents in general terms.",
"type": "string",
"example": "Geological unit"
},
"geometryObject": {
"description": "Object type (from Geometry group) embedded in agsiGeometry attribute.",
"type": "string",
"example": "agsiGeometryVolFromSurfaces"
},
"remarks": {
"description": "Additional remarks, if required.",
"type": "string",
"example": "Some additional remarks"
}
},
"additionalProperties": false
}Fields§
§agsi_data_parameter_value: Vec<AgsiDataParameterValue>Array of embedded agsiDataParameterValue objects providing parameter data specific to this model element.
agsi_data_property_from_file: Option<AgsiDataPropertyFromFile>An embedded agsiDataPropertyFromFile object, which may be used to reference to an external supporting data file.
agsi_data_property_summary: Vec<AgsiDataPropertySummary>Array of embedded agsiDataPropertySummary objects providing summaries of property data specific to this model element.
agsi_data_property_value: Vec<AgsiDataPropertyValue>Array of embedded agsiDataPropertyValue objects providing discrete property data specific to this model element.
agsi_geometry: Option<AgsiModelElementAgsiGeometry>An embedded Geometry group object defining the geometry for this element. The object type referenced will depend on the type of geometry, which should be defined in geometryObject. Only one object per element allowed.
agsi_geometry_area_limit: Option<AgsiGeometryFromFile>If required, an embedded agsiGeometryFromFile object defining the limiting plan area for the element may be defined by reference to a closed polygon object. The polygon acts as a ‘cookie cutter’ so the element boundary will be curtailed to stay within the polygon. Geometry beyond the boundary is ignored. This allows a large element to be easily divided up into parts, e.g. to allow different properties or parameters to be reported for each part. Use with caution as it may not be supported by all software/applications. Confirm usage in specification. Only one object per element allowed.
colour_rgb: Option<String>Preferred display colour (RGB hexadecimal)
description: Option<String>More verbose description, as required. Usage may be determined by type of element, e.g. for a geological unit this could be used to describe typical lithology.
element_id: Option<String>Identifier for the model element. May be local to this file or a UUID as required/specified. This is optional and is not referenced anywhere else in the schema, but it may be beneficial to include this to help with data control and integrity, and some software/applications may require it. If used, identifiers for elementID should be unique within the AGSi file.
element_name: Option<String>Name or short description of what this element represents.
element_type: Option<String>Type of element, i.e. what the element represents in general terms.
geometry_object: Option<String>Object type (from Geometry group) embedded in agsiGeometry attribute.
remarks: Option<String>Additional remarks, if required.
Implementations§
Source§impl AgsiModelElement
impl AgsiModelElement
pub fn builder() -> AgsiModelElement
Trait Implementations§
Source§impl Clone for AgsiModelElement
impl Clone for AgsiModelElement
Source§fn clone(&self) -> AgsiModelElement
fn clone(&self) -> AgsiModelElement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more