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

93 changes: 93 additions & 0 deletions SectionedSurface-Aplitop-1/SectionedSurface-Aplitop-1.IFC
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition []'),'2;1');
Copy link
Collaborator

Choose a reason for hiding this comment

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

ViewDefinition can be set to [Ifc4X3NotAssigned] for now.

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

FILE_NAME('SectionedSurface-Aplitop-1.ifc','2021-04-06T09:56:30',(),(),'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('2zHKom8bz2oQNeL25oFkgh',#9,'Site',$,$,#24,$,$,.ELEMENT.,$,$,$,$,#2);
#26=IFCPROJECT('0VGYxaGHb3APEG3MpCN2LN',#9,'Project','',$,'',$,$,#14);
#27=IFCRELAGGREGATES('3s8mCI$QTDxwH4srCKLj04',#9,$,$,#26,(#25));
#28=IFCROAD('2VBIkfjsriouJ$gISkmggg',#9,'Road','','ObjectType',#24,#272,'LongName',.COMPLEX.,.USERDEFINED.);
#29=IFCRELAGGREGATES('3Z1$Qqe6XEcQRCqJoCdqUM',#9,$,$,#25,(#28));
#30=IFCALIGNMENT('1hmNMQuc53NAma6AFvRPA6',$,'Eje1 (1)',$,$,#24,#49,$);
#31=IFCALIGNMENTHORIZONTAL('2LpapCuJP0I8eaolX4R5iL',$,'Eje1 (1)',$,$,#24,$,0.);
#32=IFCRELNESTS('2q4l6QB$b5o8KpfezYsjnf',#9,$,$,#30,(#31,#51));
#33=IFCALIGNMENTSEGMENT('36ZpVDkF51Xh2KpEiWEhlp',$,$,$,$,#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('1qVzEdro5CFf5K20Wsg4rv',#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('23N93zFe58jQ8A06YyvHJN',$,$,$,(#30),#25);
#51=IFCALIGNMENTVERTICAL('3KIanMfxz9EvusDgX$ukNj',#9,'Eje1 (1)',$,$,#24,#67);
#52=IFCALIGNMENTSEGMENT('3$lXDoL_910hvVFYFV6PPk',$,$,$,$,#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('3rAxwoD390Z8xxMdCl9q5h',#9,$,$,#51,(#52));
#65=IFCGRADIENTCURVE((#63),.F.,#46,$);
#66=IFCSHAPEREPRESENTATION(#47,'Axis','Curve3D',(#65));
#67=IFCPRODUCTDEFINITIONSHAPE($,$,(#66));


#272=IFCPRODUCTDEFINITIONSHAPE($,$,(#273));
#273=IFCSHAPEREPRESENTATION(#19,'Profiles','',(#274));
#274=IFCSECTIONEDSURFACE(#65,(#275,#277,#279,#281,#283),(#276,#278,#280,#282,#284),.F.);
Copy link
Collaborator

Choose a reason for hiding this comment

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

It looks to me as if the list of CrossSectionPositions should come as attribute 2 and CrossSections as attribute nr 3. I checked with the KIT checker where the data passes regardless of the ordering between these two?

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, you are right. I will swap them.


#275=IFCOPENCROSSPROFILEDEF(.CURVE.,$,.T.,(0.031,3.5,3.5,0.056),(-0.667,0.,0.,-0.667),('119','30','0','30','139'));
Copy link
Collaborator

Choose a reason for hiding this comment

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

The slope values seem off. Please consult the documentation (x to the left and y up, positive angles from x to y). Typically, the slope value when starting from the left would be relatively close to PI radians.

Also, unique tags would be recommended.

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, I'm changing slopes

#276=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(0.),IFCLENGTHMEASURE(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.

From looking at the xml data, it would seem that there should be a negative vertical offset needed in this case. Also, i am not sure where the value 3.531 comes from. In the xml at station 0 we have -2.736 and at station 20 we have -3.778.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Value 3.351 is a left displacement of the OpenCrossProfile. First two widths (0.031 & 3.5) are located at left side of alignment.
I will check vertical offsets.


#277=IFCOPENCROSSPROFILEDEF(.CURVE.,$,.T.,(0.543,3.5,3.5,0.301),(-0.6667,0.,0.,-0.667),('119','30','0','30','119'));
#278=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(30.),IFCLENGTHMEASURE(4.043),0.,0.,#65);

#279=IFCOPENCROSSPROFILEDEF(.CURVE.,$,.T.,(0.663,3.5,3.5,3.154),(-0.667,0.,0.,0.6667),('139','30','0','30','139'));
Copy link
Collaborator

Choose a reason for hiding this comment

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

If it is by design to switch from tag '119' to tag '139', I would recommend adding '139' to the previous cross section or '119' to this. See documentation:
image

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, I will include one more vertex with 139 code in previous/next profile, and 0 width vector.

#280=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(60.),IFCLENGTHMEASURE(4.163),0.,0.,#65);

#281=IFCOPENCROSSPROFILEDEF(.CURVE.,$,.T.,(0.939,3.5,3.5,2.884),(-0.667,0.,0.,0.667),('139','30','0','30','139'));
#282=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(90.),IFCLENGTHMEASURE(4.439),0.,0.,#65);

#283=IFCOPENCROSSPROFILEDEF(.CURVE.,$,.T.,(2.249,3.5,3.5,2.429),(0.667,0.,0.,0.667),('139','30','0','30','139'));
#284=IFCPOINTBYDISTANCEEXPRESSION(IFCLENGTHMEASURE(107.158),IFCLENGTHMEASURE(5.749),0.,0.,#65);

ENDSEC;
END-ISO-10303-21;
Loading