Tool with similar IFC processing capabilties as BIMServer - ifc

I used BIMServer to create datamodels out of IFC elements.
Due to issues with it I need to switch the tool I process the IFC file with.
The big pro on BIMServer was that I did not need to know how the geometry is created and did not need to generate it myself. I was provided with vertices, indices and normals. The API provided me a way to recursively transform the vertices so that I get the absolute coordinate.
I am looking for a tool that has the same capabilities.
What are the alternatives?

BIMServer uses IFCOpenShell to generate the geometry - you could use that directly.
Other open source projects that can generate tesselated geometry from IFC are xBim and IfcPlusPlus.

Related

How to save the vertex and edge information of the octree in PCL?

Here's what I'm doing: I'm trying to save vertex and edge information for all cube nodes in an octree generated in PCL. I am trying to use this information to build a graph to support my later queries. I believe this is a very unique requirement, so it may not be well supported by the PCL, I wonder if there is any way to achieve this? Or are there other tools for this purpose? Thanks for any answers!

Is it possible to get AEC model data fofr a IFC4 file with Forge model derivative APIs?

I am trying to read simple AEC data such as Level and components etc,
I came across .rvt files supports extraction AEC data as explained here :https://forge.autodesk.com/blog/consume-aec-data-which-are-model-derivative-api,
I am trying to achieve similar results with IFC files any idea if its possible,
Or if there is another better way to do it?
No, the Forge translation does not generate AEC data when translating an IFC file.
There is a reason for this: Forge IFC translation goes via NavisWorks, not Revit.
Just like Forge itself, NavisWorks is a generic model vieer, and not AEC specific.
Therefore, AEC specific data is not generated or extracted from the models it processes.
One option to handle your requirement would be to use Forge Design Automation to launch Revit, import the IFC file, and then generate the required AEC specific information there.

How to convert mbtiles to .osm.pbf

I'm writing a Qt application that is supposed to show a geo-map of a specific geographical region in one of its views on top of which I need to be able to draw various other graphical elements.
The requirements are that all the map-tiles must be pre-downloaded for off-line use as during the use of the application there will be no internet connection.
After lengthy search for a suitable library that I could link into my Qt project that would support my needs (off-line tile loading, rendering and painting the map in Qt framework, non-QML only C++ integration) I thought libOsmScout would do the job.
However, I have managed to download .mbtiles files for my region from OpenMapTiles just to realise that libOsmScout cannot natively work with .mbtiles.
The library can only work (indirectly after "import") with .osm.pbf files.
(http://libosmscout.sourceforge.net/tutorials/importing/)
I've searched extensively the web but all the results were pointing to conversion procedures in the opposite direction, i.e. into the .mbtiles.
So my question is: is it possible to convert .mbtiles files to .osm.pbf format so I can then import it into libOsmScout compatible internal set of files?
If it is possible, what the process?
Any help or guidance would be much appreciated.
Thanks.
Easiest way is to use ogr2ogr to convert to pbf format.
ogr2ogr -f MVT output_dir_name input.mbtiles -dsco MAXZOOM=2
This will create a directory structure with each zoom level having a directory and pbf file named according to the tile position.
Or
using this tool called MBUtil.
There are some steps which you can follow from the github repo.
After that, you can then use the following command to convert to directory structure with each tile in pbf format.
mb-util input.mbtiles output_dir_name image_format=pbf
where tiles is the directory name you want

A* search in neo4j

I want to search for shortest path in the directed acyclic graph with neo4j. I have graph that looks similar to this:
I want to find path starting from Root down to Layer 3. At each layer I have different set of properties and I can calculate weight using this properties and user input. I need to find all shortest paths with minimal dynamic weight using A* or another search algorithm (it is possible to have several paths with equal weights). Is it possible with neo4j and cypher or gremlin?
I don't want to use embedded version because my project is written in python, so I can't use java library that as I know can do this.
As of now, Cypher does not allow you to pass in function e.g. your cost function. Adding this as feature must be decided very carefully as injecting runnable code by a query language has some security concerns.
That said what you can do now: create a unmanaged extension to the Neo4j server. Inside your unmanaged extension you make use of the the provided graph algorithms. Using JAX-RS parameter you provide data to identify the start and end node of your traversal and let graph algos do the dirty work.
You might want to take a look at https://github.com/sarmbruster/unmanaged-extension-archetype, this is a minimalistic sample project using gradle as a build system.
However, the sketched idea involved Java coding for the server side part. Client side you can use whatever stack you like.

Displaying vector files in QT using GDAL/OGR

I am writing an application to load vector maps/shape files using gdal/ogr and display them onto a gui designed using Qt. I am new to dealing with vector files, I am not able to decide how to render them on GUI. Few approaches that come to my mind are:
- To convert vector files to raster and display them as raster..
- To draw each shape in vector file one by one (i dont know how to do this, I dont even know whether it would be even possible this using GDAL/OGR, or how complex this would be because in my case vector files can be very complex)
The decision how to render vector files is very important for me, because after displaying vector files i need to support some advanced features like projection change, interactive selection, Geo-referencing etc.
Can any one who has worked on vector/gis stuff, tell me how this is usually done and what Qt widget is used for displaying such data.
Displaying vectors is a tricky task since it requires rendering of geometries.
I would consider Quantum GIS (QGIS). It's actually also based on QT but comes with a sophisticated rendering engine. A custom QGIS application can even be run standalone.
I solved the problem of drawing vector files by writing rendering functions for each type of shape files. Qt's QPainter was really handy for drawing shapes like Polygon, Multipolygon, Line, Multiline and then displaying the output as QImage.

Resources