Clearance report rail+cant

How do i do this?

 

 

I have to replace wooden sleepers over a bridge and I have survey points on both left and right side of each sleeper set out on the bridge deck (see attached drawing).

I need to know the distance between the bridge deck level and the TOR level.

New centre line (horizontal and vertical) and Cant are known and the offset is unnecessary.

The clearance report returns the distance to the vertical design and not vertical + cant design.

How can I get information for inner and outer rail?

Thanks

Paulo Tomás

  • As a quick answer that should work but isn't maybe the best.

    1. Create the rail in a surface as feature
    2. Assuming you have the surveyed points as COGO points
      1. do a clearance report
      2. set the reference as the alignment
      3. in the COGO points load the requested COGO points
      4. in the features leaf select the one rail feature from the list
      5. apply
      6. use the FeatureToFeature style sheet in the Clearance folder

    The above solution doesn't work well because COGO points must match the station interval of the reference alignment. Not possible.

    Another one is to import the rail as alignment and use also the clearance report between the rail (as alignment) and cogo points.
    The style sheet to use is VerticalClearanceToCogoPoints.
    It looks ok but you don't have the station of the centerline



  • The Clearance Report .xml has the following:

    - <ClearancePoint firstOffset="0.099140414" projectsToAlignment="true" origin="point">

     <offsetPoint name="ml16" style='Default' northing='315444.833867798' easting='320768.803463344' elevation='0.000000000' pointType='Cogo' />

    - <centerLinePoint instantaneousRadius="-590.000000000" instantaneousGrade="0.00000000000000" tangentDirection="1.953177794084" radialDirection="3.523974120879" cant="0.095000000" widthAlong="0.095939861" heightAbove="-0.053671360">

    - <point northing="315444.925848160" easting="320768.840455706" elevation="0.000000000" offset="0.000000000" pointType="POC" type="POC">

     <station internalStation="100299.985226339" externalStation="100299.985226339" externalStationName="" />

     </point>

     </centerLinePoint>

     </ClearancePoint>

    So you have the centerline station, elevation, cant and curvature (i.e. signed radius)

    And you have the cogo point's name and elevation.

    So with a little bit of style sheet development, you can get the vertical offset from the rail to the survey point.  The style sheet will use the centerline radius to determine whether to add 1000.0 * cant (I am assuming metric with the 1000.0 ) to the centerline elevation or not.

    Regards,

    R. W. Bradshaw



  • Hi I can't attached the file so copy/paste .!!!

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:inr="http://mycompany.com/mynamespace">
        <xsl:include href="../format.xsl"/>
        <xsl:param name="xslRootDirectory" select="inr:xslRootDirectory"/>
        <!-- Clearance to Track Plane Report -->
        <xsl:variable name="uniqueClearanceAlignments" select="//ClearancePoints/ClearancePoint[not(@clearanceAlignmentName = preceding-sibling::ClearancePoint/@clearanceAlignmentName )][@origin = 'alignment']/@clearanceAlignmentName"/>
        <xsl:variable name="uniqueClearanceFeatures" select="//ClearancePoints/ClearancePoint[not(@clearanceAlignmentName = preceding-sibling::ClearancePoint/@clearanceAlignmentName )][@origin = 'feature']/@clearanceAlignmentName"/>
        <xsl:template match="/">
            <xsl:variable name="gridOut" select="inr:SetGridOut(number(InRoads/@outputGridScaleFactor))"/>
            <html>
                <head>
                    <link rel="stylesheet" type="text/css" href="{$xslRootDirectory}/_Themes/engineer/theme.css"/>
                    <!-- Title displayed in browser Title Bar -->
                    <title lang="en">Clearance to Track Plane Report</title>
                </head>
                <body>
                    <xsl:choose>
                        <xsl:when test="$xslShowHelp = 'true'">
                            <xsl:call-template name="StyleSheetHelp"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:for-each select="InRoads">
                                <center>
                                    <!-- Report Title -->
                                    <h2 lang="en">Survey Point - Geometry</h2>
                                    <p lang="en">
                                        Report Created by Zaher: &#xa0;<xsl:value-of select="inr:date()"/><br/>
                                        Time: &#xa0;<xsl:value-of select="inr:time()"/>
                                    </p>
                                </center>
                                <!-- Project Data -->
                                <xsl:for-each select="GeometryProject">
                                    <table class="margin" cellpadding="2" width="90%">
                                        <tbody>
                                            <tr>
                                                <th align="right" lang="en">Project:&#xa0; </th>
                                                <td align="left" colspan="2"><xsl:value-of select="@name"/></td>
                                            </tr>
                                            <tr>
                                                <th align="right" lang="en">Description:&#xa0; </th>
                                                <td align="left" colspan="2"><xsl:value-of select="@description"/></td>
                                            </tr>
                                            <tr>
                                                <th align="right" lang="en">File Name:&#xa0; </th>
                                                <td align="left" colspan="2"><xsl:value-of select="@file"/></td>
                                            </tr>
                                            <tr>
                                                <th align="right" lang="en">Last Revised:&#xa0; </th>
                                                <td align="left" colspan="2"><xsl:value-of select="concat(@lastRevisedBy, '  ', @lastRevisedDate)"/></td>
                                            </tr>
                                            <tr>
                                                <th align="right" lang="en">Baseline Alignment:&#xa0; </th>
                                                <td align="left" colspan="2"><xsl:value-of select="HorizontalAlignment/@name"/></td>
                                            </tr>
                                            <tr>
                                                <th align="right" lang="en" style='font-size: 80%'>Input Grid Factor:&#xa0; </th>
                                                <td align="left" style='font-size: 80%'><xsl:value-of select='../@inputGridScaleFactor' /></td>
                                                <td align="right" lang="en" style='font-size: 80%'>
                                                    <strong>Note:&#xa0; </strong>All units in this report are in
                                                    <xsl:if test="//@linearUnits = 'Imperial'">feet</xsl:if>
                                                    <xsl:if test="//@linearUnits = 'Metric'">meters</xsl:if>
                                                    unless specified otherwise.
                                                </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                    <hr />
                                    <!-- Clearance Points from Cogo Data -->
                                    <xsl:if test="//ClearancePoint[@origin = 'point']">
                                        <xsl:for-each select="HorizontalAlignment/ClearancePoints">
                                            <table class="margin" cellpadding="2" width="80%">
                                                <thead style='display:table-header-group'>
                                                    <tr>
                                                        <th class="underline" lang="en" rowspan="3" valign="bottom">Cogo<br/>Point</th>
                                                        <th class="underline" lang="en" rowspan="3" valign="bottom">Baseline<br/>Station</th>
                                                        <xsl:if test="//@linearUnits = 'Imperial'">
                                                            <th class="underline" lang="en" rowspan="3" valign="bottom">Cant<br/>(in)</th>
                                                        </xsl:if>
                                                        <xsl:if test="//@linearUnits = 'Metric'">
                                                            <th class="underline" lang="en" rowspan="3" valign="bottom">Cant<br/>(mm)</th>
                                                        </xsl:if>
                                                        <th class="underline" lang="en" rowspan="3" valign="bottom">Horizontal<br/>Offset</th>
                                                        <th class="underline" lang="en" rowspan="3" valign="bottom">Vertical<br/>Offset</th>
                                                        <th colspan="2" class="underline" lang="en">Track Plane</th>
                                <th colspan="2" class="underline" lang="en">Rail (Gauge = 1.435)</th>
                                <th colspan="1" rowspan="3" class="underline" lang="en" valign="bottom">Point<br/>Elevation</th>
                                <th colspan="1" rowspan="3" class="underline" lang="en" valign="bottom"> Center Point<br/>Elevation</th>
                                
                                
                                                    </tr>
                                                    <tr>
                                                        <th class="underline" lang="en" rowspan="2" valign="bottom">Horizontal<br/>Offset</th>
                                                        <th class="underline" lang="en" rowspan="2" valign="bottom">Vertical<br/>Offset</th>
                                                    </tr>
                            <tr>
                                                        <th class="underline" lang="en" rowspan="2" valign="bottom">V_Offset<br/>Left_Rail</th>
                                                        <th class="underline" lang="en" rowspan="2" valign="bottom">V_Offset<br/>Right_Rail</th>
                                                    </tr>
                            
                                                        
                                                    
                                                </thead>
                                                <tbody>
                                                    <xsl:for-each select="ClearancePoint[@origin = 'point'][offsetPoint][@projectsToAlignment = 'true']">
                                                    <xsl:sort select="centerLinePoint/point/station/@internalStation" data-type="number"/>
                                                        <tr>
                                                            <td align="center">
                                                                <xsl:value-of select="offsetPoint/@name"/>
                                                            </td>
                                                            <td align="right" nowrap="nowrap">
                                                                <xsl:value-of select="inr:stationFormat(number(centerLinePoint/point/station/@externalStation), $xslStationFormat, $xslStationPrecision, string(centerLinePoint/point/station/@externalStationName))"/>
                                                            </td>
                                                            <xsl:if test="//@linearUnits = 'Imperial'">
                                                                <td align="right">
                                    <xsl:choose>
                                        <xsl:when test="centerLinePoint/@instantaneousRadius &lt;= 0">

                                                                        <xsl:value-of select="inr:distanceFormat(number(-1 * centerLinePoint/@cant * 12), $xslDistancePrecision)"/>
                                                                
                                        </xsl:when>
                                        <xsl:when test="centerLinePoint/@instantaneousRadius &gt;= 0">
                                            <xsl:value-of select="inr:distanceFormat(number(centerLinePoint/@cant * 12), $xslDistancePrecision)"/>
                                        </xsl:when>
                                        </xsl:choose>  
                                        </td>
                                                            </xsl:if>
                                                            <xsl:if test="//@linearUnits = 'Metric'">
                                    <td align="right">
                                        <xsl:choose>
                                        <xsl:when test="centerLinePoint/@instantaneousRadius &lt;= 0">
                                                                
                                                                        <xsl:value-of select="inr:distanceFormat(number(-1 * centerLinePoint/@cant * 1000), $xslDistancePrecision)"/>
                                                                        </xsl:when>
                                    
                                    <xsl:when test="centerLinePoint/@instantaneousRadius &gt;= 0">
                                                                
                                                                    <xsl:value-of select="inr:distanceFormat(number(centerLinePoint/@cant * 1000), $xslDistancePrecision)"/>
                                        </xsl:when>
                                        </xsl:choose>                                                           
                                    </td>    
                                    
                                                            </xsl:if>
                                                            <td align="right">
                                                                <xsl:value-of select="inr:distanceFormat(number(@firstOffset), $xslDistancePrecision)"/>
                                                            </td>
                                                            <td align="right">
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation - centerLinePoint/point/@elevation), $xslElevationPrecision)"/>
                                                            </td>
                                                            <td align="right">
                                                                <xsl:value-of select="inr:distanceFormat(number(centerLinePoint/@widthAlong), $xslDistancePrecision)"/>
                                                            </td>
                                                            <td align="right">
                                                                <xsl:value-of select="inr:elevationFormat(number(centerLinePoint/@heightAbove), $xslElevationPrecision)"/>
                                                            </td>

                                <td align="right">
                                <xsl:choose>
                                <xsl:when test="centerLinePoint/@instantaneousRadius &lt;= 0">
                                
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation - ((centerLinePoint/point/@elevation)-( 0 * centerLinePoint/@cant))), $xslElevationPrecision)"/>
                                                            
                                                            </xsl:when>
                                <xsl:when test="centerLinePoint/@instantaneousRadius &gt;= 0">
                                
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation - ((centerLinePoint/point/@elevation)+(centerLinePoint/@cant))), $xslElevationPrecision)"/>
                                </xsl:when>
                                </xsl:choose>                                                         
                                </td>

                                <td align="right">
                                <xsl:choose>
                                <xsl:when test="centerLinePoint/@instantaneousRadius &lt;= 0">
                                
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation - ((centerLinePoint/point/@elevation)+(centerLinePoint/@cant))), $xslElevationPrecision)"/>
                                                            
                                                            </xsl:when>
                                <xsl:when test="centerLinePoint/@instantaneousRadius &gt;= 0">
                                
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation - ((centerLinePoint/point/@elevation)-( 0 * centerLinePoint/@cant))), $xslElevationPrecision)"/>
                                </xsl:when>
                                </xsl:choose>                                                         
                                </td>
                                <td align="right">
                                                                <xsl:value-of select="inr:elevationFormat(number(offsetPoint/@elevation), $xslElevationPrecision)"/>
                                                            </td>
                                <td align="right">
                                                                <xsl:value-of select="inr:elevationFormat(number(centerLinePoint/point/@elevation), $xslElevationPrecision)"/>
                                                            </td>
                                                            


                                                        </tr>
                                                    </xsl:for-each>
                                                </tbody>
                                            </table>
                                        </xsl:for-each>
                                    </xsl:if>
                                </xsl:for-each>
                            </xsl:for-each>
                        </xsl:otherwise>
                    </xsl:choose>
                </body>
            </html>
        </xsl:template>
        <xsl:template name="StyleSheetHelp">
            <div class="section1">
                <h4 lang="en">Notes</h4>
                <p class="normal1" lang="en">
                    You must create clearance points for this report by selecting <em>Tools &gt; XML Reports
                    &gt; Clearance</em>.
                </p>
                <p class="normal1" lang="en">
                    You must include at least one horizontal alignment or feature on the <em>General</em> leaf
                    in the <em>From</em> fields.
                </p>
                <p class="normal1" lang="en">
                    You must also include at least one horizontal alignment on the <em>Horizontal Alignments
                    </em> leaf or one feature on the <em>Features</em> leaf.
                </p>
                <p class="small" lang="en">
                    <em>&#xa9; 2009 Bentley Systems, Inc</em>
                </p>
            </div>
        </xsl:template>
    </xsl:stylesheet>