Git Product home page Git Product logo

extension-test-ade's Introduction

TestADE extension

The TestADE is an artificial CityGML Application Domain Extension (ADE) for testing and demonstrating the ADE support of the 3D City Database that has been introduced with version 4.0. It has been designed to cover the most relevant UML modelling elements and techniques that occur in real-world CityGML ADEs such as subtyping or property injection.

This repository provides a reference implementation of an ADE extension that is required by the Importer/Exporter tool to handle TestADE datasets and manage them in the database. The reference implementation shows developers how to implement the ADE-specific APIs of citygml4j (see test-ade-citygml4j module) and of the Importer/Exporter (see test-ade-citydb module). Since the TestADE reflects commonly used ADE modelling elements, the provided code may serve as template for implementing extensions for other ADEs.

General steps for supporting an ADE with the 3DCityDB

Adding support for a CityGML ADE to the 3DCityDB generally involves three steps:

  1. Mapping the XML Schema definition of the ADE to a relational schema that integrates with the 3DCityDB core schema (for instance, by reusing SURFACE_GEOMETRY to store surface-based spatial properties of features).
  2. Creating an XML-based schema mapping file that captures the mapping between elements of the XML schema and elements of the relational schema (see the schema mapping between the CityGML XML schemas and the 3DCityDB core schema).
  3. Registering the ADE with the metadata tables of the 3DCityDB.

With the ADE Manager Plugin we provide a tool that fully automates these steps. It reads the XML schema and applies a rule-based transformation to derive a relational schema for the ADE that seamlessly integrates with the 3DCityDB. Users can redefine default rules or even add new rules, and thus have full control over the mapping result. You can easily test the mapping and registration with the XML Schema of the TestADE.

Once your ADE is registered with the 3DCityDB, you can import or export data from the new ADE tables with a tool of your choice. If you prefer using the Importer/Exporter for this purpose, you have to implement an ADE extension against its ADE API because it does not provide generic ADE support yet. This involves the following two steps:

  1. Creating an ADE module for citygml4j, which is used by the Importer/Exporter for parsing and writing CityGML data.
  2. Implementing the ADEExtension interface of the ADE API and providing code for reading and writing data into the ADE tables.

These steps are not automated yet and thus require coding. Check this repository for a reference implementation of the TestADE. ADE extensions have to be copied into the ade-extensions folder within the installation directory of the Importer/Exporter to be automatically loaded at program startup.

UML data model

extension-test-ade's People

Contributors

clausnagel avatar yaozhihang avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extension-test-ade's Issues

CityGML ADEs are registered in the database but are not supported

I following 3dcitydb ADE Manager from importer/exporter v.4.2.0. but when I register my ADE there is a warning like this:

The following CityGML ADEs are registered in the database but are not supported:
RBI3DADE 1.0

I think the problem is in the jar file in the lib folder. when I use the compiled jar of your ADE extension namely test-ade-citydb-1.2.0.jar and test-ade-citygml4j-1.2.0.jar, it doesn't work. but when I use the jar downloaded from websites 3dcitydb.org, then ADE works. How can I use the jar that I build or compile by myself?

Only high level nodes are shown/imported

Hey,

I don't know if this might be a wanted feature, but when I import an ADE only the highest level Nodes are shown in the Feature Type List. Why are the child nodes not there if I e.g. just want to select a subgroup of an Feature and not the full one?

Maybe this should be an Issue for the Importer/Exporter and not the ADE Extension. If so please let me know so I can move it.

Thanks

Only Last Node of the first Level of ADE is imported/shown in List

Hey,

image
As seen in the picture, when importing the EnergyADE 1.0 from KIT, only the Weatherstation is available after the import, while there should be more Nodes to see.

Maybe this should be an Issue for the Importer/Exporter and not the ADE Extension. If so please let me know so I can move it.

Thanks

Comments on the Test ADE draft for CityGML 3.0

Hi Zhihang,
I checked your draft and have a few comments:

Code lists:

  • In the CityGML 3.0 Conceptual Model, names of code lists for the attributes class, function, and usage always contain the full name of the class to which the attributes belong.
    Otherwise problems will occur when the UML model contains several classes that have the same attributes.
    This should also be a best practice for ADEs.
    Thus, I suggest to rename ClassValue, FunctionValue, and UsageValue into BuildingUndergroundClassValue, BuildingUndergroundFunctionValue, and BuildingUndergroundUsageValue.

Classes DHWFacilities and LightingFacilities:

  • The attribute totalValue is not required, it is already inherited from the class Facilities.

Classes Facilities, DHWFacilities, LightingFacilities:

  • Usually class names of feature types are in singular, not plural. Thus I suggest to rename these classes into Facility, DHWFAcility, and LightingFacility.

Data type EnergyPerformanceCertification:

  • The attribute names certificationname and certificationid should be changed to certificationName and certificationId or certificationID.

Class AbstractBuildingUnderground:

  • The class should also inherit from one of the Space classes in the CityGML 3.0 Core module. Probably from AbstractOccupiedSpace.
  • There is a typo in the association name adress. This should be address.
  • The association to BuildingProperties is missing an arrow, so the direction of the association is not clear.

Colours:

  • The colouring should be explained. Also I suggest that the meaning the colours already in use in the CityGML conceptual model should not be changed. Thus, the classes coming from the CityGML modules should be in blue.

TestADE extension do not export geometry

Hello,
I am following the ADE Manager Plugin Documentation to extend my 3dcitydb. I was successful in the registration and transformation of the testADEas per image below

inspecting the DB with pgAdmin confirm also that the operation was successful:

I was also able to extend the Import/Export Tool and import the 2 sample datsets

However, when I export the sample dataset and inspect it with both FME data inspector and FZKViewer I don't see any geometry or content

in FME I get the following warning:

Parsing XML document 'C:\Users\MatteoMandrile\Desktop\ade test.gml'
- registered 1 messages of type: XML element 'test:IndustrialBuilding' and its content might be skipped - 'http://www.citygml.org/ade/TestADE/1.0' namespace is not recognized in XML doc 'C:\Users\MatteoMandrile\Desktop\ade test.gml'
- registered 580 messages of type: XML element 'test:OtherConstruction' and its content might be skipped - 'http://www.citygml.org/ade/TestADE/1.0' namespace is not recognized in XML doc 'C:\Users\MatteoMandrile\Desktop\ade test.gml'

Can you help me with this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.