Technical University of Munich Dokumentation...Technical University of Munich Julian Amann |...
Transcript of Technical University of Munich Dokumentation...Technical University of Munich Julian Amann |...
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/
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
2Julian Amann | Workshop Softwareimplementierung
Beispiel: Vertical Alignment
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
3Julian Amann | Workshop Softwareimplementierung
Beispiel: Horizontal Alignment
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
4Julian Amann | Workshop Softwareimplementierung
Beispiel: Terrain Surface
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
5Julian Amann | Workshop Softwareimplementierung
Beispiel: Terrain and Alignment
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
6Julian Amann | Workshop Softwareimplementierung
Beispiel: Linear Placement
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
7Julian Amann | Workshop Softwareimplementierung
Beispiel: Bloss Curve
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
8Julian Amann | Workshop Softwareimplementierung
Beispiel: Sectioned Solid
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
9Julian Amann | Workshop Softwareimplementierung
IfcDistanceExpression
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
10Julian Amann | Workshop Softwareimplementierung
Constructivity http://www.constructivity.com/
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
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
12Julian Amann | Workshop Softwareimplementierung
Schemaebene
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
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#?
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
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
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
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
18Julian Amann | Workshop Softwareimplementierung
Beispiel: Sectioned Solid
Chair of Computational Modeling and SimulationDepartment of Civil, Geo and Environmental EngineeringTechnical University of Munich
19Julian Amann | Workshop Softwareimplementierung