Advertisement

IFC File Model Understanding -BHTech Dec2017

Supporting clients to grow their business with digital economy by IT services. at Bac Ha Software Ltd. Co. (BHSoft)
Jan. 31, 2018
Advertisement

More Related Content

Advertisement

IFC File Model Understanding -BHTech Dec2017

  1. Present a IFC model on a Webpage Internal Workshop of the BIM Software & 3D Modelling Team BHTech – December 2017
  2. Content • What is IFC? • IFC Data Model • How to acquire all information of components (floors, walls, doors, windows, etc) from an IFC file?
  3. What is IFC • Industry Foundation Classes that provide Information For Constructions • IFC2x3: http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ • IFC4x1: http://www.buildingsmart-tech.org/ifc/IFC4x1/final/html/
  4. Content of one IFC file #94= IFCAXIS2PLACEMENT3D(#6,$,$); #95= IFCDIRECTION((6.12303176911189E-17,1.)); #97= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.01,#94,#95); #100= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#97,$,.GRAPH_VIEW.,$); #102= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #103= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #104= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('FootPrint','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #105= IFCPROJECT('1jKNVHFi905QRLwH307ivT',#41,’Project Number',$,$,’Project Number’,’Project Description',(#97),#92); #111= IFCPOSTALADDRESS($,$,$,$,(‘Flr.6 Technosoft Bld. Duy Tan Str.'),$,'','',‘’,’Vietnam'); #115= IFCBUILDING('1jKNVHFi905QRLwH307ivS',#41,'',$,$,#32,$,'',.ELEMENT.,$,$,#111); #121= IFCAXIS2PLACEMENT3D(#6,$,$); #122= IFCLOCALPLACEMENT(#32,#121); #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q',#41,'9FL',$,$,#122,$,'9FL',.ELEMENT.,0.); #126= IFCCARTESIANPOINT((0.,0.,4000.)); #128= IFCAXIS2PLACEMENT3D(#126,$,$); #129= IFCLOCALPLACEMENT(#32,#128); #130= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uiC2',#41,'10FL',$,$,#129,$,'10FL',.ELEMENT.,4000.); #132= IFCCARTESIANPOINT((0.,0.,8000.)); #134= IFCAXIS2PLACEMENT3D(#132,$,$); #135= IFCLOCALPLACEMENT(#32,#134);
  5. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.);
  6. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); IfcId
  7. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); IfcEntity
  8. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); IfcRoot.GlobalId: IfcLabel
  9. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); IfcId of IfcOwnerHistory Entity
  10. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); IfcId of IfcOwnerHistory Entity #41= IFCOWNERHISTORY(#38,#5,$,.NOCHANGE.,$,$,$,1510725918); #38= IFCPERSONANDORGANIZATION(#35,#37,$); #37= IFCORGANIZATION($,'','',$,$); #35= IFCPERSON($,'','anh_tvv',$,$,$,$,$); #5= IFCAPPLICATION(#1,'2018','Autodesk Revit 2018 (ENG)','Revit’); #1= IFCORGANIZATION($,'Autodesk Revit 2018 (ENG)',$,$,$);
  11. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.);
  12. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Entity’s name: IfcLabel
  13. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Description
  14. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Object Type
  15. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Object Placement
  16. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Representation
  17. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Long name of SpatialStructureElement
  18. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Entity’s name: IfcLabel Long name of SpatialStructureElement
  19. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Composition Type: Element Composition Enum
  20. Example.ifc #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q', #41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.); Elevation: IfcLengthMeasure
  21. Example.ifc (IFC2x3) • Component: The 9th floor • Type: IfcBuildingStorey • Properties: • GlobalId: IfcGloballyUniqueId • OwnerHistory: IfcOwnerHistory • Name: IfcLabel • Description: IfcText • ObjectType: IfcLabel • ObjectPlacement: IfcObjectPlacement • Representation: IfcProductRepresentation • LongName: IfcLabel • CompositionType: IfcElementCompositionEnum • Elevation: IfcLengthMeasure IfcRoot IfcObject IfcProduct IfcSpatialStructureElement IfcBuildingStorey #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q',#41,'9FL',$,$,#122,$,'9FL’, .ELEMENT.,0.);
  22. Example.ifc (IFC2x3) • Component: Building • Type: IfcBuilding • Properties: • IfcRoot: (GlobalId, OwnerHistory, Name, Description) • ObjectType: IfcLabel • IfcProduct (ObjectPlacement, Representation) • IfcSpatialStructureElement (LongName, CompositionType) • ElevationOfRefHeight: IfcLengthMeasure • ElevationOfTerrain: IfcLengthMeasure • BuildingAddress: IfcPostalAddress IfcBuilding #115= IFCBUILDING('1jKNVHFi905QRLwH307ivS',#41,'',$,$,#32,$,'',.ELEMENT.,$,$,#111);
  23. Example.IFC (IFC2x3) • Component: Wall • Type: IfcWall • Properties: • IfcRoot (GlobalId, OwnerHistory, Name, Description) • IfcObject (ObjectType) • IfcProduct (ObjectPlacement, Reprsentation) • IfcElement (Tag: IfcIdentifier) #3115= IFCWALL('3geKXEO4D0pO9vrIZ3l37L’, #41, ‘Wall:125:318719:125:318719 : Wall:125:318719:136012’, $, ‘Wall:125:318719: Wall:125:318719:136010’, #3093, #3113, '136012');
  24. IFC Data Model class IfcBuilding { IfcBuilding(globalId, ownerHistoryId, name, description, objectTypeId, objectPlacementId, representationId, longName, compositionType, elevationOfRefHeight, elevationOfTerrain, buildingAddressId) { // IfcRoot entity this.globalId = globalId; this.ownerHistory.id = ownerHistoryId; this.name = name; this.description = description; // IfcObjectType entity this.object = {}; this.object.objectType.id = objectTypeId; // IfcProduct entity this.product = {}; this.product.objectPlacement.id = objectPlacementId; this.product.representation.id = representationId; // IfcSpatialStructureElement entity this.spatialStructureElement = {}; this.spatialStructureElement.longName = longName; this.spatialStructureElement.compositionType = compositionType; // These 3 entities belong to IfcBuilding themselves // IfcLengthMeasure this.elevationOfRefHeight = elevationOfRefHeight; this.elevationOfTerrain = elevationOfTerrain; // IfcPostalAddress this.buildingAddress.id = buildingAddressId; } }
  25. How one IFC file looks like ISO-10303-21; HEADER; FILE_DESCRIPTION(('ViewDefinition [CoordinationView_V2.0]'),'2;1'); FILE_NAME(‘EXAMPLE','2017-11-27T10:11:23',(''),(''),'The EXPRESS Data Manager Version 5.02.0100.07 : 28 Aug 2013','20170223_1515(x64) - Exporter 18.0.0.420 - Alternate UI 18.0.0.420',''); FILE_SCHEMA(('IFC2X3')); ENDSEC; Header
  26. How one IFC file looks like #94= IFCAXIS2PLACEMENT3D(#6,$,$); #95= IFCDIRECTION((6.12303176911189E-17,1.)); #97= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.01,#94,#95); #100= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#97,$,.GRAPH_VIEW.,$); #102= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #103= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #104= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('FootPrint','Model',*,*,*,*,#97,$,.MODEL_VIEW.,$); #105= IFCPROJECT('1jKNVHFi905QRLwH307ivT',#41,’Project Number',$,$,’Project Number’,’Project Desciption',(#97),#92); #111= IFCPOSTALADDRESS($,$,$,$,(‘Flr.6 Technosoft Bld. Duy Tan Str.'),$,'','',‘’,’Vietnam'); #115= IFCBUILDING('1jKNVHFi905QRLwH307ivS',#41,'',$,$,#32,$,'',.ELEMENT.,$,$,#111); #121= IFCAXIS2PLACEMENT3D(#6,$,$); #122= IFCLOCALPLACEMENT(#32,#121); #124= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uJ2Q',#41,'9FL',$,$,#122,$,'9FL',.ELEMENT.,0.); #126= IFCCARTESIANPOINT((0.,0.,4000.)); #128= IFCAXIS2PLACEMENT3D(#126,$,$); #129= IFCLOCALPLACEMENT(#32,#128); #130= IFCBUILDINGSTOREY('1jKNVHFi905QRLwH0$uiC2',#41,'10FL',$,$,#129,$,'10FL',.ELEMENT.,4000.); #132= IFCCARTESIANPOINT((0.,0.,8000.)); #134= IFCAXIS2PLACEMENT3D(#132,$,$); #135= IFCLOCALPLACEMENT(#32,#134); Data…
  27. How one IFC file looks like #51355= IFCCARTESIANPOINT((-1124.,-533.499999999997)); #51357= IFCCARTESIANPOINT((1086.,-533.499999999997)); #51359= IFCCARTESIANPOINT((1086.,-457.500000000007)); #51361= IFCCARTESIANPOINT((-1048.,-457.500000000007)); #51363= IFCCARTESIANPOINT((-1048.,457.500000000002)); #51365= IFCCARTESIANPOINT((1086.,457.500000000002)); #51367= IFCCARTESIANPOINT((1086.,533.500000000003)); #51369= IFCCARTESIANPOINT((-1124.,533.500000000003)); #51371= IFCPOLYLINE((#51355,#51357,#51359,#51361,#51363,#51365,#51367,#51369,#51355)); #51373= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'0915 x 2134mm',#51371); #51374= IFCCARTESIANPOINT((457.500000000003,-25.,1086.)); #51376= IFCAXIS2PLACEMENT3D(#51374,#15,#21); #51377= IFCEXTRUDEDAREASOLID(#51373,#51376,#19,25.0000000000056); #51378= IFCCARTESIANPOINT((-5.32907051820075E-15,0.)); #51380= IFCAXIS2PLACEMENT2D(#51378,#23); #51381= IFCRECTANGLEPROFILEDEF(.AREA.,'0915 x 2134mm',#51380,51.,915.); #51382= IFCCARTESIANPOINT((457.500000000001,110.,0.)); #51384= IFCAXIS2PLACEMENT3D(#51382,#19,#15); #51385= IFCEXTRUDEDAREASOLID(#51381,#51384,#19,2134.); #51386= IFCSTYLEDITEM(#51354,(#35043),$); #51389= IFCSTYLEDITEM(#51377,(#35043),$); #51392= IFCSTYLEDITEM(#51385,(#35055),$); #51395= IFCSHAPEREPRESENTATION(#102,'Body','SweptSolid',(#51354,#51377,#51385)); …Data
  28. Acquire properties and geometry data
  29. What should we start with? • IFCRELAGGREGATES entities • Projects • Buildings • BuildingStoreys • Sites • Other entities (Stairs, Walls, Curtain Walls, etc) • IFCRELDEFINESBYPROPERTIES • IFCRELCONTAINEDINSPATIALSTRUCTURE • IFCRELASSIGNSTOGROUP
  30. To give permission for just part of things • Isolate elements • Without breaking the file structure.
  31. To give permission for just part of things Filter elements Search all elements by keywords/ values, such as Family type, Object type, Name, Properties, etc. Filter all relationships Search all elements which contain the ifcId of the filtered elements, and all the elements that contain the container elements’ ifdIds Add extra information Other information such as Organization, Person, Application, Site, etc Create new IFC file Share the file to groups or users in the organization
  32. Some terms • IFC Parser / Reader • IFC Viewer / Publisher - IFC Explorer • BIM / CIM
  33. End of the presentation Contact BIM Software & 3D Modelling Team, BHTech www.bhtech.com.vn
Advertisement