Wir optimieren unsere Workflows hier im Büro auf ifc. Daher waren wir sehr erfreut über den seit Allplan 2016 möglichen export von strutural IFC (analytische IFC). Ich habe diese Woche mal Zeit gefunden mir das etwas genauer anszusehen, und war erstaunt, dass alle 3 Programme die mir zur Verfügung stehen und analytische IFC importieren können die aus Allplan exportierten IFC nicht richtig verarbeiten können. Umso erstaunlicher ist dies, da ich sicher weiss, dass alle drei programme auf verschiedenen bibliotheken zur Verarbeitung von IFC beruhen. Wäre sehr interessant mit welcher Software bei Allplan getested wurde, da ich vermute dass die ja dann auch fehlerbehaftet ist. Aber nun zum wesentlichen ...
Anbei Teilbilder, architektonisches IFC und analytisches IFC. Es betrifft die IfcStructuralSurfaceMember des analytischen IFC. Ich versuche den sachverhalt am beispiel des der decke auf Ebene 3.125 zu zeigen. Per Python lassen sich leicht alle die Topologie betreffenden entitties herausziehen. Dabei ist ersichtlich, dass die edges, die die ebene aufspannen alle auf +3.125 liegen, aber die ebene selber auf 0.0.0 gelegt wurde und keine aufspannvektoren angegeben wurden. Anbei die meines erachtens fehlerhaften einträge und noch alle die Topologie betreffenden einträge als referenz:
gruss an alle Bernd
PS1: gibt es denn mal einen abschnitt im forum für ifc bezogene forenthemen?
PS2: wow es gibt sogar code tags, hätte ich hier nicht erwartet :-), aber ich hab sicher keine smilies im code
PS3: Dateien können bei mir angefordert werden, es ist leider nicht möglich weder ifc noch zip anzuhängen
PS4: downloadlink für die dateien https://cloud.woelkli.com/index.php/s/YY8wCENUsa3ogRn
Fehlerhafte enities:
#597=IfcAxis2Placement3D(#598,$,$) #598=IfcCartesianPoint((0.,0.,0.))
Referenz entitties:
#607=IfcStructuralSurfaceMember('2M8_Etipn4MwtLx$9uhpUH',#4,'Surface 1',$,$,#595,#604,.SHELL.,250.0000000000001) #604=IfcProductDefinitionShape($,$,(#602)) (#602=IfcTopologyRepresentation(#11,$,'Face',(#600)),) (#600=IfcFaceSurface((#587),#596,.T.),) (#587=IfcFaceOuterBound(#581,.T.),) #581=IfcEdgeLoop((#583,#584,#585,#586)) #583=IfcOrientedEdge(*,*,#356,.T.) #584=IfcOrientedEdge(*,*,#377,.T.) #585=IfcOrientedEdge(*,*,#398,.T.) #586=IfcOrientedEdge(*,*,#419,.T.) #356=IfcEdgeCurve(#162,#181,#357,.T.) #377=IfcEdgeCurve(#181,#200,#378,.T.) #398=IfcEdgeCurve(#200,#219,#399,.T.) #419=IfcEdgeCurve(#219,#162,#420,.T.) #162=IfcVertexPoint(#151) #181=IfcVertexPoint(#170) #181=IfcVertexPoint(#170) #200=IfcVertexPoint(#189) #200=IfcVertexPoint(#189) #219=IfcVertexPoint(#208) #219=IfcVertexPoint(#208) #162=IfcVertexPoint(#151) #151=IfcCartesianPoint((5.,5.000000000000002,3.125)) #170=IfcCartesianPoint((-5.,5.000000000000002,3.125)) #170=IfcCartesianPoint((-5.,5.000000000000002,3.125)) #189=IfcCartesianPoint((-5.,-5.000000000000002,3.125)) #189=IfcCartesianPoint((-5.,-5.000000000000002,3.125)) #208=IfcCartesianPoint((5.,-5.000000000000002,3.125)) #208=IfcCartesianPoint((5.,-5.000000000000002,3.125)) #151=IfcCartesianPoint((5.,5.000000000000002,3.125)) #357=IfcLine(#151,#360) #378=IfcLine(#170,#381) #399=IfcLine(#189,#402) #420=IfcLine(#208,#423) #151=IfcCartesianPoint((5.,5.000000000000002,3.125)) #360=IfcVector(#358,10.) #170=IfcCartesianPoint((-5.,5.000000000000002,3.125)) #381=IfcVector(#379,10.) #189=IfcCartesianPoint((-5.,-5.000000000000002,3.125)) #402=IfcVector(#400,10.) #208=IfcCartesianPoint((5.,-5.000000000000002,3.125)) #423=IfcVector(#421,10.) #358=IfcDirection((-1.,0.,0.)) 10.0 #379=IfcDirection((0.,-1.,0.)) 10.0 #400=IfcDirection((1.,0.,0.)) 10.0 #421=IfcDirection((0.,1.,0.)) 10.0 #596=IfcPlane(#597) #597=IfcAxis2Placement3D(#598,$,$) #598=IfcCartesianPoint((0.,0.,0.))
BIM, BAM, BOOM
BIM-Modelle Tragwerksplaner --> http://www.bimstatik.ch/
My Allplan PythonParts --> https://github.com/BIMStatik/AllplanPythonParts
LinkedIN --> https://ch.linkedin.com/in/bernd-hahnebach-269b855a