Upload
leon-berlo
View
2.151
Download
1
Embed Size (px)
DESCRIPTION
IFC - What is IFC / Industry foundation classes
Citation preview
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
[email protected]: [email protected]
Twitter: berlottiSkype: berlotti
Jabber / G-talk: [email protected]