| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<!-- XBRL document created with Toppan Merrill Bridge 10.4.0.13 --> |
<!-- Based on XBRL 2.1 --> |
<!-- Created on: 10/31/2023 5:41:17 PM --> |
<!-- Modified on: 10/31/2023 5:41:17 PM --> |
<xsd:schema targetNamespace="http://www.topbuild.com/20230930" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xl="http://www.xbrl.org/2003/XLink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:attributeFormDefault="unqualified" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:us-types="http://fasb.org/us-types/2023" xmlns:negated="http://www.xbrl.org/2009/role/negated" xmlns:srt-types="http://fasb.org/srt-types/2023" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:bld="http://www.topbuild.com/20230930" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:currency="http://xbrl.sec.gov/currency/2023" xmlns:us-roles="http://fasb.org/us-roles/2023" xmlns:sic="http://xbrl.sec.gov/sic/2023" xmlns:srt-roles="http://fasb.org/srt-roles/2023" xmlns:stpr="http://xbrl.sec.gov/stpr/2023" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:exch="http://xbrl.sec.gov/exch/2023" xmlns:naics="http://xbrl.sec.gov/naics/2023" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:srt="http://fasb.org/srt/2023" xmlns:deprecated="http://www.xbrl.org/2009/role/deprecated" xmlns:net="http://www.xbrl.org/2009/role/net" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:dtr="http://www.xbrl.org/2009/dtr" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2023"> |
| <xsd:annotation> |
| | <xsd:appinfo> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureStandardAndCustomAxisDomainDefaults" id="DisclosureStandardAndCustomAxisDomainDefaults"> |
| <link:definition> 99900 - Disclosure - Standard And Custom Axis Domain Defaults </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedBalanceSheets" id="StatementCondensedConsolidatedBalanceSheets"> |
| <link:definition> 00100 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfOperations" id="StatementCondensedConsolidatedStatementsOfOperations"> |
| <link:definition> 00200 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF OPERATIONS </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfComprehensiveIncome" id="StatementCondensedConsolidatedStatementsOfComprehensiveIncome"> |
| <link:definition> 00300 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfCashFlows" id="StatementCondensedConsolidatedStatementsOfCashFlows"> |
| <link:definition> 00400 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CASH FLOWS </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesGoodwillDetails" id="DisclosureGoodwillAndOtherIntangiblesGoodwillDetails"> |
| <link:definition> 40401 - Disclosure - Goodwill and Other Intangibles - Goodwill (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesOtherIntangibleAssetsDetails" id="DisclosureGoodwillAndOtherIntangiblesOtherIntangibleAssetsDetails"> |
| <link:definition> 40402 - Disclosure - Goodwill and Other Intangibles - Other intangible assets (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtReconciliationDetails" id="DisclosureLongTermDebtReconciliationDetails"> |
| <link:definition> 40501 - Disclosure - Long-Term Debt - Reconciliation (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtReconciliationDetailsCalc2" id="DisclosureLongTermDebtReconciliationDetailsCalc2"> |
| <link:definition> 40501 - Disclosure - Long-Term Debt - Reconciliation (Details) (Calc2) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtScheduleOfDebtMaturityDetails" id="DisclosureLongTermDebtScheduleOfDebtMaturityDetails"> |
| <link:definition> 40502 - Disclosure - Long-Term Debt - Schedule of debt maturity (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtRevolvingFacilityDetails" id="DisclosureLongTermDebtRevolvingFacilityDetails"> |
| <link:definition> 40504 - Disclosure - Long-Term Debt - Revolving Facility (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureNetIncomePerShareCalculationDetails" id="DisclosureNetIncomePerShareCalculationDetails"> |
| <link:definition> 40901 - Disclosure - Net Income Per Share - Calculation (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureShareBasedCompensationActivityDetails" id="DisclosureShareBasedCompensationActivityDetails"> |
| <link:definition> 41002 - Disclosure - Share-Based Compensation - Activity (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBusinessCombinationsSummaryDetails" id="DisclosureBusinessCombinationsSummaryDetails"> |
| <link:definition> 41101 - Disclosure - Business Combinations - Summary (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureAccruedLiabilitiesDetails" id="DisclosureAccruedLiabilitiesDetails"> |
| <link:definition> 41201 - Disclosure - Accrued Liabilities (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureIncomeTaxesDeferredTaxesCalc2" id="DisclosureIncomeTaxesDeferredTaxesCalc2"> |
| <link:definition> 41211 - Disclosure - Income Taxes - Deferred Taxes (Calc 2) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingenciesDetails" id="DisclosureOtherCommitmentsAndContingenciesDetails"> |
| <link:definition> 41301 - Disclosure - Other Commitments and Contingencies (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DocumentDocumentAndEntityInformation" id="DocumentDocumentAndEntityInformation"> |
| <link:definition> 00090 - Document - Document and Entity Information </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" id="StatementCondensedConsolidatedBalanceSheetsParenthetical"> |
| <link:definition> 00105 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS (Parenthetical) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfChangesInEquity" id="StatementCondensedConsolidatedStatementsOfChangesInEquity"> |
| <link:definition> 00500 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/StatementCondensedConsolidatedStatementsOfChangesInEquityParenthetical" id="StatementCondensedConsolidatedStatementsOfChangesInEquityParenthetical"> |
| <link:definition> 00505 - Statement - CONDENSED CONSOLIDATED STATEMENTS OF CHANGES IN EQUITY (Parenthetical) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBasisOfPresentation" id="DisclosureBasisOfPresentation"> |
| <link:definition> 10101 - Disclosure - Basis of Presentation </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureAccountingPolicies" id="DisclosureAccountingPolicies"> |
| <link:definition> 10201 - Disclosure - Accounting Policies </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangibles" id="DisclosureGoodwillAndOtherIntangibles"> |
| <link:definition> 10401 - Disclosure - Goodwill and Other Intangibles </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebt" id="DisclosureLongTermDebt"> |
| <link:definition> 10501 - Disclosure - Long-Term Debt </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureFairValueMeasurements" id="DisclosureFairValueMeasurements"> |
| <link:definition> 10601 - Disclosure - Fair Value Measurements </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureSegmentInformation" id="DisclosureSegmentInformation"> |
| <link:definition> 10701 - Disclosure - Segment Information </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureIncomeTaxes" id="DisclosureIncomeTaxes"> |
| <link:definition> 10801 - Disclosure - Income Taxes </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureNetIncomePerShare" id="DisclosureNetIncomePerShare"> |
| <link:definition> 10901 - Disclosure - Net Income Per Share </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureShareBasedCompensation" id="DisclosureShareBasedCompensation"> |
| <link:definition> 11001 - Disclosure - Share-Based Compensation </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBusinessCombinations" id="DisclosureBusinessCombinations"> |
| <link:definition> 11101 - Disclosure - Business Combinations </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureAccruedLiabilities" id="DisclosureAccruedLiabilities"> |
| <link:definition> 11201 - Disclosure - Accrued Liabilities </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingencies" id="DisclosureOtherCommitmentsAndContingencies"> |
| <link:definition> 11301 - Disclosure - Other Commitments and Contingencies </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureAccountingPoliciesPolicies" id="DisclosureAccountingPoliciesPolicies"> |
| <link:definition> 20202 - Disclosure - Accounting Policies (Policies) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureGoodwillAndOtherIntangiblesTables" id="DisclosureGoodwillAndOtherIntangiblesTables"> |
| <link:definition> 30403 - Disclosure - Goodwill and Other Intangibles (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtTables" id="DisclosureLongTermDebtTables"> |
| <link:definition> 30503 - Disclosure - Long-Term Debt (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureSegmentInformationTables" id="DisclosureSegmentInformationTables"> |
| <link:definition> 30703 - Disclosure - Segment Information (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureNetIncomePerShareTables" id="DisclosureNetIncomePerShareTables"> |
| <link:definition> 30903 - Disclosure - Net Income Per Share (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureShareBasedCompensationTables" id="DisclosureShareBasedCompensationTables"> |
| <link:definition> 31003 - Disclosure - Share-Based Compensation (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBusinessCombinationsTables" id="DisclosureBusinessCombinationsTables"> |
| <link:definition> 31103 - Disclosure - Business Combinations (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureAccruedLiabilitiesTables" id="DisclosureAccruedLiabilitiesTables"> |
| <link:definition> 31203 - Disclosure - Accrued Liabilities (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureOtherCommitmentsAndContingenciesTables" id="DisclosureOtherCommitmentsAndContingenciesTables"> |
| <link:definition> 31303 - Disclosure - Other Commitments and Contingencies (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBasisOfPresentationDetails" id="DisclosureBasisOfPresentationDetails"> |
| <link:definition> 40101 - Disclosure - Basis of Presentation (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureRevenueRecognitionDisaggregationDetails" id="DisclosureRevenueRecognitionDisaggregationDetails"> |
| <link:definition> 40301 - Disclosure - Revenue Recognition - Disaggregation (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureRevenueRecognitionOtherDetails" id="DisclosureRevenueRecognitionOtherDetails"> |
| <link:definition> 40302 - Disclosure - Revenue Recognition - Other (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtKeyTermsOfCreditAgreementDetails" id="DisclosureLongTermDebtKeyTermsOfCreditAgreementDetails"> |
| <link:definition> 40503 - Disclosure - Long-Term Debt - Key Terms of Credit Agreement (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtSeniorNotesAndEquipmentNotesDetails" id="DisclosureLongTermDebtSeniorNotesAndEquipmentNotesDetails"> |
| <link:definition> 40505 - Disclosure - Long-Term Debt - Senior Notes and Equipment Notes (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureLongTermDebtOtherDetails" id="DisclosureLongTermDebtOtherDetails"> |
| <link:definition> 40506 - Disclosure - Long-Term Debt - Other (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureFairValueMeasurementsDetails" id="DisclosureFairValueMeasurementsDetails"> |
| <link:definition> 40601 - Disclosure - Fair Value Measurements (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureSegmentInformationDetails" id="DisclosureSegmentInformationDetails"> |
| <link:definition> 40701 - Disclosure - Segment Information (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureIncomeTaxesDetails" id="DisclosureIncomeTaxesDetails"> |
| <link:definition> 40801 - Disclosure - Income Taxes (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureNetIncomePerShareAntiDilutiveCommonStockEquivalentsDetails" id="DisclosureNetIncomePerShareAntiDilutiveCommonStockEquivalentsDetails"> |
| <link:definition> 40902 - Disclosure - Net Income Per Share - Anti-dilutive common stock equivalents (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureShareBasedCompensationExpenseDetails" id="DisclosureShareBasedCompensationExpenseDetails"> |
| <link:definition> 41001 - Disclosure - Share-Based Compensation - Expense (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureBusinessCombinationsIntangiblesDetails" id="DisclosureBusinessCombinationsIntangiblesDetails"> |
| <link:definition> 41102 - Disclosure - Business Combinations - Intangibles (Details) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureRevenueRecognition" id="DisclosureRevenueRecognition"> |
| <link:definition> 10301 - Disclosure - Revenue Recognition </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureRevenueRecognitionTables" id="DisclosureRevenueRecognitionTables"> |
| <link:definition> 30303 - Disclosure - Revenue Recognition (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:roleType roleURI="http://www.topbuild.com/role/DisclosureFairValueMeasurementsTables" id="DisclosureFairValueMeasurementsTables"> |
| <link:definition> 30603 - Disclosure - Fair Value Measurements (Tables) </link:definition> |
| <link:usedOn> link:presentationLink </link:usedOn> |
| <link:usedOn> link:calculationLink </link:usedOn> |
| <link:usedOn> link:definitionLink </link:usedOn> |
| </link:roleType> |
| | | <link:linkbaseRef xlink:type="simple" xlink:href="bld-20230930_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/> |
| | | <link:linkbaseRef xlink:type="simple" xlink:href="bld-20230930_cal.xml" xlink:title="Calculation Links, all" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/> |
| | | <link:linkbaseRef xlink:type="simple" xlink:href="bld-20230930_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/> |
| | | <link:linkbaseRef xlink:type="simple" xlink:href="bld-20230930_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/> |
| | | </xsd:appinfo> |
| | </xsd:annotation> |
| <xsd:import namespace="http://xbrl.sec.gov/ecd/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd"/> |
| <xsd:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd"/> |
| <xsd:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/> |
| <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd"/> |
| <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/> |
| <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/> |
| <xsd:import namespace="http://fasb.org/us-roles/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd"/> |
| <xsd:import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd"/> |
| <xsd:import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd"/> |
| <xsd:import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd"/> |
| <xsd:import namespace="http://xbrl.sec.gov/ecd-sub/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd"/> |
| <xsd:element name="InstallationSegmentMember" id="bld_InstallationSegmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration"/> |
| <xsd:element name="DistributionSegmentMember" id="bld_DistributionSegmentMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_LineOfCreditFacilitySublimitAvailableForLettersOfCredit" name="LineOfCreditFacilitySublimitAvailableForLettersOfCredit" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_LineOfCreditFacilitySublimitAvailableForSwinglineLoans" name="LineOfCreditFacilitySublimitAvailableForSwinglineLoans" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_DebitInstrumentApplicableMarginBasedOnTotalLeverageRatio" name="DebitInstrumentApplicableMarginBasedOnTotalLeverageRatio" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentCovenantNetLeverageRatio" name="DebtInstrumentCovenantNetLeverageRatio" nillable="true" type="xbrli:pureItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element name="IncrementalCommonSharesAttributableToDilutiveEffectOfRestrictedStockAwards" id="bld_IncrementalCommonSharesAttributableToDilutiveEffectOfRestrictedStockAwards" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/> |
| <xsd:element name="IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions" id="bld_IncrementalCommonSharesAttributableToDilutiveEffectOfStockOptions" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_LongTermIncentivePlanMember" name="LongTermIncentivePlanMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_AccruedLiabilitiesDisclosureTextBlock" name="AccruedLiabilitiesDisclosureTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent" name="AccruedLiabilitiesAndEmployeeRelatedLiabilitiesCurrent" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageGrantDateFairValue" nillable="true" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_PerformanceBondsOutstanding" name="PerformanceBondsOutstanding" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_LicenseAndInsuranceRelatedAndOtherBondsOutstanding" name="LicenseAndInsuranceRelatedAndOtherBondsOutstanding" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_RainGuttersMember" name="RainGuttersMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_VestingCriteriaAxis" name="VestingCriteriaAxis" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_VestingCriteriaDomain" name="VestingCriteriaDomain" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_VestingBasedOnServiceMember" name="VestingBasedOnServiceMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_VestingBasedOnPerformanceMember" name="VestingBasedOnPerformanceMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_VestingBasedOnMarketConditionsMember" name="VestingBasedOnMarketConditionsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeOneMember" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeOneMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeTwoMember" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeTwoMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeThreeMember" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeThreeMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeFourMember" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeFourMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangePercentage" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangePercentage" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeRelatedExpenses" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeRelatedExpenses" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsInPeriodTotalGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsInPeriodTotalGrantDateFairValue" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRemainingMeasurementPeriod" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRemainingMeasurementPeriod" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedInPeriod" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedInPeriod" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsConvertedExercisedWeightedAverageGrantDateFairValue" nillable="true" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedExercisedWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsConvertedExercisedWeightedAverageGrantDateFairValue" nillable="true" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfShareBasedPaymentAwardOtherThanOptionsValuationAssumptionsTableTextBlock" name="ScheduleOfShareBasedPaymentAwardOtherThanOptionsValuationAssumptionsTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfShareBasedPaymentAwardRestrictedStockAwardsPayoutRangeAndRelatedExpenseTableTextBlock" name="ScheduleOfShareBasedPaymentAwardRestrictedStockAwardsPayoutRangeAndRelatedExpenseTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeAxis" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeDomain" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardPayoutRangeDomain" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_SummaryOfKeyTermsOfCreditAgreementTableTextBlock" name="SummaryOfKeyTermsOfCreditAgreementTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfAvailabilityUnderRevolvingFacilityTableTextBlock" name="ScheduleOfAvailabilityUnderRevolvingFacilityTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfKeyFinancialCovenantsTableTextBlock" name="ScheduleOfKeyFinancialCovenantsTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfShareBasedCompensationExpenseTableTextBlock" name="ScheduleOfShareBasedCompensationExpenseTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_EliminationsAndReconcilingItemsMember" name="EliminationsAndReconcilingItemsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_BaseRateBorrowingsMember" name="BaseRateBorrowingsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtAgreementTermsAxis" name="DebtAgreementTermsAxis" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrldt:dimensionItem" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtAgreementTermsDomain" name="DebtAgreementTermsDomain" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_BondsOutstanding" name="BondsOutstanding" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_BondsOutstandingTableTextBlock" name="BondsOutstandingTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_FederalFundsRateMember" name="FederalFundsRateMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_BusinessCombinationConsiderationTransferredLiabilitiesIncurredContingentConsideration" name="BusinessCombinationConsiderationTransferredLiabilitiesIncurredContingentConsideration" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="credit"/> |
| <xsd:element id="bld_DebtInstrumentReferenceRateMaturityPeriod" name="DebtInstrumentReferenceRateMaturityPeriod" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram" name="TreasuryStockValueAcquiredCostMethodShareRepurchaseProgram" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit"/> |
| <xsd:element id="bld_TreasuryStockValueAcquiredCostMethodAcceleratedShareRepurchaseProgram" name="TreasuryStockValueAcquiredCostMethodAcceleratedShareRepurchaseProgram" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit"/> |
| <xsd:element id="bld_TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram" name="TreasuryStockSharesAcquiredCostMethodShareRepurchaseProgram" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_TreasuryStockSharesAcquiredCostMethodAcceleratedShareRepurchaseProgram" name="TreasuryStockSharesAcquiredCostMethodAcceleratedShareRepurchaseProgram" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_OutstandingBondsAbstract" name="OutstandingBondsAbstract" nillable="true" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsEstimatedFairValueOfAwardsGranted" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsEstimatedFairValueOfAwardsGranted" nillable="true" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ReceivablesNetMember" name="ReceivablesNetMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_EquipmentNotesMember" name="EquipmentNotesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ChangeInControlScenarioMember" name="ChangeInControlScenarioMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_EventOfDefaultScenarioMember" name="EventOfDefaultScenarioMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_MinimumPercentageOfDebtImmediatelyDueAndPayable" name="MinimumPercentageOfDebtImmediatelyDueAndPayable" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfAcquiredFiniteLivedAndIndefiniteLivedIntangibleAssetTableTextBlock" name="ScheduleOfAcquiredFiniteLivedAndIndefiniteLivedIntangibleAssetTableTextBlock" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_GlassAndWindowsMember" name="GlassAndWindowsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_TreasuryStockValueAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram" name="TreasuryStockValueAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit"/> |
| <xsd:element id="bld_TreasuryStockSharesAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram" name="TreasuryStockSharesAcquiredCostMethodSettlementOfAcceleratedShareRepurchaseProgram" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_AllOtherProductsMember" name="AllOtherProductsMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievement" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievement" nillable="true" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievementPercentage" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsCumulativePeriodOfAchievementPercentage" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsTotalCompensationExpenseRecognizedOverPerformancePeriod" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherThanOptionsGrantsTotalCompensationExpenseRecognizedOverPerformancePeriod" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" xbrli:balance="debit"/> |
| <xsd:element id="bld_ResidentialMember" name="ResidentialMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_InsulationAndAccessoriesMember" name="InsulationAndAccessoriesMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentInterestRatePercentageFloor" name="DebtInstrumentInterestRatePercentageFloor" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentCovenantMinimumInterestCoverageRatio" name="DebtInstrumentCovenantMinimumInterestCoverageRatio" nillable="true" type="xbrli:pureItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ScheduleOfUnrecognizedShareBasedCompensationExpenseNonvestedAwards" name="ScheduleOfUnrecognizedShareBasedCompensationExpenseNonvestedAwards" nillable="true" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredInPeriod" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredInPeriod" nillable="true" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredWeightedAverageGrantDateFairValue" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedOrExpiredWeightedAverageGrantDateFairValue" nillable="true" type="dtr-types:perShareItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFour" name="LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFour" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_AccruedSalesAndPropertyTaxesCurrent" name="AccruedSalesAndPropertyTaxesCurrent" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_AccruedCustomerRebatesCurrent" name="AccruedCustomerRebatesCurrent" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="credit"/> |
| <xsd:element id="bld_SeniorNotesDue2029Member" name="SeniorNotesDue2029Member" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentRedemptionOptionOneMember" name="DebtInstrumentRedemptionOptionOneMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentRedemptionOptionTwoMember" name="DebtInstrumentRedemptionOptionTwoMember" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element id="bld_DebtInstrumentConditionalRedemptionThresholdPercentageOfAggregatePrincipalAmountOriginallyIssuedRemainsOutstanding" name="DebtInstrumentConditionalRedemptionThresholdPercentageOfAggregatePrincipalAmountOriginallyIssuedRemainsOutstanding" nillable="true" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration"/> |
| <xsd:element id="bld_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets" nillable="true" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" xbrli:balance="debit"/> |
| <xsd:element id="bld_SeniorNotesDue2032Member" name="SeniorNotesDue2032Member" nillable="true" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" abstract="true" xbrli:periodType="duration"/> |
| <xsd:element name="DebtInstrumentRedemptionPeriodSixMember" id="bld_DebtInstrumentRedemptionPeriodSixMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="DebtInstrumentRedemptionPeriodSevenMember" id="bld_DebtInstrumentRedemptionPeriodSevenMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="DebtInstrumentRedemptionPriceBasisSpreadOnTreasuryRate" id="bld_DebtInstrumentRedemptionPriceBasisSpreadOnTreasuryRate" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false"/> |
| <xsd:element name="BillingsInsulationServiceInc.Member" id="bld_BillingsInsulationServiceInc.Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="AssuredInsulationServiceInc.Member" id="bld_AssuredInsulationServiceInc.Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="Acquisitions2022Member" id="bld_Acquisitions2022Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="CommercialAndIndustrialMember" id="bld_CommercialAndIndustrialMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="SofrRateBorrowingsMember" id="bld_SofrRateBorrowingsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="SriHoldingsMember" id="bld_SriHoldingsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="RestrictedStockAwardsGrantedFebruary2020Member" id="bld_RestrictedStockAwardsGrantedFebruary2020Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="BestInsulationMember" id="bld_BestInsulationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="RockyMountainMember" id="bld_RockyMountainMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="SpiMember" id="bld_SpiMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="AmendmentNo.4ToCreditAgreementMember" id="bld_AmendmentNo.4ToCreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="NumberOfBranches" id="bld_NumberOfBranches" type="xbrli:integerItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false"/> |
| <xsd:element name="DelayedDrawTermLoanFacilityOneMember" id="bld_DelayedDrawTermLoanFacilityOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="DelayedDrawTermLoanFacilityTwoMember" id="bld_DelayedDrawTermLoanFacilityTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="Acquisitions2023Member" id="bld_Acquisitions2023Member" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="true"/> |
| <xsd:element name="BusinessCombinationConsiderationTransferredExpected" id="bld_BusinessCombinationConsiderationTransferredExpected" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false" xbrli:balance="credit"/> |
| <xsd:element name="DebtInstrumentTickingFeePercentDuePeriodOne" id="bld_DebtInstrumentTickingFeePercentDuePeriodOne" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false"/> |
| <xsd:element name="DebtInstrumentTickingFeePercentDuePeriodTwo" id="bld_DebtInstrumentTickingFeePercentDuePeriodTwo" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false"/> |
| <xsd:element name="DebtInstrumentTickingFeePercentDuePeriodThree" id="bld_DebtInstrumentTickingFeePercentDuePeriodThree" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration" abstract="false"/> |
| </xsd:schema> |