- validation of topological relationships between features, eg ensuring that buildings in a city do not overlap
- CGAL 6.0 can be used (small changes to the
CMakeLists.txt
) - fix a buggy report for complex geom types
- improves the description of the validation report in the docs
2.5.0 - 2024-07-17
- val3dity now accepts a stream of CityJSONSeq as input from stdin:
cat myfile.jsonl | val3dity stdin
and it validates each line and outputs the result to stdout - a new error was added: error 905--INVALID_JSON for handling wrong JSON lines in a CityJSONSeq stream
- the validation report in JSON has been greatly simplified. Now the errors are a flat list of errors and the "id" gives the position of the error in the feature.
- the library/API has a new way to accept parameters for the validation (named parameters), it's more flexible and simpler to use. If you used v2.4 with defaults then nothing needs to be changed, if you passed them then a small change is required.
- the library/API now accepts arrays of points/faces (including with inner-rings) as input
- the library/API does not cout or clog anything anymore, so you can manage your own log without val3dity polluting it
- the val3dity binary doesn't output to clog anymore, instead the logger "spdlog" is used (when
--verbose
is activated) and a few logs are output - the CMake should now compile directly on macOS/Linux/Windows if GEOS is installed on your machine
2.4.0 - 2023-06-27
- support for CityJSON Lines (CityJSONL) files, the 1st line of the file must be with the
"transform"
, best is to use cjio output - support for 3D types of JSON-FG, only the
Polyhedron
andMultiPolyhedron
(not forPrism
andMultiPrism
) (JSON-FG is still beta, so I guess this might have to change) - added a simple Python-based viewer to visualise the errors, see
/tools/viz3dity/
for more details - API now supports OBJ and OFF; all formats supported by val3dity actually
- the API is new and simpler, only 2 functions are now used:
is_valid()
+validate()
- error 609 has been renamed 906 (no geometry is for more formats than only CityJSON)
- simplified the code for CDT of each surface (faster too)
- upgraded to latest version of pugixml, to parse XML files
2.3.1 - 2022-09-15
- the structure of the report was fixed (it is more flat, as it should have always been), it made little sense for Composite/Multi/Solid
- geometry IDs in the report are 0-based (as they should, a bug made them start at 1, now fixed)
- compilation under Windows to get a binary is now automised with GitHub Actions
2.3.0 - 2022-03-29
- val3dity can now be compiled as a library and easily used in other C++ binary (it's GPLv3 license, watch out)
- this allows val3dity to be used with Python now, see https://github.com/tudelft3d/val3ditypy/
- unit test for IndoorGML files
- support for the simple format tu3djson (https://github.com/tudelft3d/tu3djson)
- fixed a few bugs for the parsing of IndoorGML files
- LoDs of Buildings are now taken into account when validating the topological relationships between BuildingParts: the tests are now per LoD now (so no "clash" between LoD1.3 and LoD2.2 if stored in the same file)
- removed the support for CityGML files and 'vanilla' GML files. Only IndoorGML files can be read, and support for GML 3.3 is not fully there yet. Most errors/issues that are reported with val3dity have to do with a faulty parser of CityGML, and not with val3dity itself. I cannot justify spending 100s of hours fixing the parser, I tried hard but this not possible anymore. If someone wants to do it then great I am willing to help them, but I will not invest time on this anymore. Just upgrade your files to CityJSON (https://www.cityjson.org/tutorials/conversion/), I'll always maintain a full CityJSON parser!
2.2.0 - 2020-05-14
- support for IndoorGML datasets, not just the geometries but specific validation tests for the primal-dual consistency were added
- support for GeometryTemplates in CityJSON (https://www.cityjson.org/specs/#geometry-templates)
- completely revamped the JSON error report, it's better and clearer
- no more HTML output for the report (output of report is now with option
--report
, be careful), but you can just drag your JSON report to the HTML page (in folder/report_browser/index.html
) or at http://geovalidation.bk.tudelft.nl/val3dity/browser/ - improved the error codes a bit: new errors for IndoorGML (7xx) + for handy faulty inputs (error 904)
- code must now be compiled against CGAL5, easier to install and compile for everyone
- CityGML support is deprecated. This is the last version that will support CityGML, I will remove it completely from v2.3+. Most errors/issues reported have to do with a faulty parser of CityGML, and not with val3dity itself. I cannot justify spending 100s of hours fixing the parser, I tried hard but this not possible anymore. If someone wants to do it then great I am willing to help them, but I will not invest time on this anymore. Just upgrade your files to CityJSON (https://www.cityjson.org/help/users/conversion/), I'll always maintain a full CityJSON parser!
2.1.1 - 2019-04-30
- several small bug fixes: wrong handling of some GML namespaces is one of them
- tol_snap can't be disabled anymore: just too error-prone and means nothing. Give a super small value instead, like 1e-12
2.1.0 - 2018-02-14
- the report is slightly changed: the CityObjects/Primitives subdivision in the report is replaced by Features having Primitives, where Features are the top-level objects, containing one or many Primitives. This is done to allow other data model to be used as input, eg IndoorGML is coming soon!
- pytest allows to specify the binary to use if not under 'build/'
2.0.4 - 2018-01-26
- fixed bug where inner rings of gml:Polygon wasn't read properly when that polygon is referenced by an XLink.
2.0.3 - 2018-01-23
- each surface are now triangulated with a constrained Delaunay triangulation (CDT) instead of a non-Delaunay one. That improves stability, especially when there are nearly collinear vertices in a surfaces: slivers are avoided, which means less errors 204, and less wrong errors caused by numerical stability.
2.0.2 - 2018-01-13
- fixes issue with wrong errors 104 often raised. Explanation is there: CGAL/cgal#2733. This releases fixes it with a hack, but I think this is solid (touch wood).
2.0.1 - 2017-12-12
- fixed bug with least-square fitting that caused wrong 203 errors
- completely new reports: in JSON and HTML (browsable version)
- complete unit test suite (with pytest)
- support for all 3D primitives in ISO19107
- support for new formats: CityJSON, OFF
- CompositeSolid, MultiSolid
- CityObjects in the report
- support for CityJSON