wp3 ict support - vtt · wp3 ict support d3.1 ict ... managing notes and comments associated with...
TRANSCRIPT
Dissemination level
PU Public X RE Restricted to a group specified by the consortium CO Confidential, only for members of the consortium
WP3 ICT support D3.1 ICT services requirements
specification
Revision: Final
Due date: 2014-05-31
Actual release date: 2014-12-18
Lead contractor: CSTB
D3.1 ICT Services requirements specification 2014-12-18
Page 2 of 29
Deliverable Administration & Summary ecobim WPX Eco-Innovera
No & name D3.1 ICT services requirements specification
Status <Draft / Working / Released> Due m17 Date 2014-05-31
Author(s) Eric Lebègue (CSTB), Wolfram Trinius (TRIN)
Editor CSTB
Description This document presents the ICT services specifications proposed by the ecobim framework.
Comments
Document workflow
Released CSTB Date 2014-12-17
Accepted VTT Date 2014-12-18
D3.1 ICT Services requirements specification 2014-12-18
Page 3 of 29
TABLE OF CONTENTS
Executive summary........................................................................................................ 5
1. Recall of the ecobim framework ................................................................................. 6
2. Recall of the ecobim ICT framework ............................................................................ 8
3. ICT services requirements specification ..................................................................... 10
3.1 BIM checker and assessment ..................................................................................... 10
3.2 Product Life Management (PLM) ................................................................................ 10
3.3 Detailed process ....................................................................................................... 11
3.4 BIM objects on the PLM ............................................................................................ 12
3.5 Life Cycle Analysis and calculation of eco-indicators ..................................................... 17
3.6 Loading BIM quantity take off into Excel ..................................................................... 20
4. Conclusions and recommendations ........................................................................... 22
Annexes ...................................................................................................................... 23
Annex 1. Excel macro sample .......................................................................................... 23
D3.1 ICT Services requirements specification 2014-12-18
Page 4 of 29
Table of figures
Figure 1: ecobim framework…………………………………………………………………………………………………6
Figure 2: Partial view of the template for ecobim case studies……………………………….…………..6
Figure 3: Business opportinities for eco-innovation………………………………………………………..……7
Figure 4: The ecobim ICT framework…………………………………………………………………………………….8
Figure 5: eveBIM checking tool……………………………………………………………………………………………10
Figure 6: BIM Edition general process…………………………………………………………………………………11
Figure 7: BIM-PLM-LCA process………………………………………………………………………………………….12
Figure 8. Process to build the XML………………………………….…………………………………………………..15
Figure 9: The export option in the file menu…………………………………….……………………………..….15
Figure 10: Proxy model used to display a project………………………………………………………………..16
Figure 11: View of system model…………………………………………………………………………………………16
Figure 12: IFC loaded model…………………………………………………………………………………….………….17
Figure 13: Life Cycle Analysis and production of eco-indicators………………………………………….18
Figure 14: XML BIM loading macro within Excel………………………………………………….……………..21
Figure 15: Example of an automatically filled sheet…………………………………………….……………..21
D3.1 ICT Services requirements specification 2014-12-18
Page 5 of 29
EXECUTIVE SUMMARY
This document presents the ICT services specifications proposed by the ecobim framework described in ecobim D1.2 “ecobim project framework”. Eco-innovative services can be created with the support of new processes and ICTs. Service by service, this report explains the functionalities but also the processes required for achieving the service.
It proposes solutions based on the combination of BIM CAD Tools (eg. Revit, ArchiCAD…), the eveBIM viewer of CSTB, the Lascom AEC PLM platform and a mechanism based on XML and Excel spreadsheets for Life Cycle Analysis. One of the main questions raised is how to generalize the findings so that they become applicable in other contexts, e.g. in other countries or in different regions within the same country, or even in different thematic contexts.
D3.1 ICT Services requirements specification 2014-12-18
Page 6 of 29
1. RECALL OF THE ECOBIM FRAMEWORK
The ecobim framework is based on paradigm change and eco-innovations supported by new ICTs and new processes. They result in new services and also in new business models, especially for SMEs.
Figure 1: ecobim framework.
The achieved impacts can be assessed in increased environmental, economic and social or cultural sustainability. A template covering these aspects has been defined to be applied in the Finnish, French and German D4.1 Case studies.
Figure 2: Partial view of the template for ecobim case studies.
ecobim
market impact
new ict
new process
new service
value driven life cycle based sustainable business models
environmental impact
easy-to-use guidelines based on indicators for
sustainable eco-innovative construction business
models +
recommendations for policy makers
new revenuemodel/ other
social/cultural impact
easy-to-understand common reference,better quality of life for citizens
paradigm change to eco-innovation minimizing impacts of building activities using LC approach
new business opportunities for construction SMEs
actorsVTT FinlandCSTB FranceSME FinlandSME France
SME Germany
a roadmap for new business models for sustainable construction procurement in direct collaboration with SMEs through
flexible life-cycle assessment tools based on indicators and linked to BIMs
BIM checkers and assessmentProduct Life Management (PLM)
Life Cycle Analysis and Production of Eco-indicatorsMonitoring of buildings
Other BIM based business opportunities
Value drivenlife cycle based
processes re-engineered
Paradigm change relatedeco-innovative services,
especially for SMEs
Sustainable business modelsbased on eco-innovations
and new earning logics
main results
D3.1 ICT Services requirements specification 2014-12-18
Page 7 of 29
The ecobim project has already identified a number of opportunities for eco-innovation within the construction sector and is working on the following: BIM checkers and assessment, Product Life Management (PLM), Life Cycle Analysis and Production of Eco-Indicators, Monitoring of Buildings and other business opportunities not necessarily related to BIMs and ICTs. Opportunities related to BIM, PLM, LCA and Monitoring are being developed through real case studies in Finland, France and Germany. However, other opportunities not related to BIMs and ICTs are being explored through co-creation workshops with different stakeholder groups supported by ecobim networking platform.
Figure 3: Business opportunities for eco-innovation.
ecobimvalue driven life cycle based sustainable business models
OtherBIM basedbusiness
opportunities
Otherbusiness
opportunities
Other business opportunitiesNew ICTNew ProcessNew ServiceNew Revenue ModelOtherecobim scope is not limited to the BIM based business solutions described so far. Other potential candidates may be identified during the project’s life time e.g. with the help of the ecobim online networking platform, exploiting Building Information Modeling or not. The key objective is to relate them to eco-innovation and special concern is to look for opportunities to SMEs
BIM checkers and assessmentwith better tools, it is possible to
superpose different pieces of BIM, e.g. workpackages or specific views of the different actors for synthesis or clash
detections.
Product Life Management(PLM)
PLM ensures collaborative work around the BIM to manage e.g. different actors
of the construction project with their roles, hierarchies, workflows and
commissioning data.
Life Cycle Analysis and Productionof Eco-indicators
life cycle assessment for different phases, disciplines or processes provides new
business opportunities so that the BIM Manager role can become an ECO BIM
Manager.
Monitoring of buildingsremote monitoring of buildings can
reproduce its behaviour within the BIM, enabling to perform simulations and propose corrections to improve the
building performance.
D3.1 ICT Services requirements specification 2014-12-18
Page 8 of 29
2. RECALL OF THE ECOBIM ICT FRAMEWORK
The ecobim D1.1 deliverable has presented some business opportunities for eco-innovation thanks to the combined usage of BIM, Product Life Management (PLM) and potential other technologies (Web, indicators sharing, XML…).
These business opportunities are presented in detail in the following chapters, after a presentation of the general ecobim ICT framework, which can provide a coherent approach for these different opportunities.
The following schema presents the general ecobim ICT framework. This schema takes advantages of the tandem BIM + PLM for supporting different eco-innovation business opportunities with different processes that are described later in this document.
Figure 4: The ecobim ICT framework.
The elements of the ecobim framework are:
the different actors related to the building lifecycle use specific tools dedicated to their specific disciplines and roles in e.g. building design, construction or building maintenance & operation. Depending on their tasks and roles, they may generate or apply data that ideally can be fed into and read from an IFC formatted BIM model, established for collating technical building information;
a BIM Viewer, Checker and Synthesizer tool is used for :
providing a common technical view of the building all along its lifecycle;
checking that the IFC data are correctly defined and provided, depending on the lifecycle phase;
establishing the links between the objects of the building and its different associated requirements, annotations, documents, ecobim indicators (analysis results dedicated to eco-performance) and monitoring data;
D3.1 ICT Services requirements specification 2014-12-18
Page 9 of 29
ecobim Web Services for offering a data connection (for data transfer with access rights managed by the PLM) between the different actor tools and the ecobim PLM;
ecobim PLM Engine for :
establishing the links between the different elements of the building technical data;
managing the actors' roles and collaborative access rights to these elements;
the ecobim Data Server for sharing and archiving the different files of the building.
In the scope of the ecobim project framework, eveBIM from CSTB will be extended to play the role of the BIM Viewer, Checker and Synthesizer and the Lascom AEC platform of Lascom will be extended and parameterized for playing the role of the ecobim WEB Services and PLM engine.
D3.1 ICT Services requirements specification 2014-12-18
Page 10 of 29
3. ICT SERVICES REQUIREMENTS SPECIFICATION
3.1 BIM checker and assessment
The BIM checker is a tool that can be used for checking a BIM IFC model, before sharing with other actors and applications.
Its functions are as follows:
1. Checking that the IFC Syntax is OK 2. Checking that original BIM model structure, hierarchy and relations between objects
are preserved 3. Checking that the object types, GUID and properties are preserved 4. Checking that the quantities of the object are present 5. Checking that object location and orientation are preserved 6. Checking that the objects geometry envelop (BREP) is OK 7. Checking the materials 8. Notifying objects for raising potential issues (BCF – BIM Collaboration Format)
Figure 5: eveBIM checking tool.
3.2 Product Life Management (PLM)
The PLM provides a platform for managing the project data all along the life cycle of the project.
NB: Project Life Cycle means the management of the building data all along its project life, from initial programming, to design, construction and exploitation.
The functions for BIM and PLM coupling are as follows:
D3.1 ICT Services requirements specification 2014-12-18
Page 11 of 29
1. Defining roles and access rights of the different actors 2. Defining the general organization: phases, disciplines, types of buildings, zones, levels 3. Managing documents and BIM parts coding naming system based on the
organization 4. Storing documents and BIM parts and providing upload and download mechanisms
(WEB Services) 5. Managing the versioning of the documents and the BIM Parts 6. Managing notes and comments associated with documents, BIM parts and BIM
objects 7. Managing the workflow of the documents and the BIM Parts: upload, publish,
validate, upgrade 8. Providing mechanisms for linking documents stored in the PLM with the BIM objects 9. Providing email notification mechanisms
The ecobim result is the Lascom AEC BIM Edition product:
Figure 6: BIM Edition general process. (Phases refer to the French process)
The Lascom AEC BIM Edition solution, is based on the coupling of eveBIM for Viewer Checker for BIM/IFC exported models viewing and checking and the Lascom AEC PLM platform.
3.3 Detailed process
The detailed process from BIM to PLM and Life Cycle Analysis is presented below in Figure 7.
D3.1 ICT Services requirements specification 2014-12-18
Page 12 of 29
Figure 7: BIM – PLM – LCA process.
The process is the following:
1. BIM Cad tools (ex: Revit, ArchiCAD, Allplan...) can be used for creating BIM models and producing IFC files
2. eveBIM can be used for verifying the IFC model (checker), uploading to the PLM and also producing an XML model
3. The XML BIM contains the hierarchy of the objects with types, GUID, quantities and properties. This XML can be used by Excel for LCA analysis. It can also be used for creation of BIM Objects within the PLM platform.
4. Drawings, produced with the CAD tools but also technical or administrative documents can be uploaded to the PLM.
5. Some links can be established automatically (thanks to naming or identification mechanisms) or manually between the BIM Objects and the documents and drawings.
3.4 BIM objects on the PLM
It should be possible to create BIM Objects on the PLM.
They could be created manually automatically by using the PLM or importing an XML built from the IFC model.
The main objects can be the following:
Sites (IfcSite)
Buildings (IfcBuilding)
Storeys (IfcStorey)
Spaces (IfcSpace)
Objects Types (Object Type), built from Revit
D3.1 ICT Services requirements specification 2014-12-18
Page 13 of 29
Here is a possible organization of BIM objects on the PLM:
Project
Site
1..n Building
1..n Etage
1..n Reference (~ Revit family)
1..n Instance
1.. n Space (IfcSpace)
1..n System (ex: Structure, architecture, electricity…)
1..n sub-system (ex: courants forts, courants faibles…)
1..n Reference
1..n Instance
When exported using XML, the structure can be as followed:
- root
OwnerHistories
o 1..n : OwnerHistory
Id : string
User : string
Organisation : string
Application : string
BuildingElements
o 0..n : BuildingElement
Id : string
GUID : string
IfcType : string
Name : string
Description : string
OwnerId : string
ObjectType : string
0..n : Material
Name : string
Properties
0..n : Propertyset
o Name : String
o 0..n : PropertyType
Name : String
Value : (depending of IfcValue)
D3.1 ICT Services requirements specification 2014-12-18
Page 14 of 29
Structure
o Id : string
o Name : string
o 0..n : System or Group
0..n : Node
Name : string
Id : string
0..n : Node
o Name : string
o Id : string
o 0..n : Node (Site)
Id : string
Name : string
0..n Node (Building)
Id : string
Name : string
0..n : Node (Storey)
o Id : string
o Name : string
o 0..n : Node (BuildingElements)
Id : string
Name : string
o Node (Space)
Id : string
Name : string
Below is an example.
D3.1 ICT Services requirements specification 2014-12-18
Page 15 of 29
The process to build this XML is presented in Figure 8.
Figure 8: Process to build the XML.
“Main app” in Figure 8 means the main application. In our case, it is the eveBIM-Edition. The
export option could be found in the file menu | export | export XML.
Figure 9: The export option in the file menu.
D3.1 ICT Services requirements specification 2014-12-18
Page 16 of 29
The proxy model is a structure created for storing all the data in a tree. It is also used for
displaying a project, see Figure 10.
Figure 10: Proxy model used to display a project.
The system model is optional and only concerns models with groups, see Figure 11.
Figure 11: View of system model.
D3.1 ICT Services requirements specification 2014-12-18
Page 17 of 29
The model is the IFC loaded.
Figure 12: IFC loaded model.
3.5 Life Cycle Analysis and calculation of eco-indicators
Life Cycle Analysis can be done using a spreadsheet computed from the BIM Functions:
1. Producing bill of quantities in a spreadsheet from a list of selected objects in the BIM (quantities take off).
2. Providing Excel macro that can be adapted for linking BIM objects and recorded materials with external LCA database of materials and product data.
NB: by default, the ecobim Excel spreadsheet is provided with macros that can load an XML file exported from the BIM into excel sheets. These macros can be modified by the users for the connection to specific database or tools.
3. Calculating indicator results for selected environmental performance indicators.
D3.1 ICT Services requirements specification 2014-12-18
Page 18 of 29
Figure 13: Life Cycle Analysis and calculation of eco-indicators.
IFC provides the following quantities for main objects that can be used for LCA quantities calculation:
Ifc Entity Base Quantities Description
IfcWall NominalLength Total nominal (or average) length of the wall along the wall path. The exact definition and calculation rules depend on the method of measurement used.
NominalWidth Total nominal (or average) width (or thickness) of the wall perpendicular to the wall path. The exact definition and calculation rules depend on the method of measurement used.
NominalHeight Total nominal (or average) height of the wall along the wall path. The exact definition and calculation rules depend on the method of measurement used.
GrossFootprintArea Area of the wall as viewed by a ground floor view, not taking any wall modifications (like recesses) into account. It is also referred to as the foot print of the wall. The exact definition and calculation rules depend on the method of measurement used.
NetFootprintArea Area of the wall as viewed by a ground floor view, taking all wall modifications (like recesses) into account. It is also referred to as the foot print of the wall. The exact definition and calculation rules depend on the method of measurement used.
GrossSideArea Area of the wall as viewed by an elevation view of the middle plane of the wall. It does not take into account any wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
NetSideArea Area of the wall as viewed by an elevation view of the middle plane. It does take into account all wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
GrossSideAreaLeft Area of the wall as viewed by an elevation view of the left side (when viewed along the wall path orientation). It does not take into account any wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
NetSideAreaLeft Area of the wall as viewed by an elevation view of the left side (when viewed along the wall path orientation). It does take into account all wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
GrossSideAreaRight Area of the wall as viewed by an elevation view of the right side (when viewed along the wall path orientation). It does not take into account any wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
NetSideAreaRight Area of the wall as viewed by an elevation view of the right side (when viewed along the wall path orientation). It does take into account all wall modifications (such as openings). The exact definition and calculation rules depend on the method of measurement used.
D3.1 ICT Services requirements specification 2014-12-18
Page 19 of 29
GrossVolume Volume of the wall, without taking into account the openings and the connection geometry. The exact definition and calculation rules depend on the method of measurement used.
NetVolume Volume of the wall, after subtracting the openings and after considering the connection geometry. The exact definition and calculation rules depend on the method of measurement used.
IfcSlab NominalWidth Total nominal (or average) width (or thickness) of the slab. The exact definition and calculation rules depend on the method of measurement used.
Perimeter Perimeter measured along the outer boundaries of the slab. The exact definition and calculation rules depend on the method of measurement used.
GrossArea Total area of the extruded area of the slab. The exact definition and calculation rules depend on the method of measurement used.
NetArea Total area of the extruded area of the slab, taking into account possible slab openings. The exact definition and calculation rules depend on the method of measurement used.
GrossVolume Total gross volume of the slab, not taking into account possible openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
NetVolume Total net volume of the slab, taking into account possible openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
GrossWeight Total gross weight of the slab, not taking into account possible openings and recesses or projections. The exact definition and calculation rules depend on the method of measurement used.
NetWeight Total net weight of the slab, taking into account possible openings and recesses or projections. The exact definition and calculation rules depend on the method of measurement used.
IfcBeam NominalLength Total nominal length of the beam, not taking into account any cut-out's or other processing features.
CrossSectionArea Total area of the cross section (or profile) of the beam. The exact definition and calculation rules depend on the method of measurement used.
OuterSurfaceArea Total area of the extruded surfaces of the beam (not taking into account the end cap areas), normally generated as perimeter * length.
TotalSurfaceArea Total area of the beam, normally generated as perimeter * length + 2 * cross section area.
GrossVolume Total gross volume of the beam, not taking into account possible processing features (cut-out's, etc.) or openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
NetVolume Total net volume of the beam, taking into account possible processing features (cut-out's, etc.) or openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
GrossWeight Total gross weight of the beam without add-on parts, not taking into account possible processing features (cut-out's, etc.) or openings and recesses.
NetWeight Total net weight of the beam without add-on parts, taking into account possible processing features (cut-out's, etc.) or openings and recesses.
IfcColumn NominalLength Total nominal length of the column, not taking into account any cut-out's or other processing features.
CrossSectionArea Total area of the cross section (or profile) of the column. The exact definition and calculation rules depend on the method of measurement used.
OuterSurfaceArea Total area of the extruded surfaces of the column (not taking into account the end cap areas), normally generated as perimeter * length.
TotalSurfaceArea Total area of the column, normally generated as perimeter * length + 2 * cross section area.
GrossVolume Total gross volume of the column, not taking into account possible processing features (cut-out's, etc.) or openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
NetVolume Total net volume of the column, taking into account possible processing features (cut-out's, etc.) or openings and recesses. The exact definition and calculation rules depend on the method of measurement used.
GrossWeight Total gross weight of the column without add-on parts, not taking into account possible
D3.1 ICT Services requirements specification 2014-12-18
Page 20 of 29
processing features (cut-out's, etc.) or openings and recesses.
NetWeight Total net weight of the column without add-on parts, taking into account possible processing features (cut-out's, etc.) or openings and recesses.
IfcDoor Width Total outer width of the door lining. It should only be provided, if it is a rectangular door
Height Total outer height of the door lining. It should only be provided, if it is a rectangular door.
Perimeter Total perimeter of the outer lining of the door.
Area Total area of the outer lining of the door
IfcWindow Width Total outer width of the window lining. It should only be provided, if it is a rectangular window.
Height Total outer height of the window lining. It should only be provided, if it is a rectangular window
Perimeter Total perimeter of the outer lining of the window
Area Total area of the outer lining of the window
IfcPlate Width Nominal width (or thickness) of the plate. Only given, if the plate is prismatic (constant thickness).
Perimeter Perimeter measured along the outer boundaries of the plate. Only given, if the plate is prismatic (constant thickness).
GrossArea Total area of the extruded area of the plate. Openings, recesses and projections are not taken into account. Only given, if the plate is prismatic.
NetArea Total area of the extruded area of the plate. Openings and recesses are taken into account by subtraction, projections by addition. Only given, if the plate is prismatic.
GrossVolume Total gross volume of the plate. Openings, recesses, and projections are not taken into account.
NetVolume Total net volume of the plate. Openings and recesses are taken into account by subtraction, projections by addition.
GrossWeight Total gross weight of the plate without add-on parts, not taking into account possible processing features (cut-out's, etc.) or openings and recesses.
NetWeight Total net weight of the plate without add-on parts, taking into account possible processing features (cut-out's, etc.) or openings and recesses.
3.6 Loading BIM quantity take off into Excel
An Excel macro is provided for loading the XML BIM into Excel and filling automatically sheets with the BIM objects and quantities, see Figure 14 and 15.
D3.1 ICT Services requirements specification 2014-12-18
Page 21 of 29
Figure 14: XML BIM loading macro within Excel.
Figure 15: Example of an automatically filled sheet. This filling can be customised by modifying the Excel
macros (see Annex 1).
D3.1 ICT Services requirements specification 2014-12-18
Page 22 of 29
4. CONCLUSIONS AND RECOMMENDATIONS
Besides displaying the results of predefined ecobim indicators of the building, analysis and tracing of the origins with the aim of redesign and improvement may also be considered, to make the purpose of LCA manifold. For the later, a more detailed level of information (granularity) is required, enabling overall building indicators, distribution to life cycle stages, distribution to building elements, contribution of selected materials, etc. Ultimately the goal of the application of the results, the "message and interpretation" defines the requested level of details. This also applies to export interfaces to external calculation or evaluation tools. The intended application of the information defines the scope and details of the information - if demand and supply do not match, the desired analysis and interpretation may be disabled.
Typically, we need to quantify the masses or volumes (kg or m3) of materials in a highly disaggregated level. For the sake of interpretation, not only the total amounts for the building are required, but information about all building elements, including 3D geometric information (thickness of layers), as well as physical material information like material density. The information should originate from the BIM model, or else it would need to be complemented manually. Typically, the architectural model will contain only the main materials (e.g. carpet) but not the glue. Consequently, in most cases, the generated list of materials would need to be verified and completed. Further, specified materials like reinforced concrete may themselves consist of combinations of different materials. For the LCA, an indication of the reinforcement (kg/m3 resulting reinforced concrete) is required. Depending on how such information is provided (percentage or kg), the calculations need to respond accordingly. Especially for stud-walls, frame-construction, suspended ceilings and elevated floors, there are also ”punctual“ or ”linear“ elements that would not be ”visible“ in a section. C-c-distances between studs and beams, or average metrics per reference unit (e.g. 7 studs per m2 elevated floor, or 2,5 kg profile per m2 drywall) would be necessary complementary information.
It is essential that the information can be re-organized according to the following steps and structures of data-application. Often, several routes of calculation are possible, flexibility in provided data and structure allows to adapt provided information and to clearly identify lacking information than needs to be complemented from other sources. For each building element (walls, ceilings, etc.) or (groups of) materials (minerals, metals, concrete, carpet, etc.) partial results or contributions to the overall building indicators can be presented and analysed. Such sorting and filtering will need to be adaptable to the purpose of the interpretation, possibly decision making or comparison of options. Last but not least, some elements of information may be applied also for life cycle cost calculation, especially service life information. There is a link also to construction cost planning, while recognising that cost information is more related to building elements or components rather than to single materials or products.
From an application perspective, there are two possible routes: (1) to include a vast amount of additional information into the BIM datasets; (2) to specify links to further sources of complementary information. Regional validity or applicability currently indicates a vague preference for (2). Management of such data will become a crucial success factor.
D3.1 ICT Services requirements specification 2014-12-18
Page 23 of 29
ANNEXES
Annex 1. Excel macro sample
This annex presents the Excel macro example for filling sheets from the XML.
Option Explicit
'Type storey : used for keeping one storey data
Type Storey
name As String
GUID As String
id As String
End Type
_________________________________________________________________________________________
'Type structure : used to keep all the storey
Type structure
tab_storey() As Storey
last_elem As Long
End Type
_________________________________________________________________________________________
Function getLastEmptyLine()
'return the last empty line of the worksheet
Dim result As Long
Dim found As Boolean
found = False
result = 1
While Not found
If Cells(result, 1).Value = "" Then
found = True
Else
result = result + 1
End If
Wend
getLastEmptyLine = result
End Function
_________________________________________________________________________________________
Sub checkWallBaseQuantities(node As IXMLDOMNode, line As Long)
Dim i As Long
Dim j As Long
Dim current As IXMLDOMNode
D3.1 ICT Services requirements specification 2014-12-18
Page 24 of 29
For i = 0 To node.ChildNodes.Length - 1
If node.ChildNodes.Item(i).nodeName = "PropertySet" Then
If node.ChildNodes.Item(i).Attributes.getNamedItem("name").Text = "BaseQuantities" Then
Set current = node.ChildNodes.Item(i)
For j = 0 To current.ChildNodes.Length - 1
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "Width" Then Cells(line, 8).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "Height" Then Cells(line, 9).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "Length" Then Cells(line, 7).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "GrossSideArea" Then Cells(line, 12).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "NetSideArea" Then Cells(line, 13).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "GrossVolume" Then Cells(line, 14).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "NetVolume" Then Cells(line, 15).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "GrossFootprintArea" Then Cells(line, 10).Value = current.ChildNodes.Item(j).Text
If current.ChildNodes.Item(j).Attributes.getNamedItem("name").Text = "NetFootprintArea" Then Cells(line, 11).Value = current.ChildNodes.Item(j).Text
Next
End If
End If
Next
End Sub
_________________________________________________________________________________________
Sub redimtable(table() As Storey, newsize As Long)
'subfunction to resize a table without loosing data. change the dimension if needed
Dim i As Long
Dim tab_temp() As Storey
ReDim tab_temp(UBound(table()))
For i = 0 To UBound(table()) - 1
tab_temp(i) = table(i)
Next
ReDim table(newsize)
For i = 0 To UBound(tab_temp()) - 1
table(i) = tab_temp(i)
Next
End Sub
_________________________________________________________________________________________
D3.1 ICT Services requirements specification 2014-12-18
Page 25 of 29
Sub CheckIfcType(ByRef node As IXMLDOMNode, struct As structure)
Dim line As Long
Dim i As Long
Dim j As Long
If Left(node.Attributes.getNamedItem("IfcType").Text, 7) Like "IfcWall" Then
'adding the element in the IfcWall worksheet
Sheets("IfcWall").Activate
line = getLastEmptyLine
Cells(line, 1).Value = node.Attributes.getNamedItem("GUID").Text
Cells(line, 2).Value = node.Attributes.getNamedItem("Name").Text
If Not node.Attributes.getNamedItem("ObjectType") Is Nothing Then
Cells(line, 6).Value = node.Attributes.getNamedItem("ObjectType").Text
Else
Cells(line, 6).Value = "no data"
End If
Cells(line, 3).Value = node.Attributes.getNamedItem("Id").Text
For i = 0 To node.ChildNodes.Length - 1
If node.ChildNodes.Item(i).NodeType <> 3 Then
If node.ChildNodes.Item(i).nodeName = "Material" Then Cells(line, 5).Value = node.ChildNodes.Item(i).Attributes.getNamedItem("Name").Text
If node.ChildNodes.Item(i).nodeName = "Properties" Then checkWallBaseQuantities node.ChildNodes.Item(i), line
End If
Next
End If
If node.Attributes.getNamedItem("IfcType").Text = "IfcBuildingStorey" Then
'saving the storey datas for later
If struct.last_elem > 0 Then
redimtable struct.tab_storey, struct.last_elem + 1
Else
ReDim struct.tab_storey(1)
End If
struct.tab_storey(struct.last_elem).GUID = node.Attributes.getNamedItem("GUID").Text
struct.tab_storey(struct.last_elem).id = node.Attributes.getNamedItem("Id").Text
struct.tab_storey(struct.last_elem).name = node.Attributes.getNamedItem("Name").Text
struct.last_elem = struct.last_elem + 1
End If
End Sub
D3.1 ICT Services requirements specification 2014-12-18
Page 26 of 29
_________________________________________________________________________________________
Function checkwalls(id As Long, storeyElem As Storey)
Dim eof As Boolean
Dim line As Long
Dim result As Boolean
result = False
eof = False
line = 2
Sheets("IfcWall").Activate
While Not eof
If Cells(line, 3).Value = "" Then eof = True
If Cells(line, 3).Value = id Then
Cells(line, 3).Value = storeyElem.GUID
Cells(line, 4).Value = storeyElem.name
result = True
eof = True
Else
line = line + 1
End If
Wend
checkwalls = result
End Function
_________________________________________________________________________________________
Sub fillAllStorey(node As IXMLDOMNode, storeyElem As Storey)
Dim found As Boolean
Dim i As Long
For i = 0 To node.ChildNodes.Length - 1
fillAllStorey node.ChildNodes.Item(i), storeyElem
found = False
If Not node.ChildNodes.Item(i).Attributes.getNamedItem("id") Is Nothing Then
'retriving the element in the whole document
If Not found Then found = checkwalls(node.ChildNodes.Item(i).Attributes.getNamedItem("Id").Text, storeyElem)
End If
Next
End Sub
_________________________________________________________________________________________
Sub get_Storey(node As IXMLDOMNode, struct As structure)
Dim i As Long
Dim j As Long
For i = 0 To node.ChildNodes.Length - 1
D3.1 ICT Services requirements specification 2014-12-18
Page 27 of 29
For j = 0 To struct.last_elem
If Not node.ChildNodes.Item(i).Attributes.getNamedItem("Id") Is Nothing Then
If node.ChildNodes.Item(i).Attributes.getNamedItem("Id").Text = struct.tab_storey(j).id Then
fillAllStorey node.ChildNodes.Item(i), struct.tab_storey(j)
Else
get_Storey node.ChildNodes.Item(i), struct
End If
End If
Next
Next
End Sub
_________________________________________________________________________________________
Sub BrowseChildNodes(root_node As IXMLDOMNode, struct As structure)
'browse all the nodes from the xml
Dim i As Long
Dim currentNode As IXMLDOMNode
For i = 0 To root_node.ChildNodes.Length - 1
If root_node.ChildNodes.Item(i).NodeType <> 3 Then
Set currentNode = root_node.ChildNodes.Item(i)
If currentNode.nodeName = "IFCElement" Then CheckIfcType currentNode, struct
'retrieving the storey data from the structure
If currentNode.nodeName = "Structure" Then get_Storey currentNode, struct
BrowseChildNodes root_node.ChildNodes(i), struct
End If
Next
End Sub
_________________________________________________________________________________________
Sub BrowseXMLDocument(ByVal filename As String)
'
' BrowseXMLDocument Macro
' get all the IFC building elements and their properties from a XML file
'
' declarations
Dim xmlDoc As DOMDocument
Dim root As IXMLDOMElement
Dim name As String
Dim n As IXMLDOMElement
Dim struct As structure
D3.1 ICT Services requirements specification 2014-12-18
Page 28 of 29
' initialisation
Set xmlDoc = New DOMDocument
xmlDoc.async = False
If xmlDoc.Load(filename) Then
Set root = xmlDoc.DocumentElement
Else
MsgBox "Unable to load the file", vbCritical, "Attention"
Exit Sub
End If
' starting extracting datas
If Not root Is Nothing Then
struct.last_elem = 0
BrowseChildNodes root, struct
End If
End Sub
_________________________________________________________________________________________
Sub clearAllSheet()
'clear and rebuild the sheets
Sheets(Array("IfcWall")).Select
Cells.Select
Selection.ClearContents
Cells(1, 1).Value = "GUID"
Cells(1, 2).Value = "Name"
Cells(1, 3).Value = "Storey (GUID)"
Cells(1, 4).Value = "Storey name"
Cells(1, 5).Value = "IFC Material"
Cells(1, 6).Value = "Type"
Cells(1, 7).Value = "NominalLength"
Cells(1, 8).Value = "NominalWidth"
Cells(1, 9).Value = "NominalHeight"
Cells(1, 10).Value = "GrossFootprintArea"
Cells(1, 11).Value = "NetFootprintArea"
Cells(1, 12).Value = "GrossSideArea"
Cells(1, 13).Value = "NetSideArea"
Cells(1, 14).Value = "GrossVolume"
Cells(1, 15).Value = "NetVolume"
Sheets(Array("IfcDoor")).Select
D3.1 ICT Services requirements specification 2014-12-18
Page 29 of 29
End Sub
_________________________________________________________________________________________
Sub XMLReader()
Dim filename As String
filename = Application.GetOpenFilename
'MsgBox filename, vbCritical, "Attention"
If (Dir(filename) = "") Then
Exit Sub
End If
clearAllSheet
BrowseXMLDocument (filename)
Sheets("Accueil").Activate
Debug.Print filename
End Sub