technical university of munich dokumentation...technical university of munich julian amann |...

20
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/

Upload: others

Post on 23-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

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

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

20Julian Amann | Workshop Softwareimplementierung

Current Implementations: IFC Engine