Top Banner
Chair of Computational Modeling and Simulation Department of Civil, Geo and Environmental Engineering Technical University of Munich 1 Julian Amann | Workshop Softwareimplementierung Dokumentation http ://www.buildingsmart-tech.org/ifc/review/IFC4x1/rc3/html/
20

Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Jun 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

1Julian Amann | Workshop Softwareimplementierung

Dokumentation http://www.buildingsmart-tech.org/ifc/review/IFC4x1/rc3/html/

Page 2: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

2Julian Amann | Workshop Softwareimplementierung

Beispiel: Vertical Alignment

Page 3: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

3Julian Amann | Workshop Softwareimplementierung

Beispiel: Horizontal Alignment

Page 4: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

4Julian Amann | Workshop Softwareimplementierung

Beispiel: Terrain Surface

Page 5: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

5Julian Amann | Workshop Softwareimplementierung

Beispiel: Terrain and Alignment

Page 6: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

6Julian Amann | Workshop Softwareimplementierung

Beispiel: Linear Placement

Page 7: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

7Julian Amann | Workshop Softwareimplementierung

Beispiel: Bloss Curve

Page 8: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

8Julian Amann | Workshop Softwareimplementierung

Beispiel: Sectioned Solid

Page 9: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

9Julian Amann | Workshop Softwareimplementierung

IfcDistanceExpression

Page 10: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

10Julian Amann | Workshop Softwareimplementierung

Constructivity http://www.constructivity.com/

Page 11: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

11Julian Amann | Workshop Softwareimplementierung

TUM Open Infra Platform https://www.cms.bgu.tum.de/oip

Page 12: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

12Julian Amann | Workshop Softwareimplementierung

Schemaebene

Page 13: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

ISO-10303-21;

HEADER;

FILE_DESCRIPTION(('IFC4X1'),'2;1');

FILE_NAME('OIP Revision 1837/E.1.2 Horizontal Alignment/ex-horizontal-alignment-ifcalignment1x1.ifc','2017-02-

23T17:38:52',(''),('',''),'','IfcAlignment','');

FILE_SCHEMA(('IFC4X1'));

ENDSEC;

DATA;

#1=IFCPERSON($,'User (FamilyName)','User (GivenName)',$,$,$,$,$);

#2=IFCORGANIZATION($,'TUM','Chair of Computational Modeling and Simulation',$,$);

#3=IFCAPPLICATION(#2,'RTM','TUM Open Infra Platform 2017','OIP');

#4=IFCPERSONANDORGANIZATION(#1,#2,$);

#5=IFCOWNERHISTORY(#4,#3,$,.NOCHANGE.,$,$,$,0);

#6=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);

#7=IFCPROJECT('2oY61PEWb0PB1y548AIw$H',#5,'IfcAlignment Project',$,$,$,$,(#22),#8);

#8=IFCUNITASSIGNMENT((#9,#10,#11,#12));

#9=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);

#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);

#11=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);

#12=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);

#13=IFCCARTESIANPOINT((0.,0.,0.));

#14=IFCAXIS2PLACEMENT3D(#13,$,$);

#15=IFCLOCALPLACEMENT($,#14);

#16=IFCSITE('0sNhPbfuX3bPR0sacqhYay',$,'Terrain surface','My

description.',$,#15,$,$,$,$,$,0.00000000000000000000,$,$);

13Julian Amann | Workshop Softwareimplementierung

Instanzebene

Page 14: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

14Julian Amann | Workshop Softwareimplementierung

Early Binding

Parser

MetaModel

GeneratorClear text encoding/ISO 10303-21

EXPRESS Schema/ISO 10303-11

Read/Write

C++11 Early Binding/ISO/IEC 14882:2011

Flex/Bison

High level description

Echo/C++/Future: C#?

Page 15: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

// create a model

ifc_model = shared_ptr<Ifc4Model>(new Ifc4Model());

// ...

// Erzeuge einen Punkt mit den Koordinaten (9, 10):

shared_ptr<IfcCartesianPoint> pnt = std::make_shared<IfcCartesianPoint>(id++);

ifc_model->insertEntity(pnt); // Füge den Punkt in des Modell ein

// setzte Koordinaten des Punktes

pnt->m_Coordinates.push_back( std::make_shared<IfcLengthMeasure>( 9.0 ));

pnt->m_Coordinates.push_back( std::make_shared<IfcLengthMeasure>( 10.0 ));

// ...

// schreibe die Step Datei

shared_ptr<IfcStepWriter> step_writer = shared_ptr<IfcStepWriter>(new

IfcStepWriter());

std::stringstream stream;

stream.precision(20);

step_writer->writeStream( stream, ifc_model );

std::ofstream textdatei("MeineDatei.ifc");

textdatei << stream.str().c_str();

15Julian Amann | Workshop Softwareimplementierung

Early Binding

Quelle: Building Information Modeling, BIM-Programmierwerkzeuge ISBN: 978-3-658-05605-6

Page 16: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

• Standard-Data-Access-Interface (SDAI)

SdaiSession session = sdaiOpenSession(); // öffne eine neue Session

// öffne ein Repository

SdaiRepo repository = sdaiOpenRepositoryBN (session, "MeineDatei.ifc");

int ifcModelId = sdaiCreateModelBN(0, "MyModelName", "IFC4.exp"); // erzeuge ein

Modell

// erzeuge einen Punkt

int ifcCartesianPointId = sdaiCreateInstanceBN(ifcModelId, "IfcCartesianPoint");

int ifcCoordinatesId = sdaiCreateAggrBN(ifcCartesianPointId, "Coordinates");

sdaiAdd(ifcCoordinatesId, sdaiREAL, 9.0);

sdaiAdd(ifcCoordinatesId, sdaiREAL, 10.0);

sdaiSaveChanges(ifcModelId);

sdaiCloseRepository(repository); // schließe Repository

sdaiCloseSession (session); // schließe Session

16Julian Amann | Workshop Softwareimplementierung

Late Binding

Quelle: Building Information Modeling, BIM-Programmierwerkzeuge ISBN: 978-3-658-05605-6

Page 17: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

17Julian Amann | Workshop Softwareimplementierung

Übersicht über Bibliotheken

Quelle: Building Information Modeling, BIM-Programmierwerkzeuge ISBN: 978-3-658-05605-6

Page 18: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

18Julian Amann | Workshop Softwareimplementierung

Beispiel: Sectioned Solid

Page 19: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

19Julian Amann | Workshop Softwareimplementierung

Page 20: Technical University of Munich Dokumentation...Technical University of Munich Julian Amann | Workshop Softwareimplementierung 14 Early Binding Parser Meta Model Clear text encoding/ISO

Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich

20Julian Amann | Workshop Softwareimplementierung

Current Implementations: IFC Engine