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 15 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 |

92 changes: 92 additions & 0 deletions SectionedSurface-Aplitop-1/SectionedSurface-Aplitop-1.IFC
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
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),('L119','L30','0','R30','R119'));
Copy link
Collaborator

Choose a reason for hiding this comment

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

aplitop

Image above might be an incorrect interpretation, but as the last slope ( 2.48087836828573 ) is less than pi, the road side slopes as nominated in ifc would look more like the image below as I understand it. Can you please confirm?

210624 sections gg

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, slope was wrong

#72=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(0.),3.531,0.,0.,#65);
#73=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-2',.T.,(0.543,3.5,3.5,0.301),(2.47492598733333,3.141592654,3.141592654,2.47714082675747),('L119','L30','0','R30','R119'));
#75=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(30.),4.043,0.,0.,#65);
#76=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-3',.T.,(0.663,3.5,3.5,3.154),(2.47492598733333,3.141592654,3.141592654,3.80836500656817),('L119','L30','0','R30','R119'));
Copy link
Collaborator

Choose a reason for hiding this comment

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

(0.663,3.5,3.5,3.154)

3.154 for the road side width doesn't seem to match sketch of intent.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, there is a swap between stations 45 and 60


#77=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(45.),4.043,0.,0.,#65);
#78=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-4',.T.,(0.663,3.5,3.5,0.,0.),(2.47492598733333,3.141592654,3.141592654,3.141592654,3.141592654),('L119','L30','0','R30','R119','139'));

#79=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(60.),4.163,0.,0.,#65);
#80=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-5',.T.,(0.939,3.5,3.5,2.844),(2.47492598733334,3.141592654,3.141592654,3.80825932066667),('L119','L30','0','R30','R139'));

#81=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(90.),4.439,0.,0.,#65);
#82=IFCOPENCROSSPROFILEDEF(.CURVE.,'CrossProfile-6',.T.,(0.,2.249,3.5,3.5,2.429),(3.141592654,3.80811110664562,3.141592654,3.141592654,3.80812208998189),('L139','L119','L30','0','R30','R139'));
#84=IFCPOINTBYDISTANCEEXPRESSION(IFCNONNEGATIVELENGTHMEASURE(107.158),5.749,0.,0.,#65);
#85=IFCSECTIONEDSURFACE(#65,(#72,#75,#77,#79,#81,#84),(#70,#73,#76,#78,#80, #82),.F.);
#86=IFCSHAPEREPRESENTATION(#19,'Road','',(#85));
#87=IFCPRODUCTDEFINITIONSHAPE('','',(#86));
ENDSEC;
END-ISO-10303-21;
Loading