Inspections
 

The City of Austin Development Services Department conducts required inspections during the development process, including building, environmental, site development, subdivision, sound enforcement, and utility cuts. The permit holder and owner-general contractor are responsible for ensuring the proper sequence of inspections. Explore the following inspection divisions for more information.

 

 

icon

Building Inspections  

The Building Inspection Division (BID) performs construction-related inspections for residential and commercial buildings within the City limits, and electrical and plumbing services in the extra-territorial jurisdiction (ETJ). 

Learn More

 

icon

Environmental Inspections

The Environmental Inspection Division performs inspections on permitted site plans for temporary and permanent erosion controls, stormwater controls, critical environmental features, protection of trees and natural areas, landscape installation, and compliance with site plan requirements.

Learn More

 

icon

Site and Subdivision Inspections 

The Site and Subdivision Inspection Division performs the initial inspection of all public infrastructure on commercial sites and ensures the required site work for water TAP and right of way (ROW) work is in compliance with City requirements.

Learn More

 

icon

Sound Enforcement & Inspections

The Environmental Inspection Division's Sound Enforcement Program has the primary responsibility for enforcement of Outdoor Music Venue (OMV) permits. Inspectors conduct routine inspections of commercial OMV and respond to complaints to determine if a violation has occurred.

Learn More

 

icon

Utility Cut Inspections

The Utility Cut Program is responsible for three types of Right-of-Way (ROW) projects — telecom and small cell; excavation for repair of dry utilities; and Residential and commercial driveways, curb cuts gutters and sidewalk repair, installation, modification, or demolition.

Learn More

 

 

<script>


// DSD Web Modernization Toolbox V1, documentation pending

// Content Accordions

// Go through each accordion
var accordions = document.querySelectorAll('.ckeditor-accordion-container');

accordions.forEach(function (accordion, index) {


var contentSections = accordion.querySelectorAll('dt');

contentSections.forEach(function (contentSection, index) {




var contentAccordionExists = contentSection.querySelector('[id*="content-accordion"]');
var openAccordionExists = contentSection.querySelector('[id*="open-accordion"]');


if (contentAccordionExists == '[object HTMLSpanElement]') {



const classList = contentSection.querySelector('[id*="content-accordion"]').getAttribute('id');

var newContentAccordion = document.createElement("div");
newContentAccordion.className = classList;


accordion.parentNode.insertBefore(newContentAccordion, accordion.prevSibling);

let accordionHTML = contentSection.nextElementSibling.innerHTML.split('<hr>');

// content top
let contentTop = accordionHTML[0]

// content bottom
let contentBottom = accordionHTML[1];

let accordionTop = '<div class="accordion-top accordion-trigger"><div class="accordion-inner">'+ contentTop +'</div></div>'

let accordionBottom = '<div class="accordion-bottom accordion-content"><div class="accordion-inner">'+ contentBottom +'</div></div>'

newContentAccordion.innerHTML += accordionTop + accordionBottom;


newContentAccordion.querySelector('.accordion-trigger').addEventListener("click", accordionReveal);

// Open version of accordion
} else if (openAccordionExists == '[object HTMLSpanElement]') {

const classList = contentSection.querySelector('[id*="open-accordion"]').getAttribute('id');


var newOpenAccordion = document.createElement("div");
newOpenAccordion.className = classList;


accordion.parentNode.insertBefore(newOpenAccordion, accordion.prevSibling);

let accordionHTML = contentSection.nextElementSibling.innerHTML;

// content
let content = accordionHTML;

newOpenAccordion.innerHTML += '<div class="accordion-content"><div class="accordion-inner">'+ content +'</div></div>';

}

});

// remove initial accordions
accordion.remove();

});



function accordionReveal(){
this.parentNode.closest('.content-accordion').querySelector('.accordion-content').classList.toggle('is-active');
}







// Feature Cards

var featureCards = document.querySelectorAll('[id*="feature-card"]');

featureCards.forEach(function (featureCard, index) {


var classList = featureCard.getAttribute('id');

var parentTable = featureCard.parentNode.closest('.table-responsive');

var tableRows = parentTable.querySelectorAll('tr');

var newFeatureCard = document.createElement("div");
newFeatureCard.className = 'feature-card-group';



tableRows.forEach(function (tableRow, index) {

parentTable.parentNode.insertBefore(newFeatureCard, parentTable.prevSibling);

let cardImage = tableRow.querySelector('td img').outerHTML;

let cardContent = tableRow.querySelector('td').innerHTML;

newFeatureCard.innerHTML += '<div class="row ' + classList + '"><div class="col-md-4 card-image">'+ cardImage +'</div><div class="col-md-8 card-content">'+ cardContent +'</div></div>';


});








parentTable.remove();

});


// Horizontal Cards

var horizontalCards = document.querySelectorAll('[id*="horizontal-card"]');

horizontalCards.forEach(function (horizontalCard, index) {


var classList = horizontalCard.getAttribute('id');

var parentTable = horizontalCard.parentNode.closest('.table-responsive');

var tableRows = parentTable.querySelectorAll('tr');

var newHorizontalCards = document.createElement("div");

newHorizontalCards.className = 'horizontal-cards row';

tableRows.forEach(function (tableRow, index) {

parentTable.parentNode.insertBefore(newHorizontalCards, parentTable.prevSibling);

let cardImage = tableRow.querySelectorAll("td")[0].innerHTML;

let cardContent = tableRow.querySelectorAll("td")[1].innerHTML;

newHorizontalCards.innerHTML += '<div class="card ' + classList + '"><div class="col-md-2 card-image">'+ cardImage +'</div><div class="col-md-10 card-content">'+ cardContent +'</div></div>';

});

parentTable.remove();

});

var clickableCard = document.querySelector('.has-card-link');
clickableCard.addEventListener('click', function(e){
window.location.href = clickableCard.querySelector('.card-content a').getAttribute('href');
});

// Vertical Cards

var horizontalCards = document.querySelectorAll('[id*="vertical-card"]');

horizontalCards.forEach(function (horizontalCard, index) {


var classList = horizontalCard.getAttribute('id');

var parentTable = horizontalCard.parentNode.closest('.table-responsive');

var tableRows = parentTable.querySelectorAll('tr');

var newHorizontalCards = document.createElement("div");



newHorizontalCards.className = "vertical-cards row ";

tableRows.forEach(function (tableRow, index) {

parentTable.parentNode.insertBefore(newHorizontalCards, parentTable.prevSibling);

let cardImage = tableRow.querySelectorAll("td")[0].innerHTML;

let cardContent = tableRow.querySelectorAll("td")[1].innerHTML;

newHorizontalCards.innerHTML += '<div class=" ' + classList + ' vertical-card card"><div class="card-inner"><div class="card-image">'+ cardImage +'</div><div class="card-content">'+ cardContent +'</div></div></div>';

});

parentTable.remove();

});



// Make full card clickable when using the 'has-card-link' class.

var clickableCards = document.querySelectorAll('.has-card-link');


clickableCards.forEach(function(clickableCard, index) {


clickableCard.addEventListener('click', function(e) {
window.location.href = clickableCard.querySelector('.card-content .btn').getAttribute('href');
});

});



</script>
<style>
/* core styles */
ul.button-list:after {
content: "";
display: block;
box-sizing: border-box;
position: absolute;
left: 526px;
bottom: -32px;
width: 0;
height: 0;
border-top: 60px solid transparent;
border-bottom: 60px solid transparent;
border-left: 60px solid #f2f2f2;
}

ul.button-list:before {
box-sizing: border-box;
position: relative;
display: block;
width: 550px;
background: rgba(0, 0, 0, .05);
height: 50px;
content: '';
position: absolute;
top: -7px;
left: -10px;
z-index: 0;
display: block;
}

.button-list li {
list-style: none;
display: inline-block;
margin-right: 10px;
z-index: 1;
position: relative;
}

.button-list {
padding-left: 0 !important;
position: relative;
}

.button-list li {
margin-bottom: 10px;
}

.button-list a {
display: block;
padding: 10px;
color: black;
text-decoration: none !important;
font-size: 10px;
font-family: "National 2", sans-serif;
}

.button-list li a {
text-decoration: none !important;
}

li .create-your-plan {
background-color: #f9ebe2 !important;
}

li .review-and-revise {
background-color: #5EA642;
}

li .zoning-review,
li .subdivision-review,
li .site-plan-review,
li .building-plan-review {
background-color: #e3e9ee !important;
}

li .build-and-inspect {
background-color: #f9ebe2
}

li .inspections,
li .occupancy {
background-color: #f0f7ee !important;
}

.open-accordion .learn-more {
display: none;
}

.col-sm-6.center-left {
width: 75%;
}

.center-right {
/* removes right-side */
display: none;
}

/* Typography */
h2 {
margin-top: 0;
}

p {
max-width: 900px;
}

hr {
border: 0;
border-top: 1px solid #14436B;
flex-grow: 1;
width: 100%;
opacity: .5;
margin-bottom: 20px;
}

/* colors */

.background-orange,
.orange-background {
background-color: #d76c28 !important;
}

.background-green,
.green-background {
background-color: #5EA642 !important;
}

.background-blue,
.blue-background {
background-color: #14436B !important;
}

.background-light-orange {
background-color: #FFE7D5!important;
}

.background-light-green {
background-color: #DBEDCF !important;
}

.background-light-blue {
background-color: #14426b1e !important;
}

.background-green,
.btn-success {
background-color: #449d44 !important;
text-decoration: none !important;
}


.card-content {
padding: 0 27px 20px;
margin-bottom: 20px;
}

.card h4 a,
.card h4 {
/*color: #5EA642;*/
color: black;
text-decoration: none;
margin-top: 0;
}

/*.field-content p,
.center-left p {
font-size: 16px !important;
line-height: 142% !important;
} */

#converted-row h4 {
text-align: left;
}

#converted-row .card {
border-bottom: 6px solid transparent;
}

#converted-row .card:hover {
border-bottom: 6px solid #D56B27;
}

.open-accordion,
.content-accordion {
padding: 30px;
margin-bottom: 60px;
position: relative;
overflow: visible;
}

.open-accordion .accordion-content {
margin: 0;
}

.accordion-trigger {
cursor: pointer;
}

.accordion-content {
margin: 20px 0;
transition: all 0.1s ease-out;
height: 0;
visibility: hidden;
opacity: 0;
position: absolute;
width: 100%;
overflow: hidden;
}

.accordion-content:last-child,
.accordion-content .horizontal-card:last-child {
margin-bottom: 0;
}

.open-accordion .accordion-trigger {
cursor: auto;
}

.open-accordion .accordion-content,
.accordion-content.is-active {
transition: all 1s ease-out;
opacity: 1;
height: auto;
visibility: visible;
position: relative;
}

.mini-accordion.row,
.horizontal-cards.row {
margin-left: 0;
margin-right: 0;
}

.accordion-content.card {
border-bottom: 0 !important;
cursor: auto !important;
}

.horizontal-card {
display: flex;
flex-direction: row;
align-items: flex-start;
padding: 20px;
cursor: pointer;
margin: 0 0 40px 0;
background: white;
}

.horizontal-card p {
font-size: 16px;
}

.horizontal-card div:nth-child(1) {
padding-left: 0;
}

.horizontal-card div:nth-child(2) {
padding-right: 0;
}

.horizontal-card h4 {
/*color: #5EA642; */
color: black;
font-size: 18px;
margin: 0 0 10px 0;
padding: 0;
}

.horizontal-card .card-content {
padding: 0 20px 0 20px;
margin: 0;
display: flex;
flex-direction: column;
}

.vertical-cards {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}

.vertical-card {
display: flex;
flex-direction: column;
margin-bottom: 30px;
border: 0;
position: relative;
min-height: 1px;
padding-left: 15px;
padding-right: 15px;
width: 33.333%;
}

.column-5.vertical-card {
width: 20%;
}

.column-4.vertical-card {
width: 25%;
}

.column-3.vertical-card {
width: 33.333%;
}

.column-2.vertical-card {
width: 50%;
}

.column-1.vertical-card {
width: 100%;
}

.vertical-card .card-inner {
background: white;
height: 100%;
}

.vertical-card .card-image {
margin-bottom: 20px;
}


.icon-images .card-image img {
max-width: 220px !important;
display: block;
padding: 20px 20px 0 20px;
margin: auto auto;
}

.has-border .card-inner {
border: 1px solid black;
}

.no-background .card-inner,
.background-none {
background: none;
}

a.learn-more,
button.learn-more {
margin: auto 0;
display: block;
text-align: left;
background: #5EA642;
color: white;
padding: 10px 20px;
border: 0;
text-align: center;
width: 130px;
margin-top: 20px;
cursor: pointer;
font-weight: 500 !important;
text-decoration: none !important;
}

a.learn-more:hover,
button.learn-more:hover {
color: white;
text-decoration: none;
}

.accordion-trigger .learn-more {
pointer-events: none;
}

.horizontal-cards .card {
padding-top: 20px;
}

.feature-card.row {
margin: 0;
}

.feature-card .card-image,
.feature-card img {
position: relative;
height: 100%;
margin: 0;
padding: 0;
}

.feature-card .card-content {
margin-top: 0;
margin-bottom: 0;
padding-top: 0;
padding-bottom: 0;
}

.feature-card .card-content h3 {
margin-top: 0;
}

.table-responsive img {
width: 180px !important;
}

.feature-card .card-content img {
display: none;
}



.tip-card {
max-width: 600px;
margin: 0 0 50px;
padding: 10px 20px !important;
}

.tip-card.has-border {
border: 1px solid #449d44;
}

.tip-card h3 {
margin-top: 0;
margin-bottom: 0;
padding-top: 0;
font-size: 17px;
}

.tip-card p,
.tip-card a {
font-family: "National 2",sans-serif !important;
color: black;
max-width: 600px;
}

.is-rounded {
border-radius: 125px;
}

body .tip-card .card-image {
align-self: center;
padding-right: 0;
}

.tip-card .card-image img {
max-width: 70% !important;
margin: auto;
float: right;
}

.has-shadow {
box-shadow: 9px 11px 15px -4px rgb(130 130 130 / 64%);
-webkit-box-shadow: 9px 11px 15px -4px rgb(0 0 0 / 15%);
-moz-box-shadow: 9px 11px 15px -4px rgba(130,130,130,0.64);
}




.has-card-link {
cursor: pointer;
}


@media only screen and (min-width: 780px) {
.horizontal-cards img {
width: 100%;
display: block;
}
}

@media only screen and (max-width: 780px) {
.col-12 {
width: 100%;
}

.horizontal-cards .card,
.horizontal-card {
flex-direction: column;
}

.horizontal-card .card-content {
padding: 20px 0 0 0;
}

.horizontal-cards .card-image {
order: 1;
}

.horizontal-cards .card-content {
order: 2;
}

.card-image p {
padding: 0;
margin: 0;
}

button.learn-more {
width: 100%;
}

.block-region-centerleft {
background: none;
border-top: none;
padding: 0;
}

body.toolbar-fixed.toolbar-vertical.toolbar-tray-open.toolbar-fixed {
margin-left: 0;
}

body.toolbar-fixed.toolbar-vertical.toolbar-tray-open .navbar-fixed-top {
left: 0;
}

body.toolbar-vertical.navbar-is-fixed-top header {
top: 0 !important;
}

.col-sm-6.center-left {
width: 100%;
}

.button-list:before,
.button-list:after {
display: none;
}

.vertical-card {
width: 100% !important;
}


.feature-card .card-content {
padding: 0;
}

.feature-card img {
margin-bottom: 20px;
}

.feature-card h4 {
margin-top: 0;
}

.tip-card {
border-radius: 15px;

}

body .tip-card .card-image {
align-self: flex-start;
}

.tip-card .card-image img {
max-width: 60px !important;
float: none;
}


}




</style>
<style>
/* page styles */
.page-node-type-department .block-region-centerleft .field--name-field-dept-message .feature-card .card-image img {
height: 174px !important;
object-fit: cover;
width: 100%;
object-position: top center;
}


body .field--type-text-with-summary {
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}

body .field--name-field-dept-message {
border: 0 !important;
padding-top: 0 !important;
}

.feature-card h4 {
margin-top: -40px;
}

.feature-card-group .feature-card {
margin-bottom: 30px;
}

</style>