Page 1
Sanghee Shin(shshin@gaia3d.com)
Hakjoon Kim(hjkim@gaia3d.com)
JeongDae Cheon(jdcheon@gaia3d.com)
WorkShop
Let’s Integrate BIM/AEC and 3D GIS
on Your Web Browser!
Page 2
1. Architecture
mago3D.JS
Cesium/WWW
Client
internet
Web Server WAS
F4DStorage
mago
Content
Management
DataBase
F4D Converter
mago3D Core
Page 3
 Convert ifc files(BIM standard interchange format) or .3ds / .obj / .dae files to F4D
(traditional three-dimensional format) mago3D service-only format.
 Perform pre-processing to lighten weight and improve rendering performance in
conversion process
2. Core Component - F4D Converter
F4D Converter
F4D
.3ds
.obj
.dae
.ifc
Page 4
2. Core Component - mago3D JS
 A Javascript-based plug-in that extends the 3D GIS engine to handle AEC data
4
mago3D.js
3D GIS Engines
Cesium.js
WorldWindWeb.js
API
API
service html
Page 5
2. Core Component - Content Management System
 Java Spring-based collaboration system for users, role management, data management,
issue management, etc.
User
User
User
User
User Site
(issue
Register)
Admin Site
(User, Role,
Data,Issue,
Reporter, etc)
Separation of Network Network
Cache Refresh HTTPS
admin
Page 6
3. Product
F4D
Converter
mago3DJS
Content
Managemt
System
 Used as a 3D rendering solution, specially in case that you want to insert 3D rendering part
into any business systems already existing.
 F4D Converter + mago3DJS, F4D Converter + Content Management System(Full Package)
 A platform for handling large-sized 3D contents, which offers functionality about data
managements.
 F4D Converter + Property Extractor(IFC) + Content Management System + Technical Support
3D Data Converter Browser 3D Rendering Data DB Manager
Page 7
4. WorkShop
 Install and run mago3D Community Edition (F4D Converter + mago3DJS) and learn how
to use mago3D as a 3D rendering solution in interworking with your existing business
system or in a new project.
 It provides a brief overview of the key features of the mago3D Enterprise Edition (F4D
Converter + Property Extractor (IFC) + Content Management System): data management,
issue management, and role management.
 OS : Window7 or later (64bit)
 JRE: 1.8 or higher
 Disk space: At least 2G
 RAM : 8G or more (16G recommended)
 3D Sample File(IFC, 3DS, Collada, Obj, JT Etc)
 Internet connection
Page 8
5. Community Edition – Getting Start
mago3D JS
Cesium/WWW
Client
internet
Business
System
Web Server Customer
F4DStorage
F4D Converter
REST API
Json
(policy, data,
etc)
Page 9
5. Community Edition – Getting Start
 Using Community Edition(F4DConverter + mago3dDJS), we will deploy mago3DJS
and publish 3D Data which are converted from sample IFC files through
F4DConverter. Then, we can check published 3D data on our web browsers.
1) Editor or IDE Install
2) mago3D JS Source Download
3) Web Server Install
4) F4D Converter Install(.msi)
5) Data Conversion
6) Configuration Modification
7) mago3D JS build
8) Getting Start
9) API Example
Page 10
 If you already have an editor in use, you can skip this step.
 For mago3D development team, use Eclipse
 http://www.eclipse.org/downloads/eclipse-packages/
 Eclipse IDE for Java EE Developers
 Java installation required (java8 version recommended)
 If you do not have an editor, you can download the free open source editor
Notepad ++ from the following site:
 https://notepad-plus-plus.org/download/v7.5.1.html
5. Community Edition – Getting Start
Page 11
 Connect to https://github.com/Gaia3D/mago3djs, click on the Clone or download
button
 Select ‘Download ZIP’ and save zip file in ‘C:’
 In case of using git : git clone https://github.com/Gaia3D/mago3djs.git
 Branch: develop
 Unzip and check the result
 C:mago3djs
5. Community Edition – Getting Start
Page 12
5. Community Edition – Getting Start
 Right-click on the Eclipse screen
 Import -> General -> Projects from Folder Archive Select
Page 13
 mago3D Community Edition requires a web server to run locally.
 We use Node.js for the exercises.
 Skip this process if you already have a web server in use.
 Any web server capable of serving static content can be used
 Connect to https://nodejs.org/en/download/ Window Installer (.msi) 64-bit
Download.
5. Community Edition – Getting Start
Page 14
 Install path : C:nodejs
c:nodejs
5. Community Edition – Getting Start
Page 15
 Run command prompt (cmd.exe) with administrative privileges
 Go to C:  mago3djs directory
 Run node install to download the required modules
C:mago3djs>npm install
C:mago3djs>npm install -g gulp
 The node_modules directory is created in the root directory
5. Community Edition – Getting Start
Page 16
 http://www.mago3d.com/homepage/download.do
 Installer : F4D Converter 64bit (this installation requires Windows 7 or later)
 Install
5. Community Edition – Getting Start
Page 17
 Install Path : C:F4DConverter
5. Community Edition – Getting Start
Page 18
5. Community Edition – Getting Start
Page 19
 If you have 3D data, use it
If not Please download demo data from the following URL.
https://github.com/Gaia3D/mago3djs/files/2029661/demo_f4d.zip
 There are two files when decompressed.
5. Community Edition – Getting Start
Page 20
 Create outputFolder, where converted result will be saved
C:f4dworkshop(Create a directory for each project under the root folder f4d)
 put sample ifc files into inputFolder(D:demo_f4d)
 Run Command Line Prompt(cmd.exe) in Administrator mode
 Change current directory to the directory where F4DConverter is installed
 Create outputFolder, where converted result will be saved
* all arguments : refer https://github.com/Gaia3D/F4DConverter
-inputFolder [rawDataFolder] : an absolute path of the folder where raw data files to be converted are.
-outputFolder [F4DFolder] : an absolute path of the folder where conversion results(F4D datasets) are created.
-log [logFileFullPath] : an absolute path of a log file which is created after finishing conversion processes.
-indexing [one of Y, y, N, n] : wheter objectIndexFile.ihe should be created or not. "NOT created" is default.
5. Community Edition – Getting Start
Page 21
 Run following
5. Community Edition – Getting Start
Do Not Close
Page 22
※ If component missing errors (MFC140U.dll, MSVCP140.dll, VCRUNTIME140.dll,
MSVCP100.dll) occrur when you start F4DConverter.exe, install following two packages.
 visual studio 2015 visual C++ redistributable package
https://www.microsoft.com/en-us/download/confirmation.aspx?id=48145
 visual studio 2010 visual C++ redistributable package
https://www.microsoft.com/en-us/download/details.aspx?id=14632
5. Community Edition – Getting Start
Page 23
 Can see Processes running in Task Manager
 Ends when execution finishes
5. Community Edition – Getting Start
Page 24
 If the data conversion succeeded
 Confirm creation of F4D_XXX folders and ObjectIndexFile.ihe file in
C:f4dworkshop folder
 If it fails, check the log file (logTest.txt) from D:demo_f4d (inputFolder).
 Create a symbolic link for the F4D data folder to make the folder be used as a
data folder of web service in mago3DJS project.
 Using cmd.exe in administrator mode, change current directory to
C:mago3djs
 C:mago3djs>mklink /d "C:mago3djsf4d" "C:f4d"
 Check if the symbol ‘C:mago3djsf4d’ is created by ‘dir’ command.
5. Community Edition – Getting Start
Page 25
 In Enterprise Edition, operation policy & data management are on RDB(Postgresql
+ PostGis)
In case of mago3D Community Edition, it manages mago3D operation policy and
data through API interworking with other business system.
The mago3D Community Edition provides the same results as the API linkage in
Mock form Json to execute simply on the developer's local PC and check the
function.
 Community Edition has two types of configuration files.
mago3D JS is a policy.json file that deals with Rendering related settings and
data.json which is responsible for Location information of Data
 You need to modify the policy.json and data.json files.
5. Community Edition – Getting Start
Page 26
 Modify policy.json(C:mago3djssampletutorialworkshop-policy-cesium.json)
 Project to be loaded at initialization, Init Camera Latitude, Longitude, CallBack
Function, Geo Server setting, etc.
 Use C:mago3djssampletutorialworkshop-policy-cesium.json for practice
 Project setting key value to load when initializing page.
If you want to load multiple projects, add to
 Where to go when starting a web page (latitude, longitude)
5. Community Edition – Getting Start
F4D Data path
Init Project File Name
Page 27
5. Community Edition – Getting Start
 Modify data.json(C:mago3djssampletutorialworkshop.json)
 It has information of F4D files created by running F4 Converter (instead of
Database)
 Contains spatial information (Data Key, Name, Latitude, Longitude, Altitude,
Heading, Pitch, Roll), properties, and sub data of the data sets included in
Project.
 mago3D Concept and relationship of Project, Data used in data.json
 Project – Each data is defined as a logical group according to purpose.
(It is the same concept as a department in a general company.)
 data - Each data that the web browser will display
(Employees belonging to department in general company)
Page 28
5. Community Edition – Getting Start
 Relationship between project and data in workshop.json
Primary Key(Project Table)
FOREIGN KEY(Data Table)
1
:
N
Page 29
5. Community Edition – Getting Start
 Relationship between project and data in workshop.json
If you look in the C:f4d directory
There is a directory called workshop
Within it are the F4D_SOCIALROOM, F4D_STUDENTROOM directories.
here
project = workshop
data1 = SOCIALROOM
data2 = STUDENTROOM
Page 30
 C:mago3djssampletutorialworkshop.json File Contents
 The first node of the json file describes information about the project, and
the second node describes the information about the data.
 There are three main areas: Attributes that store attribute values, Children
that store child node information, Area for storing other location information
 The data_key of the root node of json should match the project
name(directory name) under the c:f4d directory
 project is a logical concept and isPhysical = false
data is physically present and isPhysical = true
5. Community Edition – Getting Start
attribute areas
child node areas
geo info areas
project name(PK)
Page 31
 C:mago3djssampletutorialworkshop.json
 data_key becomes Primary Key in Database
 The characters after F4D_ in the directory name
are Unique identifiers
 In the workshop.json file, modify the data_key
value of children to
SOCIALROOM, STUDENTROOM
 Modify spatial information of data
(SOCIALROOM, STUDENTROOM)
latitude, longitude, height, heading, pitch, roll, etc
5. Community Edition – Getting Start
(Required) same
name Mapping
Page 32
 Build automation tools for front-end web development include webpack, grunt,
gulp, bower, and yeoman
 mago3D JS uses Gulp
https://gulpjs.com/
 /gulpfile.js
 clean, combine, uglify, doc, and lint.
 Jsdoc for Document Creation
http://usejsdoc.org/
 Use ESLint for coding conventions.
https://eslint.org/
 Use Jasmine for testing. Scheduled to write test code
https://jasmine.github.io/
5. Community Edition – Getting Start
Page 33
 Using eclipse
Run Gulp Task as shown on the
right screen
 If you are not using eclipse
After running Command Prompt,
go to Mago3djs project directory
C:mago3djs>run gulp
 build succeeds, build directory is created.
 build completed using mago3d.js
5. Community Edition – Getting Start
Page 34
 Let's create start.html to start the web service.
 Open /mago3djs/tutorials/start.html using the editor.
 First, to use cesium, include css, javascript
<link rel="stylesheet" href="../demo.css" />
<link rel="stylesheet" href="../../src/engine/cesium/Widgets/widgets.css" />
 Second, include to include jquery
<script type="text/javascript" src="../../externlib/jquery/jquery.js"></script>
 Third, include mago3djs
<script type="text/javascript" src="../../src/engine/cesium/Cesium.js"></script>
<script type="text/javascript" src="../../build/mago3d/mago3d.js"></script>
 Generate DIV area to 3D render on html page
<div id="magoContainer" class="mapWrap"></div>
<canvas id="objectLabel"></canvas>
5. Community Edition – Getting Start
Page 35
 Create mago3D JS instance
5. Community Edition – Getting Start
The div id to display the
cesium map
Load configuration file
Page 36
 Run the web server (node server)
 Using eclipse
Right click on /server.js> Run As> Node.js Run the application
 When running as a Command Prompt
 Check the URL page below in your Chrome browser
http://localhost/sample/tutorial/start.html
mago3djs installDirectory
5. Community Edition – Getting Start
Page 37
5. Community Edition – Getting Start
 http://localhost/sample/tutorial/start.html
Page 38
 Let's apply the API to display the bounding box.
 See the mago3D homepage API documentation
http://www.mago3d.com/homepage/api.do
 Click changeBoundingBoxAPI on the left menu
http://www.mago3d.com/homepage/api.do#changeBoundingBoxAPI
 Add html form tag to set BoundingBox on / off
<div style="text-align: center; padding-bottom: 10px;">
<form id="apiForm" name="apiForm" action="" onsubmit="return false;" >
<span style="padding-right: 20px;">BoundingBox</span>
<input type="radio" id="showBoundingBox" name="boundingBox" value="true“
onclick="changeBoundingBox(true);" />
<label for="showBoundingBox"> Display </label>
<input type="radio" id="hideBoundingBox" name="boundingBox" value="false“
onclick="changeBoundingBox(false);" />
<label for="hideBoundingBox"> Hide </label>
</form>
</div>
5. Community Edition – Getting Start
Page 39
 Adding BoundingBox API Javascript
function changeBoundingBox(isShow) {
changeBoundingBoxAPI(managerFactory, isShow);
}
 Check the URL page below in your Chrome browser
http://localhost/sample/tutorial/api-boundingbox.html
5. Community Edition – Getting Start
Page 40
 workshop, 3ds This is an example of using various api with two projects.
3ds data is not attached and some functions may not work.
If you want to configure the UI using mag3DJS, please refer to it.
 http://localhost/sample/tutorial/all-features-and-debug.html
5. Community Edition – Getting Start
Page 41
5. Community Edition – End
Coffee Break
Page 42
6. Enterprise Edition - S/W
DB Postgresql 9.6 + PostGIS
Web Server Nginx 1.12.1 / Apache 2.4
Language Java8
Framework Spring(Springboot) + Mybatis
Build
Gradle
Log
Logback/Log4j2
Security
ESAPI
Report
Jasper/POI
View
JSP/JSTL
UI/UX
Jquery
Chart
Jqplot/Axisj
Template
Thymeleaf
Handlebars
Geo Server Geo Server
OS Centos 7.2
mago3D JS Html5, JavaScript, 3D GIS Engine(Cesium, WorldWind)
Cache EhCache, Redis
F4D ConverterC++
WAS Tomcat 8.5
Page 43
7. Enterprise Edition - Introduction
 A brief introduction to installation
 Describe how to register data and manage issues using
F4D Converter + Property Extractor(IFC) + Content Management System
1) Install
2) Dashboard, policy configuration
3) Data management
4) Issue management
5) Role Based Access Control configuration
Page 44
7. Enterprise Edition - Introduction
 java
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html
java jdk-8u144-windows-x64.exe
 eclipse
https://www.eclipse.org/downloads/eclipse-packages/
Eclipse IDE for Java EE Developers 64bit
 gradle
https://gradle.org/releases/
v4.1
Page 45
7. Enterprise Edition - Introduction
 postgresql
https://www.enterprisedb.com/downloads/postgres-postgresql-
downloads#windows
9.6.5
 postgis
http://download.osgeo.org/postgis/windows/pg96/
 Lombok
https://projectlombok.org/download
1.16.18
 source download
https://github.com/Gaia3D/mago3d
Page 46
7. Enterprise Edition - Introduction
 do ‘Project Import’ after running eclipse
File -> import -> Gralde -> Existing Gradle Project
 DB Table creation and initialization
 Move to the folder ‘/mago3d-core/src/doc’ in downloaded source
 Run dbinit.bat
 For more information,
https://github.com/Gaia3D/mago3d
Reference
Page 47
7. Enterprise Edition - Introduction
 CMS is composed of 3 projects
parent project
admin
common
user
Page 48
7. Enterprise Edition - Introduction
 Build the project using Eclipse BuildShip Gradle Plugin or Gradle command line
 Run mago3d-admin project spring boot
/mago3d-admin/src/main/java/com/gaia3d/Mago3dAdminApplication.java
 Access to http://localhost/login/login.do with web browser
 initial id & password is in /mago3d-core/src/doc/database/dml/insert.sql
Refer /mago3d-admin/src/test/java/com/gaia3d/PasswordTest.java to know how to
generate admin password & salt
Page 49
7. Enterprise Edition - Introduction
 Provides various management functions such as project, data, user, RBAC, and log.
Page 50
7. Enterprise Edition - Introduction
 User policy, password policy, spatial information, GeoServer, security policy, etc.
 policy.json of mago3JS is a change of operation policy information into json file
Page 51
 Manage data such as new registration, property management, status change,
modification, deletion by grouping.The data.json of mago3JS is a json file of data
 by data group
7. Enterprise Edition - Introduction
Page 52
7. Enterprise Edition - Introduction
 Manage user registered issues.
 You can check progress status, priority, deadline, and contact person for each
issue
Page 53
7. Enterprise Edition - Introduction
 Register users for each user group and assign a role to each group.
 The user request authority judges whether the corresponding role exists in the
user group

More Related Content

PDF
Mago3D - An innovative AEC/GIS integration platform that can service millions...
PDF
mago3D, a web based BIM/GIS integration platform on top of open source
PDF
mago3D - A Brand-New Live 3D Geo-Platform
PDF
Introduction to mago3D: A web based GeoBIM platform on top of FOSS4G
PDF
BIM/GIS Integration: A Practical Approach in Real Cases
PDF
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
PDF
Mago3D: A Brand-New Live 3D Geo-Platform
PDF
Introduction to mago3D, an Open Source Based Digital Twin Platform
Mago3D - An innovative AEC/GIS integration platform that can service millions...
mago3D, a web based BIM/GIS integration platform on top of open source
mago3D - A Brand-New Live 3D Geo-Platform
Introduction to mago3D: A web based GeoBIM platform on top of FOSS4G
BIM/GIS Integration: A Practical Approach in Real Cases
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
Mago3D: A Brand-New Live 3D Geo-Platform
Introduction to mago3D, an Open Source Based Digital Twin Platform

What's hot (20)

PDF
Vector Tile for Sea Wind
PDF
Current State of mago3D, an Open Source Based Digital Twin Platform
PDF
Let’s Power the Analytics and 3D to the Web Based Military Geo-Portal using F...
PDF
mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind
PPTX
mago3D FOSS4G NA 2018
PDF
State of mago3D, An Open Source Based Digital Twin Platform
PDF
Introduction of MAGO3D
PDF
State of mago3D, An Open Source Based Digital Twin Platform
PDF
Paradigm Shift of Geospatial Information Service
PPTX
Predictive Maintenance of Ball Bearing using Digital Twin
PDF
OpenWebGlobe - GeoSharing Bern
PDF
Webilea: The OpenWebGlobe Project
PPT
3D Geo-standaarden workshop
PDF
ISO 19166 BIM to GIS conceptual mapping China (WUHAN) meeting
PPTX
3D Web Visualization 1
PDF
V Ray 1.5 The Complete Guide
PDF
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
PPTX
BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...
PDF
Raster Data In GeoServer And GeoTools: Achievements, Issues And Future Develo...
PPT
3 d modelling
Vector Tile for Sea Wind
Current State of mago3D, an Open Source Based Digital Twin Platform
Let’s Power the Analytics and 3D to the Web Based Military Geo-Portal using F...
mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind
mago3D FOSS4G NA 2018
State of mago3D, An Open Source Based Digital Twin Platform
Introduction of MAGO3D
State of mago3D, An Open Source Based Digital Twin Platform
Paradigm Shift of Geospatial Information Service
Predictive Maintenance of Ball Bearing using Digital Twin
OpenWebGlobe - GeoSharing Bern
Webilea: The OpenWebGlobe Project
3D Geo-standaarden workshop
ISO 19166 BIM to GIS conceptual mapping China (WUHAN) meeting
3D Web Visualization 1
V Ray 1.5 The Complete Guide
High-Quality Server Side Rendering using the OGC’s 3D Portrayal Service – App...
BIMMeeting 2016 - BIM-Infra-GIS: building bridges from single buildings to di...
Raster Data In GeoServer And GeoTools: Achievements, Issues And Future Develo...
3 d modelling
Ad

Similar to mago3D Technical Workshop Material(New Version) (20)

PPTX
mago3D workshop(English) in Thailand , 2018.07
PDF
mago3D Technical Workshop Material
PDF
map3d_mapguide_postgis
PPT
The Best Come from Fresh Ingredients: Creating CAD Files from an Enterprise S...
PDF
Crack the AZ-801 Exam in 2025: Real Dumps, Expert Tips & Latest Practice Ques...
PDF
Server-410_RatanMohapatra
PPTX
Prosit google-cloud
PDF
Test Automation Framework for the Desktop
PDF
Security of Go Modules - SF Meetup
PDF
Android 5.0 Lollipop platform change investigation report
PDF
Deep Learning Edge
PDF
How to Set Up Esri Geoportal Server 1.2.2 on Windows
DOCX
software Documentation Certificate in department of computer
PDF
Struts2 tutorial
PDF
micro-frontends-with-vuejs
PDF
Security of go modules and vulnerability scanning in GoCenter
PDF
[Gstar 2013] Unity Security
PPTX
What should you know about Net Core?
PDF
Maria Guseva - The solution of merge hell in monorepo
PPTX
Yobi d2 naver(create)
mago3D workshop(English) in Thailand , 2018.07
mago3D Technical Workshop Material
map3d_mapguide_postgis
The Best Come from Fresh Ingredients: Creating CAD Files from an Enterprise S...
Crack the AZ-801 Exam in 2025: Real Dumps, Expert Tips & Latest Practice Ques...
Server-410_RatanMohapatra
Prosit google-cloud
Test Automation Framework for the Desktop
Security of Go Modules - SF Meetup
Android 5.0 Lollipop platform change investigation report
Deep Learning Edge
How to Set Up Esri Geoportal Server 1.2.2 on Windows
software Documentation Certificate in department of computer
Struts2 tutorial
micro-frontends-with-vuejs
Security of go modules and vulnerability scanning in GoCenter
[Gstar 2013] Unity Security
What should you know about Net Core?
Maria Guseva - The solution of merge hell in monorepo
Yobi d2 naver(create)
Ad

More from SANGHEE SHIN (20)

PDF
Building Resilience with Digital Twins : Lessons from Korea
PDF
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
PDF
대한민국 대표 오픈소스, mago3DTiler의 현재와 미래 - 대한공간정보학회 2025년 신년학술대회 발표자료
PDF
State of mago3DTiler, an open source based OGC 3D Tiles creator
PDF
Dreams and Dilemmas: Lessons from Korea’s Urban Digital Twin
PDF
[벤틀리시스템즈코리아 사용자세미나]세슘(Cesium) 제품과 디지털트윈 구현 사례
PDF
디지털트윈 시공간 현상 정보 가시화 사례와 과제 - 한국지도학회 2024년 춘계학술대회 발표 자료
PDF
Building a Digital Twin Service in 10 Minutes with FOSS4G! - 오픈소스로 10분만에 디지털트...
PDF
Do we need a new standard for visualizing the invisible?
PDF
디지털트윈 몇몇 기술 동향과 사례 - 대한공간정보학회 신년학술대회 발표 자료
PDF
오픈소스로 사업하기 - 가이아쓰리디 이야기(서울시립대학교 창업지원단 특강)
PDF
FOSS4G 2023 Prizren 참가기
PDF
책 "제품의 탄생" 소개
PDF
공간정보 최근 동향과 디지털트윈, 메타버스
PDF
재테크 2주일만 하면 신상희만큼 한다!
PDF
다분야 공동활용 디지털 플랫폼 사례 공유
PDF
공간정보 관점에서 바라본 디지털트윈과 메타버스
PDF
FOSS4G Firenze 2022 참가기
PDF
공간정보와 도시 디지털트윈(부산DX컨퍼런스 발표자료)
PDF
공간정보 최근 동향과 디지털트윈, 메타버스
Building Resilience with Digital Twins : Lessons from Korea
How to Visualize the ​Spatio-Temporal Data Using CesiumJS​
대한민국 대표 오픈소스, mago3DTiler의 현재와 미래 - 대한공간정보학회 2025년 신년학술대회 발표자료
State of mago3DTiler, an open source based OGC 3D Tiles creator
Dreams and Dilemmas: Lessons from Korea’s Urban Digital Twin
[벤틀리시스템즈코리아 사용자세미나]세슘(Cesium) 제품과 디지털트윈 구현 사례
디지털트윈 시공간 현상 정보 가시화 사례와 과제 - 한국지도학회 2024년 춘계학술대회 발표 자료
Building a Digital Twin Service in 10 Minutes with FOSS4G! - 오픈소스로 10분만에 디지털트...
Do we need a new standard for visualizing the invisible?
디지털트윈 몇몇 기술 동향과 사례 - 대한공간정보학회 신년학술대회 발표 자료
오픈소스로 사업하기 - 가이아쓰리디 이야기(서울시립대학교 창업지원단 특강)
FOSS4G 2023 Prizren 참가기
책 "제품의 탄생" 소개
공간정보 최근 동향과 디지털트윈, 메타버스
재테크 2주일만 하면 신상희만큼 한다!
다분야 공동활용 디지털 플랫폼 사례 공유
공간정보 관점에서 바라본 디지털트윈과 메타버스
FOSS4G Firenze 2022 참가기
공간정보와 도시 디지털트윈(부산DX컨퍼런스 발표자료)
공간정보 최근 동향과 디지털트윈, 메타버스

Recently uploaded (20)

PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PPTX
The various Industrial Revolutions .pptx
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Five Habits of High-Impact Board Members
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Final SEM Unit 1 for mit wpu at pune .pptx
The various Industrial Revolutions .pptx
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A review of recent deep learning applications in wood surface defect identifi...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
The influence of sentiment analysis in enhancing early warning system model f...
Consumable AI The What, Why & How for Small Teams.pdf
Flame analysis and combustion estimation using large language and vision assi...
Getting started with AI Agents and Multi-Agent Systems
1 - Historical Antecedents, Social Consideration.pdf
sbt 2.0: go big (Scala Days 2025 edition)
Taming the Chaos: How to Turn Unstructured Data into Decisions
Module 1.ppt Iot fundamentals and Architecture
A contest of sentiment analysis: k-nearest neighbor versus neural network
Abstractive summarization using multilingual text-to-text transfer transforme...
OpenACC and Open Hackathons Monthly Highlights July 2025
Enhancing emotion recognition model for a student engagement use case through...
Five Habits of High-Impact Board Members

mago3D Technical Workshop Material(New Version)

  • 1. Page 1 Sanghee Shin(shshin@gaia3d.com) Hakjoon Kim(hjkim@gaia3d.com) JeongDae Cheon(jdcheon@gaia3d.com) WorkShop Let’s Integrate BIM/AEC and 3D GIS on Your Web Browser!
  • 2. Page 2 1. Architecture mago3D.JS Cesium/WWW Client internet Web Server WAS F4DStorage mago Content Management DataBase F4D Converter mago3D Core
  • 3. Page 3  Convert ifc files(BIM standard interchange format) or .3ds / .obj / .dae files to F4D (traditional three-dimensional format) mago3D service-only format.  Perform pre-processing to lighten weight and improve rendering performance in conversion process 2. Core Component - F4D Converter F4D Converter F4D .3ds .obj .dae .ifc
  • 4. Page 4 2. Core Component - mago3D JS  A Javascript-based plug-in that extends the 3D GIS engine to handle AEC data 4 mago3D.js 3D GIS Engines Cesium.js WorldWindWeb.js API API service html
  • 5. Page 5 2. Core Component - Content Management System  Java Spring-based collaboration system for users, role management, data management, issue management, etc. User User User User User Site (issue Register) Admin Site (User, Role, Data,Issue, Reporter, etc) Separation of Network Network Cache Refresh HTTPS admin
  • 6. Page 6 3. Product F4D Converter mago3DJS Content Managemt System  Used as a 3D rendering solution, specially in case that you want to insert 3D rendering part into any business systems already existing.  F4D Converter + mago3DJS, F4D Converter + Content Management System(Full Package)  A platform for handling large-sized 3D contents, which offers functionality about data managements.  F4D Converter + Property Extractor(IFC) + Content Management System + Technical Support 3D Data Converter Browser 3D Rendering Data DB Manager
  • 7. Page 7 4. WorkShop  Install and run mago3D Community Edition (F4D Converter + mago3DJS) and learn how to use mago3D as a 3D rendering solution in interworking with your existing business system or in a new project.  It provides a brief overview of the key features of the mago3D Enterprise Edition (F4D Converter + Property Extractor (IFC) + Content Management System): data management, issue management, and role management.  OS : Window7 or later (64bit)  JRE: 1.8 or higher  Disk space: At least 2G  RAM : 8G or more (16G recommended)  3D Sample File(IFC, 3DS, Collada, Obj, JT Etc)  Internet connection
  • 8. Page 8 5. Community Edition – Getting Start mago3D JS Cesium/WWW Client internet Business System Web Server Customer F4DStorage F4D Converter REST API Json (policy, data, etc)
  • 9. Page 9 5. Community Edition – Getting Start  Using Community Edition(F4DConverter + mago3dDJS), we will deploy mago3DJS and publish 3D Data which are converted from sample IFC files through F4DConverter. Then, we can check published 3D data on our web browsers. 1) Editor or IDE Install 2) mago3D JS Source Download 3) Web Server Install 4) F4D Converter Install(.msi) 5) Data Conversion 6) Configuration Modification 7) mago3D JS build 8) Getting Start 9) API Example
  • 10. Page 10  If you already have an editor in use, you can skip this step.  For mago3D development team, use Eclipse  http://www.eclipse.org/downloads/eclipse-packages/  Eclipse IDE for Java EE Developers  Java installation required (java8 version recommended)  If you do not have an editor, you can download the free open source editor Notepad ++ from the following site:  https://notepad-plus-plus.org/download/v7.5.1.html 5. Community Edition – Getting Start
  • 11. Page 11  Connect to https://github.com/Gaia3D/mago3djs, click on the Clone or download button  Select ‘Download ZIP’ and save zip file in ‘C:’  In case of using git : git clone https://github.com/Gaia3D/mago3djs.git  Branch: develop  Unzip and check the result  C:mago3djs 5. Community Edition – Getting Start
  • 12. Page 12 5. Community Edition – Getting Start  Right-click on the Eclipse screen  Import -> General -> Projects from Folder Archive Select
  • 13. Page 13  mago3D Community Edition requires a web server to run locally.  We use Node.js for the exercises.  Skip this process if you already have a web server in use.  Any web server capable of serving static content can be used  Connect to https://nodejs.org/en/download/ Window Installer (.msi) 64-bit Download. 5. Community Edition – Getting Start
  • 14. Page 14  Install path : C:nodejs c:nodejs 5. Community Edition – Getting Start
  • 15. Page 15  Run command prompt (cmd.exe) with administrative privileges  Go to C: mago3djs directory  Run node install to download the required modules C:mago3djs>npm install C:mago3djs>npm install -g gulp  The node_modules directory is created in the root directory 5. Community Edition – Getting Start
  • 16. Page 16  http://www.mago3d.com/homepage/download.do  Installer : F4D Converter 64bit (this installation requires Windows 7 or later)  Install 5. Community Edition – Getting Start
  • 17. Page 17  Install Path : C:F4DConverter 5. Community Edition – Getting Start
  • 18. Page 18 5. Community Edition – Getting Start
  • 19. Page 19  If you have 3D data, use it If not Please download demo data from the following URL. https://github.com/Gaia3D/mago3djs/files/2029661/demo_f4d.zip  There are two files when decompressed. 5. Community Edition – Getting Start
  • 20. Page 20  Create outputFolder, where converted result will be saved C:f4dworkshop(Create a directory for each project under the root folder f4d)  put sample ifc files into inputFolder(D:demo_f4d)  Run Command Line Prompt(cmd.exe) in Administrator mode  Change current directory to the directory where F4DConverter is installed  Create outputFolder, where converted result will be saved * all arguments : refer https://github.com/Gaia3D/F4DConverter -inputFolder [rawDataFolder] : an absolute path of the folder where raw data files to be converted are. -outputFolder [F4DFolder] : an absolute path of the folder where conversion results(F4D datasets) are created. -log [logFileFullPath] : an absolute path of a log file which is created after finishing conversion processes. -indexing [one of Y, y, N, n] : wheter objectIndexFile.ihe should be created or not. "NOT created" is default. 5. Community Edition – Getting Start
  • 21. Page 21  Run following 5. Community Edition – Getting Start Do Not Close
  • 22. Page 22 ※ If component missing errors (MFC140U.dll, MSVCP140.dll, VCRUNTIME140.dll, MSVCP100.dll) occrur when you start F4DConverter.exe, install following two packages.  visual studio 2015 visual C++ redistributable package https://www.microsoft.com/en-us/download/confirmation.aspx?id=48145  visual studio 2010 visual C++ redistributable package https://www.microsoft.com/en-us/download/details.aspx?id=14632 5. Community Edition – Getting Start
  • 23. Page 23  Can see Processes running in Task Manager  Ends when execution finishes 5. Community Edition – Getting Start
  • 24. Page 24  If the data conversion succeeded  Confirm creation of F4D_XXX folders and ObjectIndexFile.ihe file in C:f4dworkshop folder  If it fails, check the log file (logTest.txt) from D:demo_f4d (inputFolder).  Create a symbolic link for the F4D data folder to make the folder be used as a data folder of web service in mago3DJS project.  Using cmd.exe in administrator mode, change current directory to C:mago3djs  C:mago3djs>mklink /d "C:mago3djsf4d" "C:f4d"  Check if the symbol ‘C:mago3djsf4d’ is created by ‘dir’ command. 5. Community Edition – Getting Start
  • 25. Page 25  In Enterprise Edition, operation policy & data management are on RDB(Postgresql + PostGis) In case of mago3D Community Edition, it manages mago3D operation policy and data through API interworking with other business system. The mago3D Community Edition provides the same results as the API linkage in Mock form Json to execute simply on the developer's local PC and check the function.  Community Edition has two types of configuration files. mago3D JS is a policy.json file that deals with Rendering related settings and data.json which is responsible for Location information of Data  You need to modify the policy.json and data.json files. 5. Community Edition – Getting Start
  • 26. Page 26  Modify policy.json(C:mago3djssampletutorialworkshop-policy-cesium.json)  Project to be loaded at initialization, Init Camera Latitude, Longitude, CallBack Function, Geo Server setting, etc.  Use C:mago3djssampletutorialworkshop-policy-cesium.json for practice  Project setting key value to load when initializing page. If you want to load multiple projects, add to  Where to go when starting a web page (latitude, longitude) 5. Community Edition – Getting Start F4D Data path Init Project File Name
  • 27. Page 27 5. Community Edition – Getting Start  Modify data.json(C:mago3djssampletutorialworkshop.json)  It has information of F4D files created by running F4 Converter (instead of Database)  Contains spatial information (Data Key, Name, Latitude, Longitude, Altitude, Heading, Pitch, Roll), properties, and sub data of the data sets included in Project.  mago3D Concept and relationship of Project, Data used in data.json  Project – Each data is defined as a logical group according to purpose. (It is the same concept as a department in a general company.)  data - Each data that the web browser will display (Employees belonging to department in general company)
  • 28. Page 28 5. Community Edition – Getting Start  Relationship between project and data in workshop.json Primary Key(Project Table) FOREIGN KEY(Data Table) 1 : N
  • 29. Page 29 5. Community Edition – Getting Start  Relationship between project and data in workshop.json If you look in the C:f4d directory There is a directory called workshop Within it are the F4D_SOCIALROOM, F4D_STUDENTROOM directories. here project = workshop data1 = SOCIALROOM data2 = STUDENTROOM
  • 30. Page 30  C:mago3djssampletutorialworkshop.json File Contents  The first node of the json file describes information about the project, and the second node describes the information about the data.  There are three main areas: Attributes that store attribute values, Children that store child node information, Area for storing other location information  The data_key of the root node of json should match the project name(directory name) under the c:f4d directory  project is a logical concept and isPhysical = false data is physically present and isPhysical = true 5. Community Edition – Getting Start attribute areas child node areas geo info areas project name(PK)
  • 31. Page 31  C:mago3djssampletutorialworkshop.json  data_key becomes Primary Key in Database  The characters after F4D_ in the directory name are Unique identifiers  In the workshop.json file, modify the data_key value of children to SOCIALROOM, STUDENTROOM  Modify spatial information of data (SOCIALROOM, STUDENTROOM) latitude, longitude, height, heading, pitch, roll, etc 5. Community Edition – Getting Start (Required) same name Mapping
  • 32. Page 32  Build automation tools for front-end web development include webpack, grunt, gulp, bower, and yeoman  mago3D JS uses Gulp https://gulpjs.com/  /gulpfile.js  clean, combine, uglify, doc, and lint.  Jsdoc for Document Creation http://usejsdoc.org/  Use ESLint for coding conventions. https://eslint.org/  Use Jasmine for testing. Scheduled to write test code https://jasmine.github.io/ 5. Community Edition – Getting Start
  • 33. Page 33  Using eclipse Run Gulp Task as shown on the right screen  If you are not using eclipse After running Command Prompt, go to Mago3djs project directory C:mago3djs>run gulp  build succeeds, build directory is created.  build completed using mago3d.js 5. Community Edition – Getting Start
  • 34. Page 34  Let's create start.html to start the web service.  Open /mago3djs/tutorials/start.html using the editor.  First, to use cesium, include css, javascript <link rel="stylesheet" href="../demo.css" /> <link rel="stylesheet" href="../../src/engine/cesium/Widgets/widgets.css" />  Second, include to include jquery <script type="text/javascript" src="../../externlib/jquery/jquery.js"></script>  Third, include mago3djs <script type="text/javascript" src="../../src/engine/cesium/Cesium.js"></script> <script type="text/javascript" src="../../build/mago3d/mago3d.js"></script>  Generate DIV area to 3D render on html page <div id="magoContainer" class="mapWrap"></div> <canvas id="objectLabel"></canvas> 5. Community Edition – Getting Start
  • 35. Page 35  Create mago3D JS instance 5. Community Edition – Getting Start The div id to display the cesium map Load configuration file
  • 36. Page 36  Run the web server (node server)  Using eclipse Right click on /server.js> Run As> Node.js Run the application  When running as a Command Prompt  Check the URL page below in your Chrome browser http://localhost/sample/tutorial/start.html mago3djs installDirectory 5. Community Edition – Getting Start
  • 37. Page 37 5. Community Edition – Getting Start  http://localhost/sample/tutorial/start.html
  • 38. Page 38  Let's apply the API to display the bounding box.  See the mago3D homepage API documentation http://www.mago3d.com/homepage/api.do  Click changeBoundingBoxAPI on the left menu http://www.mago3d.com/homepage/api.do#changeBoundingBoxAPI  Add html form tag to set BoundingBox on / off <div style="text-align: center; padding-bottom: 10px;"> <form id="apiForm" name="apiForm" action="" onsubmit="return false;" > <span style="padding-right: 20px;">BoundingBox</span> <input type="radio" id="showBoundingBox" name="boundingBox" value="true“ onclick="changeBoundingBox(true);" /> <label for="showBoundingBox"> Display </label> <input type="radio" id="hideBoundingBox" name="boundingBox" value="false“ onclick="changeBoundingBox(false);" /> <label for="hideBoundingBox"> Hide </label> </form> </div> 5. Community Edition – Getting Start
  • 39. Page 39  Adding BoundingBox API Javascript function changeBoundingBox(isShow) { changeBoundingBoxAPI(managerFactory, isShow); }  Check the URL page below in your Chrome browser http://localhost/sample/tutorial/api-boundingbox.html 5. Community Edition – Getting Start
  • 40. Page 40  workshop, 3ds This is an example of using various api with two projects. 3ds data is not attached and some functions may not work. If you want to configure the UI using mag3DJS, please refer to it.  http://localhost/sample/tutorial/all-features-and-debug.html 5. Community Edition – Getting Start
  • 41. Page 41 5. Community Edition – End Coffee Break
  • 42. Page 42 6. Enterprise Edition - S/W DB Postgresql 9.6 + PostGIS Web Server Nginx 1.12.1 / Apache 2.4 Language Java8 Framework Spring(Springboot) + Mybatis Build Gradle Log Logback/Log4j2 Security ESAPI Report Jasper/POI View JSP/JSTL UI/UX Jquery Chart Jqplot/Axisj Template Thymeleaf Handlebars Geo Server Geo Server OS Centos 7.2 mago3D JS Html5, JavaScript, 3D GIS Engine(Cesium, WorldWind) Cache EhCache, Redis F4D ConverterC++ WAS Tomcat 8.5
  • 43. Page 43 7. Enterprise Edition - Introduction  A brief introduction to installation  Describe how to register data and manage issues using F4D Converter + Property Extractor(IFC) + Content Management System 1) Install 2) Dashboard, policy configuration 3) Data management 4) Issue management 5) Role Based Access Control configuration
  • 44. Page 44 7. Enterprise Edition - Introduction  java http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- 2133151.html java jdk-8u144-windows-x64.exe  eclipse https://www.eclipse.org/downloads/eclipse-packages/ Eclipse IDE for Java EE Developers 64bit  gradle https://gradle.org/releases/ v4.1
  • 45. Page 45 7. Enterprise Edition - Introduction  postgresql https://www.enterprisedb.com/downloads/postgres-postgresql- downloads#windows 9.6.5  postgis http://download.osgeo.org/postgis/windows/pg96/  Lombok https://projectlombok.org/download 1.16.18  source download https://github.com/Gaia3D/mago3d
  • 46. Page 46 7. Enterprise Edition - Introduction  do ‘Project Import’ after running eclipse File -> import -> Gralde -> Existing Gradle Project  DB Table creation and initialization  Move to the folder ‘/mago3d-core/src/doc’ in downloaded source  Run dbinit.bat  For more information, https://github.com/Gaia3D/mago3d Reference
  • 47. Page 47 7. Enterprise Edition - Introduction  CMS is composed of 3 projects parent project admin common user
  • 48. Page 48 7. Enterprise Edition - Introduction  Build the project using Eclipse BuildShip Gradle Plugin or Gradle command line  Run mago3d-admin project spring boot /mago3d-admin/src/main/java/com/gaia3d/Mago3dAdminApplication.java  Access to http://localhost/login/login.do with web browser  initial id & password is in /mago3d-core/src/doc/database/dml/insert.sql Refer /mago3d-admin/src/test/java/com/gaia3d/PasswordTest.java to know how to generate admin password & salt
  • 49. Page 49 7. Enterprise Edition - Introduction  Provides various management functions such as project, data, user, RBAC, and log.
  • 50. Page 50 7. Enterprise Edition - Introduction  User policy, password policy, spatial information, GeoServer, security policy, etc.  policy.json of mago3JS is a change of operation policy information into json file
  • 51. Page 51  Manage data such as new registration, property management, status change, modification, deletion by grouping.The data.json of mago3JS is a json file of data  by data group 7. Enterprise Edition - Introduction
  • 52. Page 52 7. Enterprise Edition - Introduction  Manage user registered issues.  You can check progress status, priority, deadline, and contact person for each issue
  • 53. Page 53 7. Enterprise Edition - Introduction  Register users for each user group and assign a role to each group.  The user request authority judges whether the corresponding role exists in the user group