Trendsic Platform Service

<back to all web services

EstimateRevisionGetRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
GET,OPTIONS/v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo}
import Foundation
import ServiceStack

public class EstimateRevisionGetRequest : Codable
{
    public var rfpDocumentUID:String
    public var revisionNo:Int

    required public init(){}
}

public class EstimateRevisionGetResponse : Codable
{
    public var responseStatus:ResponseStatus
    public var revision:EstimateRevision
    public var snapshot:EstimateSnapshot

    required public init(){}
}

public class EstimateRevision : Codable
{
    public var estimateRevisionID:Int
    public var rfpDocumentID:Int
    public var revisionNo:Int
    public var label:String
    public var reason:String
    public var trigger:String
    public var totalAmount:Double
    public var lineCount:Int
    public var createdBy:String
    public var createdAt:Date?
    public var snapshotJson:String

    required public init(){}
}

public class EstimateSnapshot : Codable
{
    public var takenAtUtc:Date
    public var proposal:ProjectProposal
    public var view:EstimatingView

    required public init(){}
}

public class ProjectProposal : Codable
{
    public var rfpDocumentID:Int
    public var mode:String
    public var projectID:Int?
    public var changeOrderID:Int?
    public var projectName:String
    public var clientName:String
    public var projectType:String
    public var projectLocation:String
    public var scope:String
    public var projectDescription:String
    public var contractDurationDays:Int?
    public var bidDueDate:String
    public var estimatedStartDate:Date?
    public var estimatedEndDate:Date?
    public var tasks:[ProposedTask] = []
    public var pendingAddendaDiffs:[AddendaChangeSet] = []
    public var wageDeterminations:[WageDeterminationResult] = []

    required public init(){}
}

public class ProposedTask : Codable
{
    public var seq:Int
    public var name:String
    public var category:String
    public var quantity:Double?
    public var unit:String
    public var sourceItemNumber:String
    public var sourceReference:String
    public var notes:String
    public var resourcing:TaskResourcing
    public var durationDays:Double?
    public var dependsOn:[Int] = []
    public var estimatedStartDate:Date?
    public var estimatedEndDate:Date?
    public var workPackage:TaskWorkPackage
    public var createdJobID:Int?

    required public init(){}
}

public class TaskResourcing : Codable
{
    public var positions:[ResourcedPosition] = []
    public var equipment:[ResourcedEquipment] = []
    public var materials:[ResourcedMaterial] = []
    public var resourcedForQuantity:Double?
    public var productionRatePerDay:Double?
    public var fixedDays:Double?

    required public init(){}
}

public class ResourcedPosition : Codable
{
    public var positionTag:String
    public var hours:Double?
    public var crewSize:Double?
    public var utilization:Double?
    public var fixedDays:Double?
    public var headcount:Int?
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var contactID:Int?

    required public init(){}
}

public class ResourcedEquipment : Codable
{
    public var equipmentID:Int
    public var equipmentName:String
    public var makeModel:String
    public var quantity:Double?
    public var durationDays:Double?
    public var utilization:Double?
    public var fixedDays:Double?
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var suggestedEquipmentID:Int
    public var suggestedEquipmentName:String

    required public init(){}
}

public class ResourcedMaterial : Codable
{
    public var materialID:Int
    public var materialName:String
    public var makeModel:String
    public var quantity:Double?
    public var quantityPerUnit:Double?
    public var unit:String
    public var sourceReference:String
    public var notes:String
    public var isInCatalog:Bool
    public var suggestedMaterialID:Int
    public var suggestedMaterialName:String

    required public init(){}
}

public class TaskWorkPackage : Codable
{
    public var scope:String
    public var limitsOfWork:String
    public var specRefs:[WorkPackageSpecRef] = []
    public var constraints:[String] = []
    public var holdPoints:[String] = []
    public var definitionOfDone:[String] = []
    public var safetyNote:String
    public var rfpRef:String
    public var confidence:Int?
    public var specBook:String
    public var userScope:String
    public var dodRemoved:[Int] = []
    public var dodExtra:[String] = []
    public var userEdited:Bool
    public var dodChecked:[String] = []
    public var redraftNote:String

    required public init(){}
}

public class WorkPackageSpecRef : Codable
{
    public var section:String
    public var title:String

    required public init(){}
}

public class AddendaChangeSet : Codable
{
    public var changeSetId:String
    public var sourceRfpDocumentID:Int
    public var sourceFileName:String
    public var documentType:String
    public var extractedAtUtc:Date?
    public var summary:String
    public var changes:[AddendaChange] = []

    required public init(){}
}

public class AddendaChange : Codable
{
    public var changeId:String
    public var changeType:String
    public var targetSeq:Int?
    public var itemNumber:String
    public var itemName:String
    public var field:String
    public var oldValue:String
    public var newValue:String
    public var Description:String
    public var status:String

    required public init(){}
}

public class WageDeterminationResult : Codable
{
    public var sourceRfpDocumentID:Int
    public var sourceFileName:String
    public var wdNumber:String
    public var extractedAtUtc:Date?
    public var classifications:[WageClassification] = []
    public var source:String
    public var isTrustworthy:Bool
    public var executiveOrderFloor:Double?
    public var publishedDate:String
    public var projectParish:String
    public var warnings:[String] = []

    required public init(){}
}

public class WageClassification : Codable
{
    public var title:String
    public var baseRate:Double?
    public var fringeRate:Double?
    public var parishNote:String
    public var sourceLine:String
    public var benchmarkFringeRate:Double?
    public var fringeCompareNote:String

    required public init(){}
}

public class EstimatingView : Codable
{
    public var rfpDocumentID:Int
    public var projectName:String
    public var clientName:String
    public var bidDueDate:String
    public var projectType:String
    public var settings:EstimateSettingsView
    public var jobs:[EstimateJobView] = []
    public var schedule:[BidScheduleLine] = []
    public var scheduleTotal:Double
    public var variance:EstimateVarianceView
    public var indicative:IndicativeBidView
    public var ownership:BidOwnershipView
    public var summary:EstimateSummaryView
    public var timing:EstimateTimingView
    public var needsRateCount:Int
    public var needsRateKeys:[String] = []
    public var reviewItems:[EstimateReviewItemView] = []
    public var needsReviewCount:Int
    public var canApprove:Bool
    public var canSeePay:Bool

    required public init(){}
}

public class EstimateSettingsView : Codable
{
    public var rfpEstimateID:Int
    public var startDate:Date?
    public var deadlineDate:Date?
    public var workdaysPerWeek:Int
    public var hoursPerDay:Double
    public var weatherPct:Double
    public var ohpPct:Double
    public var contingencyPct:Double
    public var bondPct:Double
    public var holidays:[Date] = []
    public var appliedStartDate:Date?

    required public init(){}
}

public class EstimateJobView : Codable
{
    public var seq:Int
    public var workPackage:WorkPackageView
    public var itemNo:String
    public var name:String
    public var category:String
    public var sourceRef:String
    public var unit:String
    public var quantity:Double
    public var patternCode:String
    public var workdays:Int
    public var hoursPerDay:Double
    public var isNight:Bool
    public var weeklyHours:Double
    public var otFraction:Double
    public var days:Double
    public var effectiveProdPerDay:Double?
    public var crewPremiumApplied:Bool
    public var crewCost:Double
    public var fringeCost:Double
    public var equipmentCost:Double
    public var materialCost:Double
    public var subcontractCost:Double
    public var direct:Double
    public var pricingBasis:String
    public var pricingRuleId:String
    public var pricingBandP25:Double?
    public var pricingBandP75:Double?
    public var pricingBandN:Int?
    public var pricingBandLabel:String
    public var benchmarkUnitPrice:Double?
    public var referencePrice:Double?
    public var referenceRangeMin:Double?
    public var referenceRangeMax:Double?
    public var referenceN:Int?
    public var referenceDate:Date?
    public var referenceBasis:String
    public var referenceUrl:String
    public var crew:[EstimateCrewLineView] = []
    public var equipment:[EstimateEquipmentLineView] = []
    public var materials:[EstimateMaterialLineView] = []
    public var subcontracts:[EstimateSubcontractView] = []

    required public init(){}
}

public class WorkPackageView : Codable
{
    public var hasPackage:Bool
    public var scope:String
    public var limitsOfWork:String
    public var specRefs:[SpecRefView] = []
    public var constraints:[String] = []
    public var holdPoints:[String] = []
    public var dod:[DodItemView] = []
    public var safetyNote:String
    public var provenance:String
    public var specBook:String
    public var userEdited:Bool
    public var redraftNote:String

    required public init(){}
}

public class SpecRefView : Codable
{
    public var section:String
    public var title:String
    public var url:String

    required public init(){}
}

public class DodItemView : Codable
{
    public var key:String
    public var text:String
    public var checked:Bool
    public var source:String

    required public init(){}
}

public class EstimateCrewLineView : Codable
{
    public var role:String
    public var hours:Double
    public var stHours:Double
    public var otHours:Double
    public var hasOt:Bool
    public var premiumApplied:Bool
    public var needsRate:Bool
    public var rateKey:String
    public var chip:String
    public var rrop:Double?
    public var stCost:Double?
    public var otCost:Double?
    public var cost:Double?
    public var fringeCost:Double?

    required public init(){}
}

public class EstimateEquipmentLineView : Codable
{
    public var name:String
    public var quantity:Double
    public var rate:Double?
    public var needsRate:Bool
    public var mobCost:Double
    public var cost:Double
    public var isAvailabilityTracked:Bool
    public var isOwned:Bool
    public var availabilityLabel:String
    public var freedFromProject:String
    public var availableFrom:Date?
    public var rateKey:String
    public var chip:String
    public var rentalExplain:String
    public var usageDays:Double
    public var billedDays:Double

    required public init(){}
}

public class EstimateMaterialLineView : Codable
{
    public var name:String
    public var quantity:Double
    public var unit:String
    public var rate:Double?
    public var needsRate:Bool
    public var cost:Double
    public var rateKey:String
    public var chip:String

    required public init(){}
}

public class EstimateSubcontractView : Codable
{
    public var estimateSubcontractID:Int
    public var taskSeq:Int
    public var vendor:String
    public var amount:Double
    public var scope:String

    required public init(){}
}

public class BidScheduleLine : Codable
{
    public var itemNo:String
    public var Description:String
    public var unit:String
    public var quantity:Double
    public var unitPrice:Double
    public var `extension`:Double
    public var pricingBasis:String
    public var pricingRuleId:String
    public var pricingBandP25:Double?
    public var pricingBandP75:Double?
    public var pricingBandN:Int?
    public var pricingBandLabel:String
    public var benchmarkDeltaPct:Double?
    public var benchmarkFlagged:Bool
    public var benchmarkBasis:String
    public var provenance:String
    public var provenanceNote:String
    public var unpricedResources:Int
    public var totalResources:Int

    required public init(){}
}

public class EstimateVarianceView : Codable
{
    public var lines:[EstimateVarianceLine] = []
    public var itemsTotal:Int
    public var itemsBenchmarked:Int
    public var coverageValuePct:Double
    public var oursTotal:Double
    public var marketTotal:Double
    public var aggregateDeltaPct:Double?
    public var flooredCount:Int
    public var lumpCount:Int
    public var watchCount:Int
    public var outlierCount:Int
    public var criticalCount:Int
    public var note:String

    required public init(){}
}

public class EstimateVarianceLine : Codable
{
    public var seq:Int
    public var itemNo:String
    public var name:String
    public var unit:String
    public var quantity:Double
    public var ourUnitPrice:Double
    public var ourTotal:Double
    public var benchmarkUnitPrice:Double
    public var marketTotal:Double
    public var deltaPct:Double
    public var rateMin:Double?
    public var rateMax:Double?
    public var sampleSize:Int?
    public var outsideRange:Bool?
    public var isFloor:Bool
    public var isLump:Bool
    public var severity:String
    public var adopted:Bool
    public var note:String

    required public init(){}
}

public class IndicativeBidView : Codable
{
    public var lines:[IndicativeLine] = []
    public var bottomUpCount:Int
    public var bottomUpTotal:Double
    public var benchmarkCount:Int
    public var benchmarkTotal:Double
    public var uncoveredCount:Int
    public var uncoveredFloorTotal:Double
    public var indicativeTotal:Double
    public var floorTotal:Double
    public var note:String
    public var posture:String
    public var aggressiveTotal:Double
    public var marketTotal:Double
    public var premiumTotal:Double
    public var noDistributionCount:Int

    required public init(){}
}

public class IndicativeLine : Codable
{
    public var seq:Int
    public var itemNo:String
    public var name:String
    public var unit:String
    public var quantity:Double
    public var source:String
    public var unitPrice:Double
    public var lineTotal:Double
    public var pricePoint:String

    required public init(){}
}

public class BidOwnershipView : Codable
{
    public var ownTotal:Double
    public var borrowedTotal:Double
    public var unknownFloorTotal:Double
    public var scheduleTotal:Double
    public var ownCount:Int
    public var borrowedCount:Int
    public var unknownCount:Int
    public var ownPct:Double
    public var topExposure:[BidExposureLine] = []

    required public init(){}
}

public class BidExposureLine : Codable
{
    public var itemNo:String
    public var Description:String
    public var provenance:String
    public var `extension`:Double
    public var cumulativePct:Double
    public var note:String

    required public init(){}
}

public class EstimateSummaryView : Codable
{
    public var direct:Double
    public var ohpPct:Double
    public var ohpAmount:Double
    public var bondPct:Double
    public var bondAmount:Double
    public var contingencyPct:Double
    public var contingencyAmount:Double
    public var bidTotal:Double
    public var loadFactor:Double
    public var marginPct:Double

    required public init(){}
}

public class EstimateTimingView : Codable
{
    public var totalWorkdays:Double
    public var calendarDays:Int
    public var finish:Date
    public var feasible:Bool
    public var deadline:Date?

    required public init(){}
}

public class EstimateReviewItemView : Codable
{
    public var taskSeq:Int
    public var taskName:String
    public var reason:String
    public var status:String

    required public init(){}
}


Swift EstimateRevisionGetRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/Rfp/{RfpDocumentUID}/Estimate/Revisions/{RevisionNo} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<EstimateRevisionGetResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Revision>
    <CreatedAt>0001-01-01T00:00:00</CreatedAt>
    <CreatedBy>String</CreatedBy>
    <EstimateRevisionID>0</EstimateRevisionID>
    <Label>String</Label>
    <LineCount>0</LineCount>
    <Reason>String</Reason>
    <RevisionNo>0</RevisionNo>
    <RfpDocumentID>0</RfpDocumentID>
    <SnapshotJson>String</SnapshotJson>
    <TotalAmount>0</TotalAmount>
    <Trigger>String</Trigger>
  </Revision>
  <Snapshot>
    <Proposal>
      <BidDueDate>String</BidDueDate>
      <ChangeOrderID>0</ChangeOrderID>
      <ClientName>String</ClientName>
      <ContractDurationDays>0</ContractDurationDays>
      <EstimatedEndDate>0001-01-01T00:00:00</EstimatedEndDate>
      <EstimatedStartDate>0001-01-01T00:00:00</EstimatedStartDate>
      <Mode>String</Mode>
      <PendingAddendaDiffs>
        <AddendaChangeSet>
          <ChangeSetId>String</ChangeSetId>
          <Changes>
            <AddendaChange>
              <ChangeId>String</ChangeId>
              <ChangeType>String</ChangeType>
              <Description>String</Description>
              <Field>String</Field>
              <ItemName>String</ItemName>
              <ItemNumber>String</ItemNumber>
              <NewValue>String</NewValue>
              <OldValue>String</OldValue>
              <Status>String</Status>
              <TargetSeq>0</TargetSeq>
            </AddendaChange>
          </Changes>
          <DocumentType>String</DocumentType>
          <ExtractedAtUtc>0001-01-01T00:00:00</ExtractedAtUtc>
          <SourceFileName>String</SourceFileName>
          <SourceRfpDocumentID>0</SourceRfpDocumentID>
          <Summary>String</Summary>
        </AddendaChangeSet>
      </PendingAddendaDiffs>
      <ProjectDescription>String</ProjectDescription>
      <ProjectID>0</ProjectID>
      <ProjectLocation>String</ProjectLocation>
      <ProjectName>String</ProjectName>
      <ProjectType>String</ProjectType>
      <RfpDocumentID>0</RfpDocumentID>
      <Scope>String</Scope>
      <Tasks>
        <ProposedTask>
          <Category>String</Category>
          <CreatedJobID>0</CreatedJobID>
          <DependsOn xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:int>0</d6p1:int>
          </DependsOn>
          <DurationDays>0</DurationDays>
          <EstimatedEndDate>0001-01-01T00:00:00</EstimatedEndDate>
          <EstimatedStartDate>0001-01-01T00:00:00</EstimatedStartDate>
          <Name>String</Name>
          <Notes>String</Notes>
          <Quantity>0</Quantity>
          <Resourcing>
            <Equipment>
              <ResourcedEquipment>
                <DurationDays>0</DurationDays>
                <EquipmentID>0</EquipmentID>
                <EquipmentName>String</EquipmentName>
                <FixedDays>0</FixedDays>
                <IsInCatalog>false</IsInCatalog>
                <MakeModel>String</MakeModel>
                <Notes>String</Notes>
                <Quantity>0</Quantity>
                <SourceReference>String</SourceReference>
                <SuggestedEquipmentID>0</SuggestedEquipmentID>
                <SuggestedEquipmentName>String</SuggestedEquipmentName>
                <Utilization>0</Utilization>
              </ResourcedEquipment>
            </Equipment>
            <FixedDays>0</FixedDays>
            <Materials>
              <ResourcedMaterial>
                <IsInCatalog>false</IsInCatalog>
                <MakeModel>String</MakeModel>
                <MaterialID>0</MaterialID>
                <MaterialName>String</MaterialName>
                <Notes>String</Notes>
                <Quantity>0</Quantity>
                <QuantityPerUnit>0</QuantityPerUnit>
                <SourceReference>String</SourceReference>
                <SuggestedMaterialID>0</SuggestedMaterialID>
                <SuggestedMaterialName>String</SuggestedMaterialName>
                <Unit>String</Unit>
              </ResourcedMaterial>
            </Materials>
            <Positions>
              <ResourcedPosition>
                <ContactID>0</ContactID>
                <CrewSize>0</CrewSize>
                <FixedDays>0</FixedDays>
                <Headcount>0</Headcount>
                <Hours>0</Hours>
                <IsInCatalog>false</IsInCatalog>
                <Notes>String</Notes>
                <PositionTag>String</PositionTag>
                <SourceReference>String</SourceReference>
                <Utilization>0</Utilization>
              </ResourcedPosition>
            </Positions>
            <ProductionRatePerDay>0</ProductionRatePerDay>
            <ResourcedForQuantity>0</ResourcedForQuantity>
          </Resourcing>
          <Seq>0</Seq>
          <SourceItemNumber>String</SourceItemNumber>
          <SourceReference>String</SourceReference>
          <Unit>String</Unit>
          <WorkPackage>
            <Confidence>0</Confidence>
            <Constraints xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </Constraints>
            <DefinitionOfDone xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </DefinitionOfDone>
            <DodChecked xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </DodChecked>
            <DodExtra xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </DodExtra>
            <DodRemoved xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:int>0</d7p1:int>
            </DodRemoved>
            <HoldPoints xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </HoldPoints>
            <LimitsOfWork>String</LimitsOfWork>
            <RedraftNote>String</RedraftNote>
            <RfpRef>String</RfpRef>
            <SafetyNote>String</SafetyNote>
            <Scope>String</Scope>
            <SpecBook>String</SpecBook>
            <SpecRefs>
              <WorkPackageSpecRef>
                <Section>String</Section>
                <Title>String</Title>
              </WorkPackageSpecRef>
            </SpecRefs>
            <UserEdited>false</UserEdited>
            <UserScope>String</UserScope>
          </WorkPackage>
        </ProposedTask>
      </Tasks>
      <WageDeterminations>
        <WageDeterminationResult>
          <Classifications>
            <WageClassification>
              <BaseRate>0</BaseRate>
              <BenchmarkFringeRate>0</BenchmarkFringeRate>
              <FringeCompareNote>String</FringeCompareNote>
              <FringeRate>0</FringeRate>
              <ParishNote>String</ParishNote>
              <SourceLine>String</SourceLine>
              <Title>String</Title>
            </WageClassification>
          </Classifications>
          <ExecutiveOrderFloor>0</ExecutiveOrderFloor>
          <ExtractedAtUtc>0001-01-01T00:00:00</ExtractedAtUtc>
          <IsTrustworthy>false</IsTrustworthy>
          <ProjectParish>String</ProjectParish>
          <PublishedDate>String</PublishedDate>
          <Source>String</Source>
          <SourceFileName>String</SourceFileName>
          <SourceRfpDocumentID>0</SourceRfpDocumentID>
          <Warnings xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
            <d6p1:string>String</d6p1:string>
          </Warnings>
          <WdNumber>String</WdNumber>
        </WageDeterminationResult>
      </WageDeterminations>
    </Proposal>
    <TakenAtUtc>0001-01-01T00:00:00</TakenAtUtc>
    <View>
      <BidDueDate>String</BidDueDate>
      <CanApprove>false</CanApprove>
      <CanSeePay>false</CanSeePay>
      <ClientName>String</ClientName>
      <Indicative>
        <AggressiveTotal>0</AggressiveTotal>
        <BenchmarkCount>0</BenchmarkCount>
        <BenchmarkTotal>0</BenchmarkTotal>
        <BottomUpCount>0</BottomUpCount>
        <BottomUpTotal>0</BottomUpTotal>
        <FloorTotal>0</FloorTotal>
        <IndicativeTotal>0</IndicativeTotal>
        <Lines>
          <IndicativeLine>
            <ItemNo>String</ItemNo>
            <LineTotal>0</LineTotal>
            <Name>String</Name>
            <PricePoint>String</PricePoint>
            <Quantity>0</Quantity>
            <Seq>0</Seq>
            <Source>String</Source>
            <Unit>String</Unit>
            <UnitPrice>0</UnitPrice>
          </IndicativeLine>
        </Lines>
        <MarketTotal>0</MarketTotal>
        <NoDistributionCount>0</NoDistributionCount>
        <Note>String</Note>
        <Posture>String</Posture>
        <PremiumTotal>0</PremiumTotal>
        <UncoveredCount>0</UncoveredCount>
        <UncoveredFloorTotal>0</UncoveredFloorTotal>
      </Indicative>
      <Jobs>
        <EstimateJobView>
          <BenchmarkUnitPrice>0</BenchmarkUnitPrice>
          <Category>String</Category>
          <Crew>
            <EstimateCrewLineView>
              <Chip>String</Chip>
              <Cost>0</Cost>
              <FringeCost>0</FringeCost>
              <HasOt>false</HasOt>
              <Hours>0</Hours>
              <NeedsRate>false</NeedsRate>
              <OtCost>0</OtCost>
              <OtHours>0</OtHours>
              <PremiumApplied>false</PremiumApplied>
              <RateKey>String</RateKey>
              <Role>String</Role>
              <Rrop>0</Rrop>
              <StCost>0</StCost>
              <StHours>0</StHours>
            </EstimateCrewLineView>
          </Crew>
          <CrewCost>0</CrewCost>
          <CrewPremiumApplied>false</CrewPremiumApplied>
          <Days>0</Days>
          <Direct>0</Direct>
          <EffectiveProdPerDay>0</EffectiveProdPerDay>
          <Equipment>
            <EstimateEquipmentLineView>
              <AvailabilityLabel>String</AvailabilityLabel>
              <AvailableFrom>0001-01-01T00:00:00</AvailableFrom>
              <BilledDays>0</BilledDays>
              <Chip>String</Chip>
              <Cost>0</Cost>
              <FreedFromProject>String</FreedFromProject>
              <IsAvailabilityTracked>false</IsAvailabilityTracked>
              <IsOwned>false</IsOwned>
              <MobCost>0</MobCost>
              <Name>String</Name>
              <NeedsRate>false</NeedsRate>
              <Quantity>0</Quantity>
              <Rate>0</Rate>
              <RateKey>String</RateKey>
              <RentalExplain>String</RentalExplain>
              <UsageDays>0</UsageDays>
            </EstimateEquipmentLineView>
          </Equipment>
          <EquipmentCost>0</EquipmentCost>
          <FringeCost>0</FringeCost>
          <HoursPerDay>0</HoursPerDay>
          <IsNight>false</IsNight>
          <ItemNo>String</ItemNo>
          <MaterialCost>0</MaterialCost>
          <Materials>
            <EstimateMaterialLineView>
              <Chip>String</Chip>
              <Cost>0</Cost>
              <Name>String</Name>
              <NeedsRate>false</NeedsRate>
              <Quantity>0</Quantity>
              <Rate>0</Rate>
              <RateKey>String</RateKey>
              <Unit>String</Unit>
            </EstimateMaterialLineView>
          </Materials>
          <Name>String</Name>
          <OtFraction>0</OtFraction>
          <PatternCode>String</PatternCode>
          <PricingBandLabel>String</PricingBandLabel>
          <PricingBandN>0</PricingBandN>
          <PricingBandP25>0</PricingBandP25>
          <PricingBandP75>0</PricingBandP75>
          <PricingBasis>String</PricingBasis>
          <PricingRuleId>String</PricingRuleId>
          <Quantity>0</Quantity>
          <ReferenceBasis>String</ReferenceBasis>
          <ReferenceDate>0001-01-01T00:00:00</ReferenceDate>
          <ReferenceN>0</ReferenceN>
          <ReferencePrice>0</ReferencePrice>
          <ReferenceRangeMax>0</ReferenceRangeMax>
          <ReferenceRangeMin>0</ReferenceRangeMin>
          <ReferenceUrl>String</ReferenceUrl>
          <Seq>0</Seq>
          <SourceRef>String</SourceRef>
          <SubcontractCost>0</SubcontractCost>
          <Subcontracts>
            <EstimateSubcontractView>
              <Amount>0</Amount>
              <EstimateSubcontractID>0</EstimateSubcontractID>
              <Scope>String</Scope>
              <TaskSeq>0</TaskSeq>
              <Vendor>String</Vendor>
            </EstimateSubcontractView>
          </Subcontracts>
          <Unit>String</Unit>
          <WeeklyHours>0</WeeklyHours>
          <WorkPackage>
            <Constraints xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </Constraints>
            <Dod>
              <RfpWorkPackageService.DodItemView>
                <Checked>false</Checked>
                <Key>String</Key>
                <Source>String</Source>
                <Text>String</Text>
              </RfpWorkPackageService.DodItemView>
            </Dod>
            <HasPackage>false</HasPackage>
            <HoldPoints xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:string>String</d7p1:string>
            </HoldPoints>
            <LimitsOfWork>String</LimitsOfWork>
            <Provenance>String</Provenance>
            <RedraftNote>String</RedraftNote>
            <SafetyNote>String</SafetyNote>
            <Scope>String</Scope>
            <SpecBook>String</SpecBook>
            <SpecRefs>
              <RfpWorkPackageService.SpecRefView>
                <Section>String</Section>
                <Title>String</Title>
                <Url>String</Url>
              </RfpWorkPackageService.SpecRefView>
            </SpecRefs>
            <UserEdited>false</UserEdited>
          </WorkPackage>
          <Workdays>0</Workdays>
        </EstimateJobView>
      </Jobs>
      <NeedsRateCount>0</NeedsRateCount>
      <NeedsRateKeys xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </NeedsRateKeys>
      <NeedsReviewCount>0</NeedsReviewCount>
      <Ownership>
        <BorrowedCount>0</BorrowedCount>
        <BorrowedTotal>0</BorrowedTotal>
        <OwnCount>0</OwnCount>
        <OwnPct>0</OwnPct>
        <OwnTotal>0</OwnTotal>
        <ScheduleTotal>0</ScheduleTotal>
        <TopExposure>
          <BidExposureLine>
            <CumulativePct>0</CumulativePct>
            <Description>String</Description>
            <Extension>0</Extension>
            <ItemNo>String</ItemNo>
            <Note>String</Note>
            <Provenance>String</Provenance>
          </BidExposureLine>
        </TopExposure>
        <UnknownCount>0</UnknownCount>
        <UnknownFloorTotal>0</UnknownFloorTotal>
      </Ownership>
      <ProjectName>String</ProjectName>
      <ProjectType>String</ProjectType>
      <ReviewItems>
        <EstimateReviewItemView>
          <Reason>String</Reason>
          <Status>String</Status>
          <TaskName>String</TaskName>
          <TaskSeq>0</TaskSeq>
        </EstimateReviewItemView>
      </ReviewItems>
      <RfpDocumentID>0</RfpDocumentID>
      <Schedule>
        <BidScheduleLine>
          <BenchmarkBasis>String</BenchmarkBasis>
          <BenchmarkDeltaPct>0</BenchmarkDeltaPct>
          <BenchmarkFlagged>false</BenchmarkFlagged>
          <Description>String</Description>
          <Extension>0</Extension>
          <ItemNo>String</ItemNo>
          <PricingBandLabel>String</PricingBandLabel>
          <PricingBandN>0</PricingBandN>
          <PricingBandP25>0</PricingBandP25>
          <PricingBandP75>0</PricingBandP75>
          <PricingBasis>String</PricingBasis>
          <PricingRuleId>String</PricingRuleId>
          <Provenance>String</Provenance>
          <ProvenanceNote>String</ProvenanceNote>
          <Quantity>0</Quantity>
          <TotalResources>0</TotalResources>
          <Unit>String</Unit>
          <UnitPrice>0</UnitPrice>
          <UnpricedResources>0</UnpricedResources>
        </BidScheduleLine>
      </Schedule>
      <ScheduleTotal>0</ScheduleTotal>
      <Settings>
        <AppliedStartDate>0001-01-01T00:00:00</AppliedStartDate>
        <BondPct>0</BondPct>
        <ContingencyPct>0</ContingencyPct>
        <DeadlineDate>0001-01-01T00:00:00</DeadlineDate>
        <Holidays xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:dateTime>0001-01-01T00:00:00</d5p1:dateTime>
        </Holidays>
        <HoursPerDay>0</HoursPerDay>
        <OhpPct>0</OhpPct>
        <RfpEstimateID>0</RfpEstimateID>
        <StartDate>0001-01-01T00:00:00</StartDate>
        <WeatherPct>0</WeatherPct>
        <WorkdaysPerWeek>0</WorkdaysPerWeek>
      </Settings>
      <Summary>
        <BidTotal>0</BidTotal>
        <BondAmount>0</BondAmount>
        <BondPct>0</BondPct>
        <ContingencyAmount>0</ContingencyAmount>
        <ContingencyPct>0</ContingencyPct>
        <Direct>0</Direct>
        <LoadFactor>0</LoadFactor>
        <MarginPct>0</MarginPct>
        <OhpAmount>0</OhpAmount>
        <OhpPct>0</OhpPct>
      </Summary>
      <Timing>
        <CalendarDays>0</CalendarDays>
        <Deadline>0001-01-01T00:00:00</Deadline>
        <Feasible>false</Feasible>
        <Finish>0001-01-01T00:00:00</Finish>
        <TotalWorkdays>0</TotalWorkdays>
      </Timing>
      <Variance>
        <AggregateDeltaPct>0</AggregateDeltaPct>
        <CoverageValuePct>0</CoverageValuePct>
        <CriticalCount>0</CriticalCount>
        <FlooredCount>0</FlooredCount>
        <ItemsBenchmarked>0</ItemsBenchmarked>
        <ItemsTotal>0</ItemsTotal>
        <Lines>
          <EstimateVarianceLine>
            <Adopted>false</Adopted>
            <BenchmarkUnitPrice>0</BenchmarkUnitPrice>
            <DeltaPct>0</DeltaPct>
            <IsFloor>false</IsFloor>
            <IsLump>false</IsLump>
            <ItemNo>String</ItemNo>
            <MarketTotal>0</MarketTotal>
            <Name>String</Name>
            <Note>String</Note>
            <OurTotal>0</OurTotal>
            <OurUnitPrice>0</OurUnitPrice>
            <OutsideRange>false</OutsideRange>
            <Quantity>0</Quantity>
            <RateMax>0</RateMax>
            <RateMin>0</RateMin>
            <SampleSize>0</SampleSize>
            <Seq>0</Seq>
            <Severity>String</Severity>
            <Unit>String</Unit>
          </EstimateVarianceLine>
        </Lines>
        <LumpCount>0</LumpCount>
        <MarketTotal>0</MarketTotal>
        <Note>String</Note>
        <OursTotal>0</OursTotal>
        <OutlierCount>0</OutlierCount>
        <WatchCount>0</WatchCount>
      </Variance>
    </View>
  </Snapshot>
</EstimateRevisionGetResponse>