Google Summer of Code/2020/BIM Import
This page is about the GSoC project IndoorHelper Plugin: BIM import. Here you can find all information about the current state as well as the project plan and the source code link. Please notice that the page will be updated during the project time.
Contact
Rebecca Schmidt
Mail: rebeccasmdt@gmail.com
More links:
Summary
BIM (Building Information Modeling) data is a well known concept of handling even complex building data. Within this project an already existing JOSM plugin named IndoorHelper will be extended by a function to import BIM data. The imported data will fit into the SIT- schema what means the focus will be on indoor data.
The image above shows an idea of importing BIM data. Data will be rendered on a separat layer and levels can be accessed by AutoFilters Action.
Development Steps
This is an overview of the basic work steps which needs to be done to reach a working BIM import feature.
Milestones
These are the tasks which will be done until the evaluation dates.
First Evaluation (June 29 - July 3):
- IFC (Industry Foundation Classes) structure objects will be parsed into java objects with using STEP (Standard for the Exchange of Product Model Data) parser. This process will be tested on at least three different .ifc files with different content.
- An IFC -SIT object translation schema will be presented on wiki to get a consistent way to handle IFC objects in OSM. The schema will define which IFC tag belongs to which SIT tag.
Second Evaluation (July 27 - 31):
- Internal data structure holding IFC data will be converted to OSM objects (using defined translation schema)
- The data will be saved in an .osm file and displayed as separat layer in JOSM
Final Evaluation (August 24 - 31):
- The completed feature will be integrated in JOSM and accessible for the user
Tasks Timeline
This timeline shows all planned and completed steps needed to reach the milestones (for more specific information about java classes see source code architecture below).
Task state:
done ,
open
Period of time | Tasks |
---|---|
June 01 - 07 |
|
June 08 - 14 |
|
June 15 - 21 |
|
June 22 - 28 |
|
June 29 - July 03 | First Evaluation |
June 29 - July 12 |
|
July 13 - 19 |
|
July 20 - 26 |
|
July 27 - 31 | Second Evaluation |
July 27 - August 09 |
|
August 10 - 16 |
|
August 17 - 23 |
|
August 24 - 31 | Final Evaluation |
Feature Specification
User Interface
A new menu entry will give you access to the import function.
Source Code Architecture
The following diagram will give an idea of what is planned to implement the feature. This diagram might be modified while coding.
Feature Notes
- Supported IFC schema
- BuildingSMARTLibrary only supports
IFC2X3
andIFC4
- BuildingSMARTLibrary only supports
- Parsing the data will be done in two steps:
- Use BuildingSMARTLibrary to parse IFC objects like
IFCWALL
,IFCDOOR
etc. in data structure including ids to associated IFC objects/items
Example:#1644= IFCWALL('asdas3432453terf',#16,'Wand',$,$,#1684,#1458,'61-2423e');
-->[GlobalId: 'asdas3432453terf', OwnerHistory: #16, Name: 'Wand', Description: $, IsDefinedBy: $, ObjectPlacement: #1684, Representation: #1458, Tag: '61-2423e']
- The array elements can be accessed by identifier string - The parsed IFC objects are associated with other IFC objects/items. At this step the IFC object attributes
ObjectPlacement
andRepresentation
will be used to find information about origin and shape of the object. For this the IFC structure needs to be scanned to the root element to get information of relative objects
Feature Issues
More Feature Ideas
Final GSoC Project Report
Within this project an already existing JOSM plugin named IndoorHelper got extended by a function to import and translate BIM (Building Information Modeling) data. The imported data fits into the SIT schema.
What is done
- Import functionality
- User can import BIM files using the JOSM plugin IndoorHelper navigate to the menu entry File->Import BIM File (see IndoorHelper/BIM-Import)
- Background tasks:
- The BIM data will be filtered to handle OSM relevant data only
- The BIM data will be translated to OSM data using the SIT schema
- Metric coordinates of the new OSM data will be translated into WGS84 (Caution: This still needs to be tested!)
- OSM data of the building will be rotated in WCS (Caution: This still needs to be tested!)
- Specification/Limitation
- The import functionality supports
.ifc
files of file schemaIFC2X3
andIFC4
- The import functionality uses the third-party library BuildingSMARTLibrary
- The plugin writes the logging output into a logfile located at
C:\tmp\.josm\logfile_indoorhelper.log
. This file can be used for further development - The developed state of import functionality is a beta version. There are still some issues open and things to do!
- The import functionality supports
- UI
- Accessible via menu entry (see IndoorHelper/BIM-Import)
- The import functionality shows a progress bar while loading
.ifc
files (necessary for large files, the import can take a while) - The import functionality shows info boxes if something went wrong or something is not supported
- Code location
- All changes are merged and accessible for the user using JOSM Editor
- The commits are located on branch
master
at github.com/JOSM/indoorhelper
- Additional
- Gradle added to the project
- Migrated from SVN to GitHub
What needs to be done
Open tasks and project can be found on GitHub Issue Board and GitHub Project Board
- BIM import functionality
- Fix Building placement in WCS card-43740210
- Fix BIM object placement card-43738679
- Fix
BIMtoOSMParserTest
card-43737495
- Code
- Optimize
.ifc
files before loading card-43747960 (Idea) - Outsource the parser code card-43739474 (Idea)
- Optimize
Weblinks
Source code: github.com/JOSM/indoorhelper
GSoC project page: IndoorHelper Plugin: BIM import
IndoorHelper wiki: Plugins/indoorhelper
BIM specification: Wiki: Building Information Modeling