---
id:
aliases: []
title: Breakdown Objects
tags:
  - authorship/original
  - destiny/permanent
  - status/incomplete
  - topic/automation
  - topic/estimating
  - topic/software
  - type/idea
---
# Breakdown Objects

return child breakdowns from a parent
for use in takeoff

```
Buildings["Building A"].GetEveryNthLevel(2)
Buildings["Building A"].GetTaggedLevel("Roof")
```

```
Buildings["Building A"].GetHeight()
``` 

```
Buildings["Building A"].GetLevels()[0]
Buildings["Building A"].Levels[0]
```

For jobs with only one building:

```
Building = Buildings["Main Building"]
Building.Levels[0]
```

## Pathfinding

Define equipment locations stochastically

```
in Building A,
every odd level has
    20 receptacles
    fed from
    a panel
        on that level

and every even level has
    20 receptacles
    fed from
    a panel
        on the floor below
```

equipment of the same type is assumed to be evenly spaced.

## Location vs. Scope

%%TODO:%%

![[location-vs-scope.excalidraw]]

MDPB is physically _located_ in Building A,
but serves only loads in Building B.

```
location = Buildings["Building A"]
scope = Buildings["Building B"]
```

Were Building B removed from the contract scope,
it can be expected that MDPB would be as well.
