IFC - What is IFC / Industry foundation classes

Post on 20-Jan-2015

2.139 views 1 download

description

IFC - What is IFC / Industry foundation classes

Transcript of IFC - What is IFC / Industry foundation classes

Léon van Berlo, BIM

Léon van Berlo

IFCIndustry Foundation Classes

Agenda

• Wat is IFC?• Wie zijn er mee bezig?• Hoe ziet het eruit?• Hoe zit het in elkaar?

Koffie!

• Wat zijn de problemen (en oplossingen)?• Waarom (toch) IFC?• (gratis) Software

• Huiswerk / Volgende week

PS: 61 slides :-S

Wat is IFC?

IFC geschiedenis

• Industry Foundation Classes• ‘Open’ standaard• Komt uit de ‘CAD-wereld’• Autodesk als driver• Uit de eerste dagen van STEP (1985)• Bedoeld als standaard voor ‘downstream applicaties’• Gebruikt als uitwisselstandaard• Laatste versie 2x3 TC1

Wat is IFC?

• 3D Geometrie (object gebaseerd)

MAAR OOK

• Een stukje semantiek• Relaties tussen objecten• Eigenschappen

Wie zijn er mee bezig?

Wie zijn er mee bezig?

Technisch:• IAI / BuildingSMART (www.iai-tech.org)

• AEC3 (Thomas Liebich)

• TNO (Peter Bonsma)

• Instituut voor BIM (ibim.nl)

Marketing:• BuildingSMART• BuildingSMART BeNeLux (NL)• Bouw informatie raad (NL)

Hoe ziet het eruit?

Hoe ziet het eruit?

www.ifcbrowser.com

Hoe ziet het eruit?

www.ifcbrowser.com

Hoe zit het in elkaar?

Het Schema

Voertuig GewichtKleur

Merk

Laadvermogen

Auto

Stationwagen

Het Schema

Voertuig GewichtKleur

Merk

Laadvermogen

DiameterWiel

Auto Autowiel

Stationwagen

Het Schema

Voertuig GewichtKleur

Merk

Laadvermogen

Diameter

WielenHeeftWielen

Wiel

Autowiel

1..n

Auto

Stationwagen

Het Schema

Voertuig GewichtKleur

Merk

Laadvermogen

Diameter

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

Het Schema

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

Diameter

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

inverse van HeeftWielen.Voertuig

Het Schema

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

Diameter

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

EIS: Voertuig.Wielen.Wielen erft van entity Autowiel

Het Schema

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

inverse van HeeftWielen.Wielen

Het Schema

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

EIS: Wiel.BehoortTot.Voertuig erft van entity Auto

Het Schema

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

Het Schema (alternatief voor de eenvoud )

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielVoertuigHeeftWiel

Wiel

Autowiel

1..1

1..1

Auto

Stationwagen

Het SchemaDe Wand

IfcRoot

IfcProduct

IfcObject

IfcObjectDefinition

IfcElement

IfcWall

IfcBuildingElement

IfcWallStandardCase

GlobalIdOwnerHistoryNameDescription

INV HasAssignmentsINV IsDecomposedByINV DecomposesINV HasAssociations

ObjectTypeINV IsDefinedBy

ObjectPlacementRepresentationINV ReferencedBy

TagINV FillsVoidsINV ConnectedToINV HasCoveringsINV HasProjectionsINV HasStructuralMemberINV ReferencedInStructureINV HasPortsINV HasOpeningsINV IsConnectionRealizationINV ProvidesBoundariesINV ConnectedFromINV ContainedInStructure

Het SchemaHet Raam

IfcRoot

IfcProduct

IfcObject

IfcObjectDefinition

IfcElement

IfcWall

IfcBuildingElement

IfcWallStandardCase

GlobalIdOwnerHistoryNameDescription

INV HasAssignmentsINV IsDecomposedByINV DecomposesINV HasAssociations

ObjectTypeINV IsDefinedBy

ObjectPlacementRepresentationINV ReferencedBy

TagINV FillsVoidsINV ConnectedToINV HasCoveringsINV HasProjectionsINV HasStructuralMemberINV ReferencedInStructureINV HasPortsINV HasOpeningsINV IsConnectionRealizationINV ProvidesBoundariesINV ConnectedFromINV ContainedInStructure

IfcWindow OverallHeightOverallWidth

De Instantie

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielenVoertuigHeeftWielen

Wiel

Autowiel

1..n

1..1

Auto

Stationwagen

#100 = STATIONWAGEN(1120, 'Rood', 'Mazda', '500');#110 = AUTOWIEL(28);#111 = AUTOWIEL(28);#112 = AUTOWIEL(28);#113 = AUTOWIEL(28);#120 = HEEFTWIELEN((#110, #111, #112, #113), #100);

De Instantie (alternatief)

Voertuig GewichtKleurINV Wielen

Merk

Laadvermogen

DiameterINV BehoortTot

WielVoertuigHeeftWiel

Wiel

Autowiel

1..1

1..1

Auto

Stationwagen

#100 = STATIONWAGEN(1120, 'Rood', 'Mazda', '500');#110 = AUTOWIEL(28);#111 = AUTOWIEL(28);#112 = AUTOWIEL(28);#113 = AUTOWIEL(28);#120 = HEEFTWIEL(#110, #100);#121 = HEEFTWIEL(#111, #100);#122 = HEEFTWIEL(#112, #100);#123 = HEEFTWIEL(#113, #100);

Een IFC file (in Wordpad geopend)

ISO-10303-21;HEADER;FILE_DESCRIPTION (('IFC Engine Kernal version 1.10 beta release x generated IFC file.'), '2;1');FILE_NAME ('IFC Engine DLL test', '2006-03-31T16:51:19', ('Architect'), ('Building Designer

Office'), 'test', 'Windows System', 'The authorising person.');FILE_SCHEMA (('IFC2X3'));ENDSEC;DATA;#1 = IFCAXIS2PLACEMENT3D(#29, $, $);#4 = IFCOWNERHISTORY(#20, #21, $, .ADDED., $, $, $, 1225290822);#5 = IFCPROJECT('0i5rqjgpv9uRr3KG5O79Fj', #4, 'CIB_Weimar', $, $, $, $, (#11, #33), #40);#11 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.000E-5, #1, $); .

. .

#9260 = IFCMATERIALDEFINITIONREPRESENTATION($, $, (#9255), #9216);#9262 = IFCMATERIALLAYERSETUSAGE(#9214, .AXIS2., .POSITIVE., 0.);#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);#9283 = IFCPROPERTYSINGLEVALUE('Reference', $, IFCDESCRIPTIVEMEASURE('0uZ$pI7hzBvPtYLQwscFN2'), $); .

. .

De Instantie (in Wordpad geopend)

ISO-10303-21;HEADER;FILE_DESCRIPTION (('IFC Engine Kernal version 1.10 beta release x generated IFC file.'), '2;1');FILE_NAME ('IFC Engine DLL test', '2006-03-31T16:51:19', ('Architect'), ('Building Designer

Office'), 'test', 'Windows System', 'The authorising person.');FILE_SCHEMA (('IFC2X3'));ENDSEC;DATA;#1 = IFCAXIS2PLACEMENT3D(#29, $, $);#4 = IFCOWNERHISTORY(#20, #21, $, .ADDED., $, $, $, 1225290822);#5 = IFCPROJECT('0i5rqjgpv9uRr3KG5O79Fj', #4, 'CIB_Weimar', $, $, $, $, (#11, #33), #40);#11 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.000E-5, #1, $); .

. .

#9260 = IFCMATERIALDEFINITIONREPRESENTATION($, $, (#9255), #9216);#9262 = IFCMATERIALLAYERSETUSAGE(#9214, .AXIS2., .POSITIVE., 0.);#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);#9283 = IFCPROPERTYSINGLEVALUE('Reference', $, IFCDESCRIPTIVEMEASURE('0uZ$pI7hzBvPtYLQwscFN2'), $); .

. .

De Instantie (in een technische viewer)

IfcRoot

IfcProduct

IfcObject

IfcObjectDefinition

IfcElement

IfcWall

IfcBuildingElement

IfcWallStandardCase

GlobalIdOwnerHistoryNameDescription

INV HasAssignmentsINV IsDecomposedByINV DecomposesINV HasAssociations

ObjectTypeINV IsDefinedBy

ObjectPlacementRepresentationINV ReferencedBy

TagINV FillsVoidsINV ConnectedToINV HasCoveringsINV HasProjectionsINV HasStructuralMemberINV ReferencedInStructureINV HasPortsINV HasOpeningsINV IsConnectionRealizationINV ProvidesBoundariesINV ConnectedFromINV ContainedInStructure

De Instantie

#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);

De Instantie

#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);

De Instantie

#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);

De Instantie

#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $); .

#9213 = IFCRELASSOCIATESMATERIAL('0$D5xwjuH6sx4mdmLAJf9A', #4, $, $, (#9264), #9262);

#9264 = IFCWALLSTANDARDCASE('0uZ$pI7hzBvPtYLQwscFN2', #4, $, $, $, #9147, #9150, $);

De Instantie (de as van de wand)

De Instantie (de as van de wand)

Eigenschappen

• Pset’s• Vast gedefineerde propertiesets

• Propertysets• Vrij te definieren• Vast te leggen met IFC (volgende week)

Wat zijn de problemen (en oplossingen)?

Voorbeeld Issue 1

• Global Unique ID (guid’s)• “49IbAKeGX249IbBNlUyvpd”

• Ondersteunde situaties (intentie)• Import IFC – Export IFC• Import IFC – opslag eigen – openen eigen – Export IFC• Import IFC – aanpassingen (.. eigen opslag..) – Export IFC

• Probleem• Sommige objecten (of ge-objectiviseerde relaties) bestaan

niet in een IFC ondersteunend pakket

Voorbeeld Issue 2

• SpaceBoundaries => oppervlakten (polygonen)

Space

Voorbeeld Issue 2

• SpaceBoundaries => oppervlakten NU

Space II

Space I

Voorbeeld Issue 2

• SpaceBoundaries => oppervlakten GEWENST• Opgelost in 2x4 en sommige aplicaties zoals Archicad (2nd

order spacebounderies)

Space II

Space I

Voorbeeld Issue 2

• SpaceBoundaries => locatie• Afhankelijk van regelgeving in europa

• Nu in IFC: alleen binnenkant en buitenkant vd wand• Gewenst in NL: hart van de wand, maar dit is in een CAD

pakket niet logisch (en de vraag is of je dit mag verwachten)

Space II

Space I

Oplossingen ?

• IFD (International Framework for Dictionaries)• Linken van properties (delen van properties tussen deur en raam)

• IDM (Information Delivery Manual)• Procesafspraken (VISI systematiek)

• MVD (Model View Definitions)• Subsets van IFC (beperking van het schema; weglaten van objecten en toevoegen

van restricties)

• v.b.: “Elke wand heeft 2nd order spaceboundaries”• Pset’s

• Voorgedefinieerde property-set (Pset en Propertyset is dus anders!)• IFD in het klein (ín het schema)

• v.b.: lichttoetreding • Cyclus van ongeveer 4 jaar (versie refresh)

• Certification

Voorbeeld Issue 3: Software implementaties

• Betrouwbaarheid• Betrouwbaarheid• Betrouwbaarheid

Open standaarden ‘strategie’

Maar niet (alleen) software heeft ‘schuld’

Meer issue voorbeelden:• Afronding (float)

• Opening in een wand (moet breder zijn dan de wand)• Gekromde wand, gekromde opening (facetering van ronding is nooit gelijk)• Heel ouderwetse geometrie kernel (voldoet eigenlijk niet meer) in het IFC schema• Politiek rond aanpassingen• Structuur en fileformaat heel anders dan cad-pakketten

• Veel tijd nodig voor export en import• Veel manuren om het te implementeren

• Heel lastig te ‘slicen’ (netwerkstructuur) • Opdelen kan niet omdat je dan links breekt

• Geen zolderkamerprogrammeurs voor ouderwetse express taal• Gevolg: markt dominantie door een paar partijen

• Betrouwbaarheid (in zichzelf niet de mogelijkheid om simpel te achterhalen welke applicaties wel of niet goed ondersteunen)

• Moeilijk achterhalen of iemand model goed importeert (verlies van data!!)• Dezelfde info op verschillende manieren op te slaan (b.v. veel mogelijkheden om éen wand

op te slaan die je allemaal moet ondersteunen)• Wallstandardcase, boundingbox, extruded polygon, brep, enz.. (stuk of 20) en

combinaties van deze dingen….• Geen enkele applicatie van de 5 groten slaat een opening en/in een muur hetzelfde op!

(en dat alleen voor de basiselementen!)• IFC wordt nu gebruikt voor uitwisseling terwijl het gemaakt/bedoeld is voor downstream

• Kortom: Onbetrouwbaarheid zit ín het schema• Geen mogelijkheden tot controle van import (20e methode wordt niet ondersteund)• Schema staat redundante informatie toe (is niet eenduidig)• Schema is niet strikt genoeg (geeft te veel vrijheid)

Waarom (toch) IFC?

Waarom dan toch IFC

• Schaalbaarheid

• Markt integratie

• Support vanuit overheden

• (bijna) geen alternatief

• Omdat het in veel situaties HEEL GOED werkt• Het doet niet wat de reclame beloofd;• Maar het werkt perfect voor de dingen waar het voor werkt!

(gratis) Software

GRATIS Software

• IFC Viewer www.ifcbrowser.com• IFC Modelserver www.bimserver.org

• FZKViewer

• Nemetschek IFC Viewer www.nemetschek.com/ifc

• DDS Viewer ftp://ftp.dds.no/pub/install/IfcViewer/

• Compleet overzicht:

http://www.ifcwiki.org/index.php/Free_Software

Gecertificeerde software

• ‘De 5 groten’• Allplan• Archicad• Autocad / Revit• Bentley• Tekla

• Volledige lijst:http://www.ifcwiki.org/index.php/IFC_Certified_Software

Huiswerk

Huiswerk

1. Exporteer model naar IFC2. Evalueer structuur met IFC viewer

• Gebruik stabiele versie 1.10 http://www.ifcbrowser.com/downloads/IFC%20Engine%20Viewer.exe

• Evalueer ook properties op level 4 en 5 (knopjes bovenin)• Kijk wat er over blijft / verloren gaat

3. Importeer IFC in eigen (of ander) CAD/BIM-software • Kijk wat er over blijft / verloren gaat• Doe een aanpassing en exporteer opnieuw

4. Evalueer (met ifc viewer) de verschillen tussen eerste IFC en nieuwe IFC file• Zijn er meer verschillen dan alleen je eigen aanpassing?

Hoe komt dit?

Kijk ook eens naar:

• Algemeen: http://www.ifcwiki.org

• Veel gestelde vragen: http://www.iai-tech.org/services/faq

• Schema: http://www.iai-tech.org/ifc/IFC2x3/TC1/html/index.htm

• Technisch: http://www.iai-tech.org/

Volgende week

• IFD• ‘Uitbreiding’ van IFC

• Propertiesets / Properties (knopje 4 en 5 in de IFC Viewer)

• Toevoegen van objectklasses

Leon.vanBerlo@bimserver.orgMSN: berlotti@hotmail.com

Twitter: berlottiSkype: berlotti

Jabber / G-talk: berlotti@jabber.org