Skip to content

IFCTerrain Code Structure

Marcus Schroeder edited this page Sep 28, 2021 · 6 revisions

To be able to start programming. It is important to be able to localize the individual components. A brief overview is given below.

Structure

In the following some main information about the included projects in connection with IfcTerrain.

BIMGISInteropLibs

This folder contains everything that is necessary for the is necessary. The terrain readers (ReaderTerrain.cs) are located in the appropriate folders according to the folders depending on the file format.

Here the following folders are still particularly important:

  • IfcTerrain (for control/ configuration of IfcTerrain)
  • RvtTerrain (contains the interface between GUI and Reader/Writer for the use of DTM2BIM in the City2BIM plugin)
  • Triangulator includes Class to calculate a (constrained) Delaunay Triangulation
  • EPSG Classes for querying the EPSG.io REST API (only used in IfcTerrain GUI!)
  • Geometry/terrain.cs includes support functions for DTM processing

IFCTerrainCommand

Small console application for reading the settings via a * .json file. The program code is stored in Program.cs. After file reading the function mapProcess(...) is started. Which will go on to the BIMGISInteropLibs/IfcTerrain/ConnectionInterface.cs. As soon as this process has been ended the this (Programm.cs) will be called and "finish" the programm.

IFCTerrainGUI

Here is the Windows - application as XAML (Extensible Application Markup Language). To set up a Graphical User Interface. This includes, in addition to the XAML file always a "code behind", which are are programmed by C#. Thus, a separation between "GUI" and "logic" takes place. The GUI is divided into "smaller" parts, so-called "user controllers". This is for reusability & for better overview. More about this can be read here can be found: User Controler.

GuiHandler

This project serves as "storage location" for different user controllers and auxiliary (gui) functions. The user controllers stored here can be reused in other projects. projects. Nearly all user controler in the folder userControler are used in the project IfcTerrainGUI (MainWindow.xaml) and City2RVT (GUI/DTM2BIM/Terrain_ImportUI.xaml).

Clone this wiki locally