Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SectionedSurface Aplitop 1 #106

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
100 changes: 100 additions & 0 deletions Alignment-Aplitop-1/UT-Alignment-Aplitop-1.IFC
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition []'),'2;1');
FILE_NAME('Alignment-Aplitop-1.IFC','2021-04-06T16:23:43',(),(),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
FILE_SCHEMA(('IFC4X3_RC3'));
ENDSEC;
DATA;
#1=IFCACTORROLE(.USERDEFINED.,'',$);
#2=IFCPOSTALADDRESS(.HOME.,$,$,$,(''),$,$,$,$,$);
#3=IFCPERSON('Javier','','',$,$,$,(#1),(#2));
#4=IFCPOSTALADDRESS(.OFFICE.,$,$,$,(''),$,$,$,$,$);
#5=IFCORGANIZATION('','Aplitop','',$,(#4));
#6=IFCPOSTALADDRESS(.OFFICE.,$,$,'',(''),$,'','','','');
#7=IFCAPPLICATION(#5,'8.5','TCP-Digital Terrain Model','TcpMDT');
#8=IFCPERSONANDORGANIZATION(#3,#5,$);
#9=IFCOWNERHISTORY(#8,#7,$,$,$,$,$,0);
#10=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#11=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#12=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#13=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#14=IFCUNITASSIGNMENT((#10,#11,#12,#13));
#15=IFCDIRECTION((1.,0.,0.));
#16=IFCDIRECTION((0.,0.,1.));
#17=IFCCARTESIANPOINT((0.,0.,0.));
#18=IFCAXIS2PLACEMENT3D(#17,#16,#15);
#19=IFCGEOMETRICREPRESENTATIONCONTEXT('Body','Model',3,$,#18,$);
#20=IFCDIRECTION((1.,0.,0.));
#21=IFCDIRECTION((0.,0.,1.));
#22=IFCCARTESIANPOINT((0.,0.,0.));
#23=IFCAXIS2PLACEMENT3D(#22,#21,#20);
#24=IFCLOCALPLACEMENT($,#23);
#25=IFCSITE('02FkWai_532fIiNwUn3e4o',#9,'Site_1',$,$,#24,$,$,.ELEMENT.,$,$,$,$,#2);
#26=IFCPROJECT('2Z5iVSY21A5BDQap9aMYN_',#9,'Alignment-Aplitop-1','',$,'',$,$,#14);
#27=IFCRELAGGREGATES('1lAfS8jBjDmR$WPSQBvIFd',#9,$,$,#26,(#25));
#28=IFCROAD('1YqzGB3UT6iv9rSn3ZiChz',$,'Some road',$,'IfcRoad',$,$,$,.COMPLEX.,$);
#29=IFCRELAGGREGATES('3ovWpuZRj6SgHHC$37HFXe',#9,$,$,#25,(#28));
#30=IFCALIGNMENT('0jf_kMZ$nCZvfW8BjN2_gf',$,'Alignment1',$,$,#24,$,$);
#31=IFCALIGNMENTHORIZONTAL('0IfcjsZ$nE2v5xfcXk_T0i',$,'Alignment1',$,$,#24,$,0.);
#32=IFCRELNESTS('0EnDoLEyj8c9WsNDJc2NsV',#9,$,$,#30,(#31,#80));
#33=IFCALIGNMENTSEGMENT('0wbpE5Ppv2h8YpAmz1jvCt',$,$,$,$,#24,$,#35);
#34=IFCCARTESIANPOINT((335085.95782221,4084594.13214501));
#35=IFCALIGNMENTHORIZONTALSEGMENT($,$,#34,6.24482463878552,0.,0.,10.,$,.LINE.);
#36=IFCALIGNMENTSEGMENT('3GuFB_j892ogFRXkUKFjOT',$,$,$,$,#24,$,#38);
#37=IFCCARTESIANPOINT((335095.95046541,4084593.74863239));
#38=IFCALIGNMENTHORIZONTALSEGMENT($,$,#37,6.24482463878552,25.,25.,39.84063746,$,.CIRCULARARC.);
#39=IFCALIGNMENTSEGMENT('3d1079w0TExBB5SBeqnxzs',$,$,$,$,#24,$,#41);
#40=IFCCARTESIANPOINT((335121.90623167,4084618.34196855));
#41=IFCALIGNMENTHORIZONTALSEGMENT($,$,#40,1.55526482918849,25.,0.,9.,$,.CLOTHOID.);
#42=IFCALIGNMENTSEGMENT('1_zKvKwp9EtxxmC_5Nsltp',$,$,$,$,#24,$,#44);
#43=IFCCARTESIANPOINT((335120.96892797,4084627.28000352));
#44=IFCALIGNMENTHORIZONTALSEGMENT($,$,#43,1.73526482917089,0.,-22.,10.22727273,$,.CLOTHOID.);
#45=IFCALIGNMENTSEGMENT('1CNpLxnPbCbORjzCzow8QY',$,$,$,$,#24,$,#47);
#46=IFCCARTESIANPOINT((335120.08215878,4084637.4441296));
#47=IFCALIGNMENTHORIZONTALSEGMENT($,$,#46,1.50282681256798,-22.,-22.,45.65445608,$,.CIRCULARARC.);
#48=IFCALIGNMENTSEGMENT('0ECQjPwu1A0Re64C_3hNOW',$,$,$,$,#24,$,#50);
#49=IFCCARTESIANPOINT((335153.94723443,4084654.44351607));
#50=IFCALIGNMENTHORIZONTALSEGMENT($,$,#49,5.71080957154992,-22.,0.,18.18181818,$,.CLOTHOID.);
#51=IFCALIGNMENTSEGMENT('2285042XD91hQzQeiYQUlr',$,$,$,$,#24,$,#53);
#52=IFCCARTESIANPOINT((335165.88241545,4084640.91041051));
#53=IFCALIGNMENTHORIZONTALSEGMENT($,$,#52,5.29758643106213,0.,0.,63.59552536,$,.LINE.);
#54=IFCALIGNMENTSEGMENT('0oCC$_Rj98NgpjHiw6OPfa',$,$,$,$,#24,$,#56);
#55=IFCCARTESIANPOINT((335201.01029344,4084587.89698736));
#56=IFCALIGNMENTHORIZONTALSEGMENT($,$,#55,5.29758643106213,0.,50.,40.5,$,.CLOTHOID.);
#57=IFCALIGNMENTSEGMENT('2BeaqqwdP4mOFyvLHi3Wm5',$,$,$,$,#24,$,#59);
#58=IFCCARTESIANPOINT((335227.52147844,4084557.67048984));
#59=IFCALIGNMENTHORIZONTALSEGMENT($,$,#58,5.702586430944,50.,50.,79.33785465,$,.CIRCULARARC.);
#60=IFCALIGNMENTSEGMENT('0XnLQ7tUX8vOP0_E0U_bjJ',$,$,$,$,#24,$,#62);
#61=IFCCARTESIANPOINT((335297.1868326,4084572.7216982));
#62=IFCALIGNMENTHORIZONTALSEGMENT($,$,#61,1.00615821607531,50.,0.,32.,$,.CLOTHOID.);
#63=IFCALIGNMENTSEGMENT('0StNFzOMnBYRW6$Wlqac8i',$,$,$,$,#24,$,#65);
#64=IFCCARTESIANPOINT((335308.14596689,4084602.63177967));
#65=IFCALIGNMENTHORIZONTALSEGMENT($,$,#64,1.32615821602658,0.,0.,12.39520568,$,.LINE.);
#66=IFCALIGNMENTSEGMENT('1e8oaJYOrDdPdAbZuMoVQP',$,$,$,$,#24,$,#68);
#67=IFCCARTESIANPOINT((335311.14815049,4084614.6579186));
#68=IFCALIGNMENTHORIZONTALSEGMENT($,$,#67,1.32615821602658,0.,-60.,41.66666667,$,.CLOTHOID.);
#69=IFCALIGNMENTSEGMENT('1qkTGFg8PF99wYnpuvg$gI',$,$,$,$,#24,$,#71);
#70=IFCCARTESIANPOINT((335325.75784196,4084653.44126307));
#71=IFCALIGNMENTHORIZONTALSEGMENT($,$,#70,0.978935993872235,-60.,-60.,27.60658519,$,.CIRCULARARC.);
#72=IFCALIGNMENTSEGMENT('0dA1o$4Cz4f8h7HKHINW92',$,$,$,$,#24,$,#74);
#73=IFCCARTESIANPOINT((335345.80042437,4084672.07101789));
#74=IFCALIGNMENTHORIZONTALSEGMENT($,$,#73,0.518826240527787,-60.,0.,41.66666667,$,.CLOTHOID.);
#75=IFCALIGNMENTSEGMENT('19tjw64Fj8rOqUCmUW_W5L',$,$,$,$,#24,$,#77);
#76=IFCCARTESIANPOINT((335385.54643726,4084683.81177391));
#77=IFCALIGNMENTHORIZONTALSEGMENT($,$,#76,0.171604018373445,0.,0.,35.3941232,$,.LINE.);
#78=IFCRELNESTS('1ybgUMDlb60x4Z8Z8W39S$',#9,$,$,#31,(#33,#36,#39,#42,#45,#48,#51,#54,#57,#60,#63,#66,#69,#72,#75));
#79=IFCRELCONTAINEDINSPATIALSTRUCTURE('3_GokZQqz3AfM$ckWYLAn4',$,$,$,(#30),#25);
#80=IFCALIGNMENTVERTICAL('1dLHMk8gz8b88CSzeLhuS2',#9,'Alignment1 vertical',$,$,#24,$);
#81=IFCALIGNMENTSEGMENT('0kFYhAnN98GvwALuoJw_OD',$,$,$,$,#24,$,#82);
#82=IFCALIGNMENTVERTICALSEGMENT($,$,0.,14.256,365.8,0.0784810126582277,0.0784810126582277,$,.CONSTANTGRADIENT.);
#83=IFCALIGNMENTSEGMENT('0qwrT$JvPF4OnGHKAy6q3a',$,$,$,$,#24,$,#84);
#84=IFCALIGNMENTVERTICALSEGMENT($,$,14.256,129.488,366.918825316456,0.0784810126582277,-0.0670103092783505,890.,.PARABOLICARC.);
#85=IFCALIGNMENTSEGMENT('0nZpXxRiD0TgJCFY_XGbTu',$,$,$,$,#24,$,#86);
#86=IFCALIGNMENTVERTICALSEGMENT($,$,143.744,299.295,367.661484536082,-0.0670103092783505,-0.0670103092783505,$,.CONSTANTGRADIENT.);
#87=IFCALIGNMENTSEGMENT('2DSFwk8YbAnxvOT50ubaI1',$,$,$,$,#24,$,#88);
#88=IFCALIGNMENTVERTICALSEGMENT($,$,443.039,47.922,347.605634020619,-0.0670103092783505,0.117303516609678,260.,.PARABOLICARC.);
#89=IFCALIGNMENTSEGMENT('0l_RihMon9jg3vj5s7dj3v',$,$,$,$,#24,$,#90);
#90=IFCALIGNMENTVERTICALSEGMENT($,$,490.961,16.106,348.810709561484,0.117303516609678,0.117303516609678,$,.CONSTANTGRADIENT.);
#91=IFCRELNESTS('1SaEdMn7TF99Ov1oFOmsAh',#9,$,$,#80,(#81,#83,#85,#87,#89));
ENDSEC;
END-ISO-10303-21;
Binary file added Alignment-Aplitop-1/UT-Alignment-Aplitop-1.dwg
Binary file not shown.
97 changes: 97 additions & 0 deletions Alignment-Aplitop-1/UT-Alignment-Aplitop-1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
<?xml version="1.0"?>
<LandXML xmlns="http://www.landxml.org/schema/LandXML-1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.landxml.org/schema/LandXML-1.2 http://www.landxml.org/schema/LandXML-1.2/LandXML-1.2.xsd" version="1.2" date="2019-07-09" time="10:59:16">
<Project name="Proyecto"/>
<Units>
<Metric areaUnit="squareMeter" linearUnit="meter" volumeUnit="cubicMeter" temperatureUnit="celsius" pressureUnit="mmHG" angularUnit="grads" directionUnit="grads"/>
</Units>
<Application name="MDT" version="8.0" manufacturer="Aplitop S.L" manufacturerURL="www.aplitop.com">
<Author createdBy="Javi"/>
</Application>
<Project name="Alignment_0"/>

<Alignments>
<Alignment name="Horizontal" staStart="0.000" length="507.067">
<CoordGeom>
<Line staStart="0.000000" length="10.000000" dir="102.44211605">
<Start>4084594.132145 335085.957822</Start>
<End>4084593.748632 335095.950465</End>
</Line>
<Curve rot="ccw" radius="25.000000" staStart="10.000000" length="39.840637" crvType="arc" chord="35.75659360" dirStart="102.44211605" dirEnd="0.98876586">
<Start>4084593.748632 335095.950465</Start>
<Center>4084618.730240 335096.909247</Center>
<End>4084618.341969 335121.906232</End>
</Curve>
<Spiral staStart="49.840637" radiusStart="25.000000" radiusEnd="INF" rot="ccw" spiType="clothoid" length="9.000000" tanLong="6.01021454" tanShort="3.00928815">
<Start>4084618.341969 335121.906232</Start>
<PI>4084621.350894 335121.952969</PI>
<End>4084627.280004 335120.968928</End>
</Spiral>
<Spiral staStart="58.840637" radiusStart="INF" radiusEnd="22.000000" rot="cw" spiType="clothoid" length="10.227273" tanLong="6.83757767" tanShort="3.42673047">
<Start>4084627.280004 335120.968928</Start>
<PI>4084634.025312 335119.849425</PI>
<End>4084637.444130 335120.082159</End>
</Spiral>
<Curve rot="cw" radius="22.000000" staStart="69.067910" length="45.654456" crvType="arc" chord="37.89224840" dirStart="4.32707368" dirEnd="136.43857110">
<Start>4084637.444130 335120.082159</Start>
<Center>4084635.949951 335142.031360</Center>
<End>4084654.443516 335153.947234</End>
</Curve>
<Spiral staStart="114.722366" radiusStart="22.000000" radiusEnd="INF" rot="cw" spiType="clothoid" length="18.181818" tanLong="12.23143001" tanShort="6.16092965">
<Start>4084654.443516 335153.947234</Start>
<PI>4084651.106568 335159.126214</PI>
<End>4084640.910411 335165.882415</End>
</Spiral>
<Line staStart="132.904184" length="63.595525" dir="162.74517326">
<Start>4084640.910411 335165.882415</Start>
<End>4084587.896987 335201.010293</End>
</Line>
<Spiral staStart="196.499710" radiusStart="INF" radiusEnd="50.000000" rot="ccw" spiType="clothoid" length="40.500000" tanLong="27.23568170" tanShort="13.71451383">
<Start>4084587.896987 335201.010293</Start>
<PI>4084565.193240 335216.054303</PI>
<End>4084557.670490 335227.521478</End>
</Spiral>
<Curve rot="ccw" radius="50.000000" staStart="236.999710" length="79.337855" crvType="arc" chord="71.27271879" dirStart="136.96207249" dirEnd="35.94597856">
<Start>4084557.670490 335227.521478</Start>
<Center>4084599.477205 335254.947717</Center>
<End>4084572.721698 335297.186833</End>
</Curve>
<Spiral staStart="316.337564" radiusStart="50.000000" radiusEnd="INF" rot="ccw" spiType="clothoid" length="32.000000" tanLong="21.44889462" tanShort="10.77180114">
<Start>4084572.721698 335297.186833</Start>
<PI>4084581.821525 335302.950933</PI>
<End>4084602.631780 335308.145967</End>
</Spiral>
<Line staStart="348.337564" length="12.395206" dir="15.57414585">
<Start>4084602.631780 335308.145967</Start>
<End>4084614.657919 335311.148150</End>
</Line>
<Spiral staStart="360.732770" radiusStart="INF" radiusEnd="60.000000" rot="cw" spiType="clothoid" length="41.666667" tanLong="27.95524996" tanShort="14.05036972">
<Start>4084614.657919 335311.148150</Start>
<PI>4084641.780802 335317.919058</PI>
<End>4084653.441263 335325.757842</End>
</Spiral>
<Curve rot="cw" radius="60.000000" staStart="402.399437" length="27.606585" crvType="arc" chord="27.36371456" dirStart="37.67899905" dirEnd="66.97049569">
<Start>4084653.441263 335325.757842</Start>
<Center>4084619.966910 335375.552095</Center>
<End>4084672.071018 335345.800424</End>
</Curve>
<Spiral staStart="430.006022" radiusStart="60.000000" radiusEnd="INF" rot="cw" spiType="clothoid" length="41.666667" tanLong="27.95524996" tanShort="14.05036972">
<Start>4084672.071018 335345.800424</Start>
<PI>4084679.038051 335358.001791</PI>
<End>4084683.811774 335385.546437</End>
</Spiral>
<Line staStart="471.672689" length="35.394123" dir="89.07534889">
<Start>4084683.811774 335385.546437</Start>
<End>4084689.855782 335420.420696</End>
</Line>
</CoordGeom>
<Profile>
<ProfAlign name="Vertical">
<PVI>0.000 365.800</PVI>
<ParaCurve length="129.487">79.000 372.000</ParaCurve>
<ParaCurve length="47.922">467.000 346.000</ParaCurve>
<PVI>507.067 350.700</PVI>
</ProfAlign>
</Profile>
</Alignment>
</Alignments>
</LandXML>
Expand Down
32 changes: 32 additions & 0 deletions Alignment-Aplitop-1/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

### Intent

This scenario is a very simple alignment (horizontal + vertical).
There is no representation of alingnment.

### Prerequisites

ProjectSetup-1

### Content

This scenario covers the following concepts and/or IFC entities:

- Element aggregation: IfcAlignment is included in IfcSite
- Element nesting: IfcAlignmentHorizontalSegment are nested in IfcAlignmentHorizontal
- IfcAlignment
- IfcAlignmentHorizontal (IfcAlignmentHorizontalSegment of types LINE, CIRCULARARC and CLOTHOID)
- IfcAlignmentVertical (IfcAlignmentVerticalSegment of types CONSTANTGRADIENT and PARABOLICARC)

### Supporting files

Following files correspond to this scenario:

| Filename | Description |
|---------------------------------------|-------------------------------------------|
| UT-Alignment-Aplitop-1.ifc | Exported data as IFC |
| UT-Alignment-Aplitop-1.dwg | CAD file with horizontal and vertical alignments representation |
| UT-Alignment-Aplitop-1-horizontal.png | screen shot of CAD file |
| UT-Alignment-Aplitop-1-Vertical.png | screen shot of CAD file |
| UT-Alignment-Aplitop-1.xml | same content of Ifc file, in LandXML format |

87 changes: 87 additions & 0 deletions SectionedSurface-Aplitop-1/SectionedSurface-Aplitop-1.IFC
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [Ifc4X3NotAssigned]'),'2;1');
FILE_NAME('SectionedSurface-Aplitop-1.ifc','2021-06-03T13:37:56',(),(),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
FILE_SCHEMA(('IFC4X3_RC3'));
ENDSEC;
DATA;
#1=IFCACTORROLE(.USERDEFINED.,'',$);
#2=IFCPOSTALADDRESS(.HOME.,$,$,$,(''),$,$,$,$,$);
#3=IFCPERSON('Javier','','',$,$,$,(#1),(#2));
#4=IFCPOSTALADDRESS(.OFFICE.,$,$,$,(''),$,$,$,$,$);
#5=IFCORGANIZATION('','Aplitop','',$,(#4));
#6=IFCPOSTALADDRESS(.OFFICE.,$,$,'',(''),$,'','','','');
#7=IFCAPPLICATION(#5,'8.5','TCP-Digital Terrain Model','TcpMDT');
#8=IFCPERSONANDORGANIZATION(#3,#5,$);
#9=IFCOWNERHISTORY(#8,#7,$,$,$,$,$,0);
#10=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#11=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#12=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#13=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#14=IFCUNITASSIGNMENT((#10,#11,#12,#13));
#15=IFCDIRECTION((1.,0.,0.));
#16=IFCDIRECTION((0.,0.,1.));
#17=IFCCARTESIANPOINT((0.,0.,0.));
#18=IFCAXIS2PLACEMENT3D(#17,#16,#15);
#19=IFCGEOMETRICREPRESENTATIONCONTEXT('Body','Model',3,$,#18,$);
#20=IFCDIRECTION((1.,0.,0.));
#21=IFCDIRECTION((0.,0.,1.));
#22=IFCCARTESIANPOINT((0.,0.,0.));
#23=IFCAXIS2PLACEMENT3D(#22,#21,#20);
#24=IFCLOCALPLACEMENT($,#23);
#25=IFCSITE('2dmSYY_dfEUvS$EqHsga9H',#9,'Site',$,$,#24,$,$,.ELEMENT.,$,$,$,$,#2);
#26=IFCPROJECT('3tkRESp0n1qQfvDcC911af',#9,'Project','',$,'',$,$,#14);
#27=IFCRELAGGREGATES('1J78ZkUl142R8c9zRv8Nuh',#9,$,$,#26,(#25));
#28=IFCROAD('1b7reoKwTFJxr7W5culxb$',$,'Road',$,'IfcRoad',$,$,$,.COMPLEX.,$);
#29=IFCRELAGGREGATES('1nbAt7eYv4swrQ7kMUYrD3',#9,$,$,#25,(#28));
#30=IFCALIGNMENT('3NYWW0yfD9BwdMM3yK9zLG',$,'Eje1',$,$,#24,$,$);
#31=IFCALIGNMENTHORIZONTAL('1Lb11OMQ1AthVTi6V7jHiU',$,'Eje1',$,$,#24,#49,0.);
#32=IFCRELNESTS('3Wkl6gqJj9$RKLoFB4xbkt',#9,$,$,#30,(#31,#51));
#33=IFCALIGNMENTSEGMENT('0sVreI8Kn6tuw4UYDmeHtA',$,$,$,$,#24,$,#35);
#34=IFCCARTESIANPOINT((286.47559897,239.79766567));
#35=IFCALIGNMENTHORIZONTALSEGMENT($,$,#34,1.50346536986339,0.,0.,107.15812752,$,.LINE.);
#36=IFCDIRECTION((0.999655739909883,0.0262374096515884));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Semantics of Alignment seem to be south to north, where as this direction positions the geometry to near east/west (ie x). Which is correct?

IFCDIRECTION((0.999655739909883,0.0262374096515884));

210624 alignment direction gg

#37=IFCAXIS2PLACEMENT2D(#34,#36);
#40=IFCCARTESIANPOINT((0.,0.));
#41=IFCDIRECTION((1.,0.));
#42=IFCVECTOR(#41,1.);
#43=IFCLINE(#40,#42);
#44=IFCCURVESEGMENT(.CONTINUOUS.,#37,IFCNONNEGATIVELENGTHMEASURE(0.),IFCNONNEGATIVELENGTHMEASURE(107.15812752),#43);
#45=IFCRELNESTS('3U4tk8m5LAnhDZNYLR6Op1',#9,$,$,#31,(#33));
#46=IFCCOMPOSITECURVE((#44),.F.);
#47=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#19,$,.GRAPH_VIEW.,$);
#48=IFCSHAPEREPRESENTATION(#47,'Axis','Curve2D',(#46));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When there is an IfcGradientCurve available, I wonder if the shape representation for an IfcAlignment should refer to this (65) instead if the IfcCompositeCurve?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In a simple sample like this, just a straight line, yes.

But in a more general sample, I still don't have an implementation to build a single IfcCompositeCurve from any 2D alingment and grade line info. So I kept alignment representation as 2D.

I will change it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems as if the IfcProductDefinitionShape on line #49 no longer has an owning IfcProduct. I assume that this should be the IfcAlignment?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that IfcAlignmentHorizontal has a shape representation = IfcCompositeCurve.
IfcAlignmentVertical has a shape representation = IfcGradientCurve
I wonder whether IfcAlignment (no shape representation in this file) should have the gradient curve as its representation (Axis,Curve3D)? @SergejMuhic ?

#49=IFCPRODUCTDEFINITIONSHAPE($,$,(#48));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line should be referenced somewhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In updated file, #49 is representation of IFCHORIZONTALALINGMENT

#50=IFCRELCONTAINEDINSPATIALSTRUCTURE('1I8l5qEL12MhbHe9PyUXYB',$,$,$,(#30),#25);
#51=IFCALIGNMENTVERTICAL('2WjaJzeLn4Dh0c1wFGZNYU',#9,'Eje1',$,$,#24,#67);
#52=IFCALIGNMENTSEGMENT('027HuZKDjAuvbEZ$TopRhG',$,$,$,$,#24,$,#53);
#53=IFCALIGNMENTVERTICALSEGMENT($,$,0.,107.158,45.315043,0.0401646447302114,0.0401646447302114,$,.CONSTANTGRADIENT.);
#54=IFCCARTESIANPOINT((0.,45.315043));
#55=IFCDIRECTION((0.999194375250509,0.0401322870983622));
#56=IFCAXIS2PLACEMENT2D(#54,#55);
#59=IFCCARTESIANPOINT((0.,0.));
#60=IFCDIRECTION((1.,0.));
#61=IFCVECTOR(#60,1.);
#62=IFCLINE(#59,#61);
#63=IFCCURVESEGMENT(.CONTINUOUS.,#56,IFCNONNEGATIVELENGTHMEASURE(0.),IFCNONNEGATIVELENGTHMEASURE(107.244398741871),#62);
#64=IFCRELNESTS('1Ekm3ZhxDAIxwnMiXhv18W',#9,$,$,#51,(#52));
#65=IFCGRADIENTCURVE((#63),.F.,#46,$);
#66=IFCSHAPEREPRESENTATION(#47,'Axis','Curve3D',(#65));
#67=IFCPRODUCTDEFINITIONSHAPE($,$,(#66));
#68=IFCFACILITYPART('2VJRykc916eO0F0TUHiUj9',$,$,$,$,#24,#87,$,.COMPLEX.,IFCROADPARTTYPEENUM(.ROADSEGMENT.),.LONGITUDINAL.);
#69=IFCRELAGGREGATES('0nVIlPiJ1D0Opi4EVcPTpM',#9,$,$,#28,(#68));
#70=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-1',.T.,(0.0310000000000001,3.5,3.5,0.056),(2.49643136367755,3.141592654,3.141592654,2.48087836828573),('119','30','0','30','119'));
#72=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(0.),3.531,0.,0.,#65);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KIT checker doesn't seem to detect this, but shouldn't DistanceAlong be IfcNonNegativeLengthMeasure
and not IfcLengthMeasure ?? This applies too all occurrences.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be an IfcNonNegativeLengthMeasure for the IfcPointByDistanceExpression:
TYPE IfcCurveMeasureSelect = SELECT (
IfcParameterValue,
IfcNonNegativeLengthMeasure);
END_TYPE;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more thing. I discussed with the rest of the team this morning and even if the documentation lacks this information, the conclusion was that it is at least recommended to keep the tags unique within a profile. Would it be possible to e.g. add a "R" and "L" prefix to separate e.g. 30 on the left vs 30 on the right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

#73=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-2',.T.,(0.543,3.5,3.5,0.301),(2.47492598733333,3.141592654,3.141592654,2.47714082675747),('119','30','0','30','119'));
#75=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(30.),4.043,0.,0.,#65);
#76=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-3',.T.,(0.663,3.5,3.5,0.,3.154),(2.47492598733333,3.141592654,3.141592654,3.141592654,3.80836500656817),('119','30','0','30','119','139'));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My interpretation is according to this image:
image
Is it possible that cross section at 60 should join 119 and 139 (at section 60) instead of 119 and 30, i.e. have the width 0 as last value?
Please also check that my interpretation is correct. Other than that, I think that the file LFTM!

Copy link
Contributor Author

@javierNadal javierNadal Jun 17, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added a new IfcOpenCrossProfileDef at station 45. Now I think it looks better.

image

#78=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(60.),4.163,0.,0.,#65);
#79=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-4',.T.,(0.939,3.5,3.5,2.844),(2.47492598733334,3.141592654,3.141592654,3.80825932066667),('119','30','0','30','139'));
#81=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(90.),4.439,0.,0.,#65);
#82=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-5',.T.,(0.,2.249,3.5,3.5,2.429),(3.141592654,3.80811110664562,3.141592654,3.141592654,3.80812208998189),('139','119','30','0','30','139'));
#84=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(107.158),5.749,0.,0.,#65);
#85=IFCSECTIONEDSURFACE(#65,(#72,#75,#78,#81,#84),(#70,#73,#76,#79,#82),.F.);
#86=IFCSHAPEREPRESENTATION(#19,'Road','',(#85));
#87=IFCPRODUCTDEFINITIONSHAPE('','',(#86));
ENDSEC;
END-ISO-10303-21;
Loading