IFCTerrain Code Structure - dd-bim/City2BIM GitHub Wiki
To be able to start programming. It is important to be able to localize the individual components. A brief overview is given below.
In the following some main information about the included projects in connection with IfcTerrain.
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
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.
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.
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
).