示例概述
意图
此场景演示了IfcLinearPlacement与IfcAxi2PlacementLinear和IfcPointByDistanceExpression的组合使用。
先决条件
此场景基于以下其他场景:-ProjectSetup_1-包含IfcProject和IfcSite实体的基本空间结构
所容纳之物
此方案包含以下概念和/或IFC实体:-项目结构-IfcProject-IfcSite-alignment-IfcAlignment-IfccGradientCurve-线性放置-IfcLinearPlacement-IfcAxis2PlacementLinear-IfcPointByDistanceExpression
该场景可以通过以下概念进行扩展:-GeoRef(参见Georeferenceing_1场景)-高级空间结构-元素集合和聚合-高级几何表示
支持文件
以下文件对应于此场景:
Filename | Description |
---|---|
UT_LinearPlacement_2.ifc |
the exported content as IFC document |
UT_LinearPlacement_2_4X1.ifc |
the exported content as IFC 4X1 document |
UT_LinearPlacement_2_1.png |
screenshot from the KIT FZK Viewer |
UT_LinearPlacement_2_2.png |
screenshot from the KIT FZK Viewer |
IFC-SPF source
ISO-10303-21; HEADER; FILE_DESCRIPTION (('ViewDefinition []'), '2;1'); FILE_NAME ('', '2020-02-02T10:55:51', (''), (''), 'Processor version 0.0.0.0', 'Brain', ''); FILE_SCHEMA (('IFC4X3_RC2')); ENDSEC; DATA; /* IFC InfraDeployment */ /* Author: Sebastian Esser; Technical University of Munich, Chair of Computational Modeling and Simulation. In cooperation with Autodesk. */ /* Mail: [email protected] */ /* github: seb-esser */ /* Please note: This sample is partially hand-coded and may contain (major) mistakes. */ /* Version: 02 */ /* Update 01->02: updating from _RC1 to _RC2 by Stefan Jaud; see entities #1000+ */ /* !!! Manually upgraded from IFC4x1 to IFC4x3_RC2 !! */ /* Basic concepts of alignments and linear referencing are based on IFC4x3_RC2. */ /* The chosen values for the sleeper positions might not be aligned with common approaches (i.e., 1m might be wrong in reality!) */ /* --- --- --- --- --- --- --- --- */ /* -- Base setup: project, credits, units, ... */ #1=IFCPROJECT('3jGvDUYQfAjRs5R4Pesxus',#2,'Sample_SleeperPlacement',$,$,$,$,(#15),#7); #2=IFCOWNERHISTORY(#5,#6,$,.ADDED.,1580640952,$,$,0); #3=IFCPERSON($,'Esser','Sebastian',$,$,$,$,$); #4=IFCORGANIZATION($,'Chair of Computational Modeling and Simulation - Technical University of Munich',$,$,$); #5=IFCPERSONANDORGANIZATION(#3,#4,$); #6=IFCAPPLICATION(#4,'1.0','TUM_CMS_IfcRoadPrototyper','notDefined'); #7=IFCUNITASSIGNMENT((#8,#9,#10,#11)); #8=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); #9=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); #10=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); #11=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); #12=IFCLOCALPLACEMENT($,#13); #13=IFCAXIS2PLACEMENT3D(#14,$,$); #14=IFCCARTESIANPOINT((0.,0.,0.)); #15=IFCGEOMETRICREPRESENTATIONCONTEXT($,'GeometricRepresentationContext',3,$,#13,$); #1002=IFCOWNERHISTORY(#5,#6,$,.MODIFIED.,1580680952,#1005,#1006,0); #1003=IFCPERSON($,'Jaud','Stefan',$,$,$,$,$); #1005=IFCPERSONANDORGANIZATION(#1003,#4,$); #1006=IFCAPPLICATION(#4,'3.0','Sublime Text','notDefined'); /* -- site -- */ #16=IFCSITE('2yJVWSbBL4o8jgoIGLXXIa',#2,'SleeperSite','SiteItem',$,#12,$,$,$,$,$,0.,$,$); #17=IFCRELAGGREGATES('2PpVQkRczD6ubpe3Te4Uxa',#2,$,$,#1,(#16)); /* -- link products to site -- */ #18=IFCRELCONTAINEDINSPATIALSTRUCTURE('2NuS7UgsfCOvS2cWMNQuAK',#2,$,$,(#19,#29,#38,#47,#56,#65,#74,#83,#92,#101,#110),#16); /* -- alignment as LRS -- */ #19=IFCALIGNMENT('02BIp4ee1CgxJ6X6gY_ke6',#1002,'alignmentName_notDefined','alignmentDescription_notDefined',$,#12,$,#1020,$); #1020=IFCGRADIENTCURVE(#1021,(#1030),$); #1021=IFCCOMPOSITECURVE((#1022),.F.); #1022=IFCCURVESEGMENT(.DISCONTINUOUS.,#1027,IFCPARAMETERVALUE(0.0),IFCPARAMETERVALUE(1.0),#1023); #1023=IFCLINE(#1024,#1025); #1024=IFCCARTESIANPOINT((0.,0.,0.)); #1025=IFCVECTOR(#1026,10.); #1026=IFCDIRECTION((1.,0.,0.)); #1027=IFCAXIS2PLACEMENT2D(#1024,#1026); #1029=IFCDIRECTION((0.,0.,1.)); #1030=IFCCURVESEGMENT(.DISCONTIUNOUS.,#1031,IFCPARAMETERVALUE(0.0),IFCPARAMETERVALUE(1.0),#1022); #1031=IFCAXIS2PLACEMENTLINEAR(#1032,#1029,#1026); #1032=IFCPOINTBYDISTANCEEXPRESSION(IFCPARAMETERVALUE(0.),$,$,$,#1022); /* -- BREP representation of a single sleeper -- */ #277= IFCSHAPEREPRESENTATION(#15,'Body','Brep',(#651)); #283= IFCFACE((#359)); #287= IFCCARTESIANPOINT((-0.15,1.29999999999995,-0.21000000000012)); #291= IFCCARTESIANPOINT((-0.15,-1.29999999999995,-0.21000000000012)); #295= IFCCARTESIANPOINT((-0.15,-1.27099999999996,-8.36691826933134E-14)); #299= IFCCARTESIANPOINT((-0.15,-1.03600000000006,-8.36657132463614E-14)); #303= IFCCARTESIANPOINT((-0.15,-0.946999999999889,0.0250000000000073)); #307= IFCCARTESIANPOINT((-0.15,-0.926999999999907,-8.36691826933134E-14)); #311= IFCCARTESIANPOINT((-0.15,-0.61200000000008,-8.36691826933134E-14)); #315= IFCCARTESIANPOINT((-0.15,-0.592000000000098,0.0250000000000073)); #319= IFCCARTESIANPOINT((-0.15,-0.502999999999929,-8.36691826933134E-14)); #323= IFCCARTESIANPOINT((-0.15,-0.202999999999975,-0.042)); #327= IFCCARTESIANPOINT((-0.15,0.202999999999975,-0.042)); #331= IFCCARTESIANPOINT((-0.15,0.502999999999929,-8.36657132463614E-14)); #335= IFCCARTESIANPOINT((-0.15,0.592000000000098,0.0250000000000073)); #339= IFCCARTESIANPOINT((-0.15,0.61200000000008,-8.36691826933134E-14)); #343= IFCCARTESIANPOINT((-0.15,0.926999999999907,-8.36691826933134E-14)); #347= IFCCARTESIANPOINT((-0.15,0.946999999999889,0.0250000000000073)); #351= IFCCARTESIANPOINT((-0.15,1.03600000000006,-8.36691826933134E-14)); #355= IFCCARTESIANPOINT((-0.15,1.27099999999996,-8.36691826933134E-14)); #359= IFCFACEOUTERBOUND(#362,.T.); #362= IFCPOLYLOOP((#287,#291,#295,#299,#303,#307,#311,#315,#319,#323,#327,#331,#335,#339,#343,#347,#351,#355)); #366= IFCFACE((#442)); #370= IFCCARTESIANPOINT((0.15,0.946999999999889,0.0250000000000073)); #374= IFCCARTESIANPOINT((0.15,0.926999999999907,-8.36875523953006E-14)); #378= IFCCARTESIANPOINT((0.15,0.61200000000008,-8.36875523953006E-14)); #382= IFCCARTESIANPOINT((0.15,0.592000000000098,0.0250000000000073)); #386= IFCCARTESIANPOINT((0.15,0.502999999999929,-8.36875523953006E-14)); #390= IFCCARTESIANPOINT((0.15,0.202999999999974,-0.042)); #394= IFCCARTESIANPOINT((0.15,-0.202999999999975,-0.042)); #398= IFCCARTESIANPOINT((0.15,-0.502999999999929,-8.36875523953006E-14)); #402= IFCCARTESIANPOINT((0.15,-0.592000000000098,0.0250000000000073)); #406= IFCCARTESIANPOINT((0.15,-0.61200000000008,-8.36875523953006E-14)); #410= IFCCARTESIANPOINT((0.15,-0.926999999999907,-8.36875523953006E-14)); #414= IFCCARTESIANPOINT((0.15,-0.946999999999889,0.0250000000000073)); #418= IFCCARTESIANPOINT((0.15,-1.03600000000006,-8.36875523953006E-14)); #422= IFCCARTESIANPOINT((0.15,-1.27099999999996,-8.36875523953006E-14)); #426= IFCCARTESIANPOINT((0.15,-1.29999999999995,-0.21000000000012)); #430= IFCCARTESIANPOINT((0.15,1.29999999999995,-0.21000000000012)); #434= IFCCARTESIANPOINT((0.15,1.27099999999996,-8.36875523953006E-14)); #438= IFCCARTESIANPOINT((0.15,1.03600000000006,-8.36875523953006E-14)); #442= IFCFACEOUTERBOUND(#445,.T.); #445= IFCPOLYLOOP((#370,#374,#378,#382,#386,#390,#394,#398,#402,#406,#410,#414,#418,#422,#426,#430,#434,#438)); #449= IFCFACE((#453)); #453= IFCFACEOUTERBOUND(#456,.T.); #456= IFCPOLYLOOP((#430,#287,#355,#434)); #460= IFCFACE((#464)); #464= IFCFACEOUTERBOUND(#467,.T.); #467= IFCPOLYLOOP((#351,#438,#434,#355)); #471= IFCFACE((#475)); #475= IFCFACEOUTERBOUND(#478,.T.); #478= IFCPOLYLOOP((#438,#351,#347,#370)); #482= IFCFACE((#486)); #486= IFCFACEOUTERBOUND(#489,.T.); #489= IFCPOLYLOOP((#343,#374,#370,#347)); #493= IFCFACE((#497)); #497= IFCFACEOUTERBOUND(#500,.T.); #500= IFCPOLYLOOP((#339,#378,#374,#343)); #504= IFCFACE((#508)); #508= IFCFACEOUTERBOUND(#511,.T.); #511= IFCPOLYLOOP((#335,#382,#378,#339)); #515= IFCFACE((#519)); #519= IFCFACEOUTERBOUND(#522,.T.); #522= IFCPOLYLOOP((#331,#386,#382,#335)); #526= IFCFACE((#530)); #530= IFCFACEOUTERBOUND(#533,.T.); #533= IFCPOLYLOOP((#327,#390,#386,#331)); #537= IFCFACE((#541)); #541= IFCFACEOUTERBOUND(#544,.T.); #544= IFCPOLYLOOP((#323,#394,#390,#327)); #548= IFCFACE((#552)); #552= IFCFACEOUTERBOUND(#555,.T.); #555= IFCPOLYLOOP((#319,#398,#394,#323)); #559= IFCFACE((#563)); #563= IFCFACEOUTERBOUND(#566,.T.); #566= IFCPOLYLOOP((#398,#319,#315,#402)); #570= IFCFACE((#574)); #574= IFCFACEOUTERBOUND(#577,.T.); #577= IFCPOLYLOOP((#402,#315,#311,#406)); #581= IFCFACE((#585)); #585= IFCFACEOUTERBOUND(#588,.T.); #588= IFCPOLYLOOP((#406,#311,#307,#410)); #592= IFCFACE((#596)); #596= IFCFACEOUTERBOUND(#599,.T.); #599= IFCPOLYLOOP((#410,#307,#303,#414)); #603= IFCFACE((#607)); #607= IFCFACEOUTERBOUND(#610,.T.); #610= IFCPOLYLOOP((#414,#303,#299,#418)); #614= IFCFACE((#618)); #618= IFCFACEOUTERBOUND(#621,.T.); #621= IFCPOLYLOOP((#295,#422,#418,#299)); #625= IFCFACE((#629)); #629= IFCFACEOUTERBOUND(#632,.T.); #632= IFCPOLYLOOP((#422,#295,#291,#426)); #636= IFCFACE((#640)); #640= IFCFACEOUTERBOUND(#643,.T.); #643= IFCPOLYLOOP((#287,#430,#426,#291)); #647= IFCCLOSEDSHELL((#283,#366,#449,#460,#471,#482,#493,#504,#515,#526,#537,#548,#559,#570,#581,#592,#603,#614,#625,#636)); #651= IFCFACETEDBREP(#647); /* -- Product defs -- */ #29=IFCBUILTELEMENT('1VW3Fmm5X3vgtYmvrSeApE',#1002,'linear positioned: 0',$,$,#37,#31,$,$); #31=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #33=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(0.),0.,-0.2,0.,#1020); #34=IFCDIRECTION((0.,0.175,0.9846)); #35=IFCDIRECTION((1.,0.,0.)); #36=IFCAXIS2PLACEMENTLINEAR(#33,#34,#35); #37=IFCLINEARPLACEMENT(#12,$,$,#36,$); #38=IFCBUILTELEMENT('0QLu06Q0LBIfiMIDl4KKna',#1002,'linear positioned: 1',$,$,#46,#40,$,$); #40=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #42=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(1.),0.,-0.2,0.,#1020); #43=IFCDIRECTION((0.,0.1361,0.9907)); #44=IFCDIRECTION((1.,0.,0.)); #45=IFCAXIS2PLACEMENTLINEAR(#42,#43,#44); #46=IFCLINEARPLACEMENT(#12,$,$,#45,$); #47=IFCBUILTELEMENT('0v6$InaQLBzeoovfMF6O3C',#1002,'linear positioned: 2',$,$,#55,#49,$,$); #49=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #51=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(2.),0.,-0.2,0.,#1020); #52=IFCDIRECTION((0.,0.0972,0.9953)); #53=IFCDIRECTION((1.,0.,0.)); #54=IFCAXIS2PLACEMENTLINEAR(#51,#52,#53); #55=IFCLINEARPLACEMENT(#12,$,$,#54,$); #56=IFCBUILTELEMENT('0MWCZEhgb58Ql80GfXhYkV',#1002,'linear positioned: 3',$,$,#64,#58,$,$); #58=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #60=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(3.),0.,-0.2,0.,#1020); #61=IFCDIRECTION((0.,0.0583,0.9983)); #62=IFCDIRECTION((1.,0.,0.)); #63=IFCAXIS2PLACEMENTLINEAR(#60,#61,#62); #64=IFCLINEARPLACEMENT(#12,$,$,#63,$); #65=IFCBUILTELEMENT('2gbv_hhLv3ZvOZd2m0OWd2',#1002,'linear positioned: 4',$,$,#73,#67,$,$); #67=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #69=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(4.),0.,-0.2,0.,#1020); #70=IFCDIRECTION((0.,0.0194,0.9998)); #71=IFCDIRECTION((1.,0.,0.)); #72=IFCAXIS2PLACEMENTLINEAR(#69,#70,#71); #73=IFCLINEARPLACEMENT(#12,$,$,#72,$); #74=IFCBUILTELEMENT('0j_ieFZXHE7hY7go0o_eA1',#1002,'linear positioned: 5',$,$,#82,#76,$,$); #76=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #78=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(5.),0.,-0.2,0.,#1020); #79=IFCDIRECTION((0.,-0.0194,0.9998)); #80=IFCDIRECTION((1.,0.,0.)); #81=IFCAXIS2PLACEMENTLINEAR(#78,#79,#80); #82=IFCLINEARPLACEMENT(#12,$,$,#81,$); #83=IFCBUILTELEMENT('1654r6x$jBnw283mxlF_PI',#1002,'linear positioned: 6',$,$,#91,#85,$,$); #85=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #87=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(6.),0.,-0.2,0.,#1020); #88=IFCDIRECTION((0.,-0.0583,0.9983)); #89=IFCDIRECTION((1.,0.,0.)); #90=IFCAXIS2PLACEMENTLINEAR(#87,#88,#89); #91=IFCLINEARPLACEMENT(#12,$,$,#90,$); #92=IFCBUILTELEMENT('3reHzfH0vESAj1YMbRFrqQ',#1002,'linear positioned: 7',$,$,#100,#94,$,$); #94=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #96=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(7.),0.,-0.2,0.,#1020); #97=IFCDIRECTION((0.,-0.0972,0.9953)); #98=IFCDIRECTION((1.,0.,0.)); #99=IFCAXIS2PLACEMENTLINEAR(#96,#97,#98); #100=IFCLINEARPLACEMENT(#12,$,$,#99,$); #101=IFCBUILTELEMENT('0w4xaytUrCqfcr6vnNsJVB',#1002,'linear positioned: 8',$,$,#109,#103,$,$); #103=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #105=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(8.),0.,-0.2,0.,#1020); #106=IFCDIRECTION((0.,-0.1361,0.9907)); #107=IFCDIRECTION((1.,0.,0.)); #108=IFCAXIS2PLACEMENTLINEAR(#105,#106,#107); #109=IFCLINEARPLACEMENT(#12,$,$,#108,$); #110=IFCBUILTELEMENT('1YvMfJlXD9L9WMtOup4vKD',#1002,'linear positioned: 9',$,$,#118,#112,$,$); #112=IFCPRODUCTDEFINITIONSHAPE($,$,(#277)); #114=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(9.),0.,-0.2,0.,#1020); #115=IFCDIRECTION((0.,-0.1750,0.9846)); #116=IFCDIRECTION((1.,0.,0.)); #117=IFCAXIS2PLACEMENTLINEAR(#114,#115,#116); #118=IFCLINEARPLACEMENT(#12,$,$,#117,$); ENDSEC; END-ISO-10303-21;
################################
标签:IFCDIRECTION,14,示例,LinearPlacement,0.15,IFCPOLYLOOP,IFCCARTESIANPOINT,附录,IFCFACE From: https://www.cnblogs.com/herd/p/17080813.html