vault backup: 2026-06-04 16:59:32
This commit is contained in:
Vendored
+2
-1
@@ -20,5 +20,6 @@
|
||||
"landscape": false,
|
||||
"margin": "0",
|
||||
"downscalePercent": 100
|
||||
}
|
||||
},
|
||||
"showInlineTitle": true
|
||||
}
|
||||
Vendored
+4
-1
@@ -28,5 +28,8 @@
|
||||
"tabout",
|
||||
"obsidian-tidy-footnotes",
|
||||
"obsidian-citation-plugin",
|
||||
"obsidian-quiet-outline"
|
||||
"obsidian-quiet-outline",
|
||||
"inline-spoilers",
|
||||
"daily-notes-editor",
|
||||
"tasknotes"
|
||||
]
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "homepage",
|
||||
"name": "Homepage",
|
||||
"version": "4.4.2",
|
||||
"version": "4.4.4",
|
||||
"minAppVersion": "1.12.2",
|
||||
"description": "Open a specified note, canvas, base, or workspace on startup, or set it for quick access later.",
|
||||
"author": "novov",
|
||||
|
||||
+1
-1
@@ -3,6 +3,6 @@
|
||||
* https://github.com/logonoff/obsidian-inline-spoilers
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
"use strict";var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var C=(t,e)=>{for(var i in e)u(t,i,{get:e[i],enumerable:!0})},_=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of N(e))!A.call(t,o)&&o!==i&&u(t,o,{get:()=>e[o],enumerable:!(s=y(e,o))||s.enumerable});return t};var v=t=>_(u({},"__esModule",{value:!0}),t);var H={};C(H,{default:()=>g});module.exports=v(H);var D=require("@codemirror/language"),x=require("@codemirror/state"),c=require("@codemirror/view"),n=require("obsidian"),P=/\|\|(.+?)\|\|/g,M="p, li, h1, h2, h3, h4, h5, h6, blockquote, em, strong, b, i, a, th, td",T=t=>{if(t.nodeType===Node.TEXT_NODE){if(!t.textContent||!t.parentNode)return;let e=t.textContent.split(/(\|\|[^|]+\|\|)/g),i=document.createDocumentFragment();for(let s of e)if(P.test(s)){let o=s.slice(2,-2),l=createSpan({cls:"inline_spoilers-spoiler",text:o});i.appendChild(l)}else{let o=document.createTextNode(s);i.appendChild(o)}t.parentNode.replaceChild(i,t)}else t.nodeType===Node.ELEMENT_NODE&&Array.from(t.childNodes).forEach(T)},w=(t,e)=>{let i=t.findAll(M);for(let o of i)Array.from(o.childNodes).forEach(T);let s=t.findAll(".inline_spoilers-spoiler");for(let o of s)e.registerDomEvent(o,"click",()=>{o.classList.toggle("inline_spoilers-revealed")})},V=t=>{let e=Array.from(t.containerEl.querySelectorAll(".inline_spoilers-spoiler"));for(let i of e){let s=i.parentNode,o=document.createTextNode(`||${i.innerText}||`);s&&s.replaceChild(o,i)}},L=c.Decoration.mark({class:"inline_spoilers-editor-spoiler",tagName:"span"}),R=c.Decoration.mark({class:"inline_spoilers-editor-spoiler-delimiter",tagName:"span"}),m=class{constructor(e){this.decorations=this.buildDecorations(e)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=this.buildDecorations(e.view))}destroy(){}buildDecorations(e){let i=new x.RangeSetBuilder,s=[];for(let{from:o,to:l}of e.visibleRanges)(0,D.syntaxTree)(e.state).iterate({from:o,to:l,enter(E){let k=e.state.sliceDoc(E.from,E.to),h;for(;(h=P.exec(k))!==null;){let a=h.index,p=a+h[0].length,S=e.state.sliceDoc(a,p);!S.startsWith("||")&&!S.endsWith("||")||(s.push({from:a,to:a+2,isDelimiter:!0}),s.push({from:a+2,to:p-2,isDelimiter:!1}),s.push({from:p-2,to:p,isDelimiter:!0}))}}});s.sort((o,l)=>o.from-l.from);for(let o of s)i.add(o.from,o.to,o.isDelimiter?R:L);return i.finish()}},I={decorations:t=>t.decorations},d=c.ViewPlugin.fromClass(m,I),r=[],O=t=>{r.includes(d)||r.push(d),t.updateOptions()},b=t=>{let e=r.indexOf(d);e!==-1&&r.splice(e,1),t.updateOptions()},W={showAllSpoilers:!1,enableEditorMode:!1},f=class extends n.PluginSettingTab{constructor(e,i){super(e,i),this.plugin=i}display(){let{containerEl:e}=this;e.empty(),new n.Setting(e).setName("Reveal all spoilers").setDesc("Always show all inline spoilers, regardless of whether they are clicked or not.").addToggle(i=>i.setValue(this.plugin.settings.showAllSpoilers).onChange(async s=>{this.plugin.settings.showAllSpoilers=s,this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",s),await this.plugin.saveSettings()})),new n.Setting(e).setName("Hide spoilers in editor view (experimental)").setDesc("Hide spoilers in the editor until your cursor is on the same line as the spoiler.").addToggle(i=>i.setValue(this.plugin.settings.enableEditorMode).onChange(async s=>{this.plugin.settings.enableEditorMode=s,s?O(this.app.workspace):b(this.app.workspace),await this.plugin.saveSettings()}))}},g=class extends n.Plugin{async onload(){await this.loadSettings();let e=this.app.workspace.containerEl.querySelector(".markdown-reading-view");e&&w(e,this),this.registerMarkdownPostProcessor(i=>{w(i,this)}),this.addCommand({id:"create-spoiler",name:"Create spoiler",editorCallback:i=>{let s=i.getSelection();i.replaceSelection(`||${s}||`)}}),this.registerEditorExtension(r),this.addSettingTab(new f(this.app,this))}onunload(){this.app.workspace.containerEl.classList.remove("inline_spoilers-revealed"),V(this.app.workspace),b(this.app.workspace)}async loadSettings(){this.settings=Object.assign({},W,await this.loadData()),this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",this.settings.showAllSpoilers),this.settings.enableEditorMode&&r.push(d)}async saveSettings(){await this.saveData(this.settings)}};
|
||||
"use strict";var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var C=(t,e)=>{for(var i in e)u(t,i,{get:e[i],enumerable:!0})},v=(t,e,i,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of N(e))!A.call(t,o)&&o!==i&&u(t,o,{get:()=>e[o],enumerable:!(s=y(e,o))||s.enumerable});return t};var _=t=>v(u({},"__esModule",{value:!0}),t);var H={};C(H,{default:()=>g});module.exports=_(H);var D=require("@codemirror/language"),x=require("@codemirror/state"),c=require("@codemirror/view"),n=require("obsidian"),P=/\|\|(.+?)\|\|/g,M="p, li, h1, h2, h3, h4, h5, h6, blockquote, em, strong, b, i, a, th, td",T=t=>{if(t.nodeType===Node.TEXT_NODE){if(!t.textContent||!t.parentNode)return;let e=t.textContent.split(/(\|\|[^|]+\|\|)/g),i=createFragment();for(let s of e)if(P.test(s)){let o=s.slice(2,-2),l=createSpan({cls:"inline_spoilers-spoiler",text:o});i.appendChild(l)}else{let o=activeDocument.createTextNode(s);i.appendChild(o)}t.parentNode.replaceChild(i,t)}else t.nodeType===Node.ELEMENT_NODE&&Array.from(t.childNodes).forEach(T)},w=(t,e)=>{let i=t.findAll(M);for(let o of i)Array.from(o.childNodes).forEach(T);let s=t.findAll(".inline_spoilers-spoiler");for(let o of s)e.registerDomEvent(o,"click",()=>{o.classList.toggle("inline_spoilers-revealed")})},V=t=>{let e=Array.from(t.containerEl.querySelectorAll(".inline_spoilers-spoiler"));for(let i of e){let s=i.parentNode,o=activeDocument.createTextNode(`||${i.innerText}||`);s&&s.replaceChild(o,i)}},L=c.Decoration.mark({class:"inline_spoilers-editor-spoiler",tagName:"span"}),R=c.Decoration.mark({class:"inline_spoilers-editor-spoiler-delimiter",tagName:"span"}),m=class{constructor(e){this.decorations=this.buildDecorations(e)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=this.buildDecorations(e.view))}destroy(){}buildDecorations(e){let i=new x.RangeSetBuilder,s=[];for(let{from:o,to:l}of e.visibleRanges)(0,D.syntaxTree)(e.state).iterate({from:o,to:l,enter(E){let k=e.state.sliceDoc(E.from,E.to),h;for(;(h=P.exec(k))!==null;){let a=h.index,p=a+h[0].length,S=e.state.sliceDoc(a,p);!S.startsWith("||")&&!S.endsWith("||")||(s.push({from:a,to:a+2,isDelimiter:!0}),s.push({from:a+2,to:p-2,isDelimiter:!1}),s.push({from:p-2,to:p,isDelimiter:!0}))}}});s.sort((o,l)=>o.from-l.from);for(let o of s)i.add(o.from,o.to,o.isDelimiter?R:L);return i.finish()}},I={decorations:t=>t.decorations},d=c.ViewPlugin.fromClass(m,I),r=[],O=t=>{r.includes(d)||r.push(d),t.updateOptions()},b=t=>{let e=r.indexOf(d);e!==-1&&r.splice(e,1),t.updateOptions()},W={showAllSpoilers:!1,enableEditorMode:!1},f=class extends n.PluginSettingTab{constructor(e,i){super(e,i),this.plugin=i}display(){let{containerEl:e}=this;e.empty(),new n.Setting(e).setName("Reveal all spoilers").setDesc("Always show all inline spoilers, regardless of whether they are clicked or not.").addToggle(i=>i.setValue(this.plugin.settings.showAllSpoilers).onChange(async s=>{this.plugin.settings.showAllSpoilers=s,this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",s),await this.plugin.saveSettings()})),new n.Setting(e).setName("Hide spoilers in editor view (experimental)").setDesc("Hide spoilers in the editor until your cursor is on the same line as the spoiler.").addToggle(i=>i.setValue(this.plugin.settings.enableEditorMode).onChange(async s=>{this.plugin.settings.enableEditorMode=s,s?O(this.app.workspace):b(this.app.workspace),await this.plugin.saveSettings()}))}},g=class extends n.Plugin{async onload(){await this.loadSettings();let e=this.app.workspace.containerEl.querySelector(".markdown-reading-view");e&&w(e,this),this.registerMarkdownPostProcessor(i=>{w(i,this)}),this.addCommand({id:"create-spoiler",name:"Create spoiler",editorCallback:i=>{let s=i.getSelection();i.replaceSelection(`||${s}||`)}}),this.registerEditorExtension(r),this.addSettingTab(new f(this.app,this))}onunload(){this.app.workspace.containerEl.classList.remove("inline_spoilers-revealed"),V(this.app.workspace),b(this.app.workspace)}async loadSettings(){this.settings=Object.assign({},W,await this.loadData()),this.app.workspace.containerEl.toggleClass("inline_spoilers-revealed",this.settings.showAllSpoilers),this.settings.enableEditorMode&&r.push(d)}async saveSettings(){await this.saveData(this.settings)}};
|
||||
|
||||
/* nosourcemap */
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "inline-spoilers",
|
||||
"name": "Inline spoilers",
|
||||
"version": "1.2.5",
|
||||
"version": "1.2.6",
|
||||
"minAppVersion": "1.6.5",
|
||||
"description": "Adds Discord-like syntax for inline spoilers.",
|
||||
"author": "logonoff",
|
||||
|
||||
+21
-5
@@ -13,15 +13,25 @@ body {
|
||||
--inline-spoilers-spoiler-radius: var(--radius-s);
|
||||
}
|
||||
|
||||
/* spoiler bar */
|
||||
/**
|
||||
* hidden spoilers
|
||||
*/
|
||||
/** used in reader mode */
|
||||
.inline_spoilers-spoiler,
|
||||
|
||||
/** used in spoiler content in editor mode */
|
||||
.inline_spoilers-editor-spoiler,
|
||||
|
||||
/** used in delimiter in editor mode */
|
||||
.inline_spoilers-editor-spoiler-delimiter {
|
||||
/* obscured */
|
||||
background-color: var(--inline-spoilers-hidden-background) !important;
|
||||
color: var(--inline-spoilers-hidden-foreground) !important;
|
||||
}
|
||||
|
||||
/**
|
||||
* revealed spoilers
|
||||
*/
|
||||
/** used when a hidden spoiler is revealed by clicking in reader mode */
|
||||
.inline_spoilers-spoiler.inline_spoilers-revealed,
|
||||
|
||||
@@ -33,27 +43,31 @@ body {
|
||||
.inline_spoilers-revealed .inline_spoilers-spoiler,
|
||||
.inline_spoilers-revealed .inline_spoilers-editor-spoiler,
|
||||
.inline_spoilers-revealed .inline_spoilers-editor-spoiler-delimiter {
|
||||
/* revealed */
|
||||
background-color: var(--inline-spoilers-revealed-background) !important;
|
||||
color: var(--inline-spoilers-revealed-foreground) !important;
|
||||
}
|
||||
|
||||
/* reader */
|
||||
/**
|
||||
* spoiler border radius
|
||||
*/
|
||||
/* reader mode always shows one contiguous spoiler with rounded corners */
|
||||
.inline_spoilers-spoiler {
|
||||
border-radius: var(--inline-spoilers-spoiler-radius);
|
||||
}
|
||||
|
||||
/* editor */
|
||||
/* editor mode, when a spoiler is hidden, does not display delimiters (||) */
|
||||
.is-live-preview .inline_spoilers-editor-spoiler {
|
||||
border-radius: var(--inline-spoilers-spoiler-radius);
|
||||
}
|
||||
|
||||
/* editor mode, when a spoiler is revealed, display delimiters */
|
||||
.is-live-preview .cm-active .inline_spoilers-editor-spoiler {
|
||||
/* contiguous border radius with the delimiter */
|
||||
border-radius: 0em;
|
||||
}
|
||||
|
||||
/* delimiter */
|
||||
/* editor mode, when a spoiler is revealed, display delimiters, which should have
|
||||
contiguous border radius with the spoiler content */
|
||||
.cm-line .inline_spoilers-editor-spoiler-delimiter {
|
||||
&:has(+ .inline_spoilers-editor-spoiler) {
|
||||
border-radius: var(--inline-spoilers-spoiler-radius) 0 0 var(--inline-spoilers-spoiler-radius);
|
||||
@@ -63,10 +77,12 @@ body {
|
||||
}
|
||||
}
|
||||
|
||||
/** hide spoiler delimiters in editor mode when spoilers are hidden */
|
||||
.is-live-preview .inline_spoilers-editor-spoiler-delimiter {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/** reveal spoiler delimiters in editor mode when a spoiler is revealed */
|
||||
.is-live-preview .cm-active .inline_spoilers-editor-spoiler-delimiter {
|
||||
display: unset;
|
||||
}
|
||||
|
||||
+2
-2
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.23.7",
|
||||
"version": "2.23.8",
|
||||
"minAppVersion": "1.8.7",
|
||||
"description": "Sketch Your Mind. Edit and view Excalidraw drawings. Enter the world of 4D Visual PKM.",
|
||||
"author": "Zsolt Viczian",
|
||||
|
||||
+7
@@ -353,6 +353,13 @@
|
||||
"replace": "...",
|
||||
"flags": "gm",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"label": "remove whitespace from empty blockquote lines",
|
||||
"find": "^> +(?=\\n>)",
|
||||
"replace": ">",
|
||||
"flags": "gm",
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"commonStyles": {
|
||||
|
||||
@@ -45,8 +45,9 @@ add `ITEM DATABASE`/`WIRING & SYSTEM DEVICES`/`FLOOR BOXES & FITTTINGS`/`GENERIC
|
||||
|
||||
### Lighting Homeruns
|
||||
|
||||
* `Area` = "XX - Level XX Building"
|
||||
* `Phase` = "Building - Back of House (BOH)"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "XX - Level XX Building"
|
||||
> * `Phase` = "Building - Back of House (BOH)"
|
||||
|
||||
Takeoff homeruns in Building breakdowns,
|
||||
even where serving Amenity spaces.
|
||||
@@ -79,7 +80,8 @@ per [[fire-resistive-wiring-methods-takeoff]].
|
||||
|
||||
##### Homeruns
|
||||
|
||||
* `Area` = _Match unit_
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = _Match unit_
|
||||
|
||||
.../`CONDENSOR HOME RUNS`
|
||||
|
||||
@@ -99,7 +101,8 @@ per [[fire-resistive-wiring-methods-takeoff]].
|
||||
|
||||
##### Connections
|
||||
|
||||
* `Area` = _Match CU (usually roof)_
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = _Match CU (usually roof)_
|
||||
|
||||
.../`CU CONDENSER SLEEVE W/ FLEX - NO HMRN WIRE`
|
||||
|
||||
|
||||
+52
-20
@@ -1,5 +1,5 @@
|
||||
---
|
||||
id: feeders
|
||||
id:
|
||||
aliases:
|
||||
- feeders takeoff
|
||||
title: Feeders Takeoff
|
||||
@@ -16,12 +16,12 @@ up: "[[takeoff-scripts]]"
|
||||
> including [[conest-wiring-method-selection]],
|
||||
> before beginning takeoff.
|
||||
|
||||
## Execution
|
||||
## Scope
|
||||
|
||||
1. Primaries
|
||||
2. Secondaries
|
||||
3. Feeders
|
||||
4. Grounding
|
||||
* Primaries
|
||||
* Secondaries
|
||||
* Feeders
|
||||
* Grounding
|
||||
|
||||
### Formatting
|
||||
|
||||
@@ -46,38 +46,50 @@ For adjacent panels, use a minimum 10ft length.
|
||||
|
||||
#### Adders
|
||||
|
||||
Use the difference in elevation between equipment
|
||||
Use the difference in elevation between equipment[^2]
|
||||
or 10ft, whichever is greater.
|
||||
|
||||
Add an additional 5ft (total 15ft) for site runs
|
||||
(primaries, secondaries, etc.).
|
||||
[^2]: Not actually difference in elevation.
|
||||
A site run from the bottom to the top of a hill may still only need 10ft.
|
||||
This needs more precise wording.
|
||||
|
||||
It is not necessary to change this logic for site runs.[^3][^4]
|
||||
|
||||
[^3]: [[2026-06-03_14-05-39#Site Run Adders]]
|
||||
|
||||
[^4]: I will remove this line when I break the habit.
|
||||
|
||||
## Primaries
|
||||
|
||||
* `Area` = "2 - Site"
|
||||
* `Phase` = "Site"
|
||||
* `System` = "PRI - Primaries"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "2 - Site"
|
||||
> * `Phase` = "Site"
|
||||
> * `System` = "PRI - Primaries"
|
||||
|
||||
Usually only empty conduit if included.
|
||||
|
||||
## Secondaries
|
||||
|
||||
* `Area` = "2 - Site"
|
||||
* `Phase` = "Site"
|
||||
* `System` = "SEC - Secondaries"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "2 - Site"
|
||||
> * `Phase` = "Site"
|
||||
> * `System` = "SEC - Secondaries"
|
||||
|
||||
### Wiring on Vault Racks
|
||||
|
||||
Where secondary conductors run on racks in utility vaults
|
||||
manually set the length of conduit,
|
||||
measure the wire length,
|
||||
add 20ft in addition to previously mentioned adders.
|
||||
add 20ft in addition to previously mentioned adders.[^5]
|
||||
|
||||
[^5]: [[art-baldwin]] at some point, I think.
|
||||
|
||||
## Feeders
|
||||
|
||||
* `Area` = "01 - Feeders/Risers Building"
|
||||
* `Phase` = "Feeders"
|
||||
* `System` = "FRR - Feeders and Risers"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "01 - Feeders/Risers Building"
|
||||
> * `Phase` = "Feeders"
|
||||
> * `System` = "FRR - Feeders and Risers"
|
||||
|
||||
> [!info] Garage Feeders
|
||||
> `Area` "01 - Feeders/Risers Garage" is seldom used.
|
||||
@@ -88,9 +100,25 @@ add 20ft in addition to previously mentioned adders.
|
||||
|
||||
`COMMON ASSEMBLIES`/`DISTRIBUTION`/`BUS DUCT`/...
|
||||
|
||||
Delete unnecessary items and change `Fct 1`
|
||||
to get the correct quantities for the use case.
|
||||
|
||||
## Conductor Support
|
||||
|
||||
![[nfpa-70_300_general-requirements#300.19(A) Spacing Intervals --- Maximum.]]
|
||||
In lieu of more stringent requirements
|
||||
that may be imposed by project requirements,
|
||||
minimum support for vertical conductors
|
||||
is determined by [[nfpa-70_300_general-requirements#300.19(A) Spacing Intervals --- Maximum.|NEC 300.19(A)]]
|
||||
|
||||
Various [[heuristics]] exist among ConEst teams.
|
||||
Assuming minimum 40ft spacing
|
||||
(the absolute minimum for feeders we're likely to encounter)
|
||||
for _all_ conductors is popular even among more detail-favoring seniors.
|
||||
I generally prefer not to use a heuristic
|
||||
because `takeoff-calcs.xlsm` trivializes accurate selection
|
||||
and results in far fewer necessary supports.
|
||||
|
||||
Like [[#Sleeving]], it is acceptable to takeoff total counts
|
||||
|
||||
`ITEM DATABASE`/`CONDUIT & FITTINGS`/`CABLE SUPPORT / WEDGES`/`... COMPLETE FITTING`/...
|
||||
|
||||
@@ -101,3 +129,7 @@ See [[grounding-takeoff]].
|
||||
## Sleeving
|
||||
|
||||
See [[sleeving-takeoff]].
|
||||
|
||||
Because feeders are not broken down by level
|
||||
(they use `Area` = "01 - Feeders/Risers ...")
|
||||
it is acceptable to use total counts.
|
||||
|
||||
+10
-6
@@ -17,7 +17,8 @@ aliases:
|
||||
> This note is intended for practice specific to [[pdi-estimating]].
|
||||
> See [[fire-alarm]] for information about fire alarm systems.
|
||||
|
||||
* `System` = "FA - Fire Alarm"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "FA - Fire Alarm"
|
||||
|
||||
## Assembly Selection
|
||||
|
||||
@@ -59,8 +60,9 @@ Include [[sleeving-takeoff]] as necessary.
|
||||
|
||||
> Also "Elevator Machine Room (EMR)"
|
||||
|
||||
* `Area` = Same as FACR.
|
||||
* `Phase` = Same as FACR.
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = Same as FACR.
|
||||
> * `Phase` = Same as FACR.
|
||||
|
||||
For each Elevator Control Room (ECR):
|
||||
|
||||
@@ -73,8 +75,9 @@ For each Elevator Control Room (ECR):
|
||||
|
||||
### Elevator Shafts
|
||||
|
||||
* `Area` = Same as FACR.
|
||||
* `Phase` = Same as FACR.
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = Same as FACR.
|
||||
> * `Phase` = Same as FACR.
|
||||
|
||||
For each elevator shaft:
|
||||
|
||||
@@ -149,7 +152,8 @@ For each stairwell:
|
||||
|
||||
## Central Monitoring Loop
|
||||
|
||||
* `System` = "FAR - Fire Alarm Loop"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "FAR - Fire Alarm Loop"
|
||||
|
||||
> [!important]
|
||||
> Garden Style only.
|
||||
|
||||
@@ -165,7 +165,7 @@ Also called "cove" or "strip" lighting,
|
||||
however those terms are less specific
|
||||
and potentially confusing.
|
||||
|
||||
Use item `FIXTURE LABOR 1/2HR`
|
||||
Use item `FIXTURE LABOR 1HR`
|
||||
and change `Fct 1` to match the calculated labor
|
||||
(1 hour per 12 feet).
|
||||
|
||||
@@ -245,6 +245,7 @@ round up to the nearest 5ft
|
||||
|
||||
## Facade
|
||||
|
||||
> [!info] Breakdowns
|
||||
> * `Phase` = "Facade"
|
||||
|
||||
Length and Labor will be more than a normal fixture in BOH/Amenity
|
||||
@@ -269,6 +270,7 @@ Create its own breakout in WBS, and phase in [[accubid|Accubid]]
|
||||
|
||||
### Breakdowns
|
||||
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "FML - Site Fixtures Material & Labor"
|
||||
|
||||
### Pole Lights
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: Garlic Chicken and Rice
|
||||
tags:
|
||||
- topic/hobbies/cooking
|
||||
up: "[[recipes]]"
|
||||
---
|
||||
# Garlic Chicken and Rice
|
||||
|
||||
## Ingredients
|
||||
|
||||
* **1 pound** boneless, skinless chicken breasts, cubed
|
||||
* **3/4 teaspoon** garlic salt
|
||||
* **1/4 teaspoon** ground black pepper
|
||||
* **4 cloves** garlic, minced
|
||||
* **1 cup** dry white rice
|
||||
* **3 cups** low-sodium chicken broth
|
||||
* **1/2 cup** heavy cream, room temperature
|
||||
* **2 cups** fresh spinach
|
||||
* **1/4 cup** freshly grated Parmesan cheese
|
||||
|
||||
## Instructions
|
||||
|
||||
* Season the **chicken** with the **garlic salt** and **pepper**.
|
||||
|
||||
* Add the chicken to a large oiled skillet.
|
||||
Sauté over medium-high heat until brown. (5--7 minutes)
|
||||
|
||||
* Add the **garlic** and sauté 1 minute more.
|
||||
|
||||
* Add **rice** and **chicken broth** to the pan.
|
||||
Bring to a boil then cover.
|
||||
Cook until most of the liquid is absorbed. (12--15 minutes)
|
||||
|
||||
* Stir in the **heavy cream** and **spinach**.
|
||||
Re-cover and cook for 5--7 minutes.
|
||||
|
||||
* Remove from heat.
|
||||
Stir in the **Parmesan cheese** and serve.
|
||||
@@ -21,7 +21,8 @@ not especially consistent with the actual install.
|
||||
|
||||
## System Grounding
|
||||
|
||||
* `Area` = "01 - Feeders/Risers Building"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "01 - Feeders/Risers Building"
|
||||
|
||||
1. `COMMON ASSEMBLIES`/`GROUNDING`/`GND = \#3/0 & 1" CONDUIT - EMT`
|
||||
* **Length:** Perimeter of the main electrical rooms plus length to each riser.
|
||||
|
||||
@@ -6,6 +6,8 @@ tags:
|
||||
- topic/strategy
|
||||
- type/media/book
|
||||
author: Daniel Kahneman
|
||||
aliases:
|
||||
- Thinking, Fast and Slow
|
||||
---
|
||||
# Thinking, Fast and Slow
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: Lasagna
|
||||
tags:
|
||||
- topic/hobbies/cooking
|
||||
up: "[[recipes]]"
|
||||
---
|
||||
# Lasagna
|
||||
|
||||
TODO
|
||||
@@ -24,7 +24,8 @@ aliases:
|
||||
Determine which Systems and Codes are required:
|
||||
* _IBC/IECC 2021 or later:_ all fixtures 0-10V dimmable.
|
||||
|
||||
* `System` = "LV - Lighting Control System"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "LV - Lighting Control System"
|
||||
|
||||
## Wall Switches
|
||||
|
||||
@@ -72,27 +73,29 @@ Room controllers distributed throughout controlled areas.
|
||||
`COMMON ASSEMBLIES`/`SWITCHES`/`LOW VOLTAGE SWITCHES & OCC SENSORS - ROUGH IN`/...
|
||||
|
||||
1. .../`DLM LTG RM CONTROLLER - ...`
|
||||
**Count:** each lighting control zone.
|
||||
* **Count:** each lighting control zone.
|
||||
|
||||
2. .../`REC PLUG CONTROLLER - ...`
|
||||
**Count:** each receptacle control zone.
|
||||
* **Count:** each receptacle control zone.
|
||||
|
||||
3. `HEATING`/`Network Bridge - Blank 4SQ`
|
||||
**Count:** each controller.
|
||||
* **Count:** each controller.
|
||||
|
||||
Coordinate with PDS to determine if necessary.
|
||||
|
||||
4. `COMMON ASSEMBLIES`/`PDI BRANCH CKT HOME RUNS`/... (_without_ dimming cable)
|
||||
**Count:** each _circuit_.
|
||||
* **Count:** each _circuit_.
|
||||
|
||||
### "Centralized" Systems
|
||||
|
||||
Zones switched and dimmed from central lighting control panel (LCP).
|
||||
|
||||
1. `COMMON ASSEMBLIES`/`DISTRIBUTION`/`LIGHTING CONTROL PANEL INSTALLATION`/...
|
||||
1. `COMMON ASSEMBLIES`/`PDI BRANCH CKT HOME RUNS`/... (_with_ dimming cable)
|
||||
* **Count:** each _lighting control zone_.
|
||||
|
||||
2. `COMMON ASSEMBLIES`/`PDI BRANCH CKT HOME RUNS`/... (_with_ dimming cable)
|
||||
**Count:** each _lighting control zone_.
|
||||
#### "Feed-Thru" Panels
|
||||
|
||||
1. `COMMON ASSEMBLIES`/`DISTRIBUTION`/`LIGHTING CONTROL PANEL INSTALLATION`/`_ - LIGHTING CONTROL PANEL INSTALLATION & TROUGH - ...`
|
||||
|
||||
### Somewhere In Between
|
||||
|
||||
@@ -103,8 +106,8 @@ assumes zones will be controlled either
|
||||
I think just as common is 3--5 circuit controllers above the ceiling.
|
||||
|
||||
1. `HEATING`/`Lighting Control Room Controller - n Circuit`
|
||||
**Count:** each controller.
|
||||
* **Count:** each controller.
|
||||
|
||||
2. `COMMON ASSEMBLIES`/`PDI BRANCH CKT HOME RUNS`/... (_without_ dimming cable)
|
||||
**Length:** route to room.
|
||||
**Count:** each circuit.
|
||||
* **Length:** route to room.
|
||||
* **Count:** each circuit.
|
||||
|
||||
@@ -42,6 +42,7 @@ If no quote is available:
|
||||
|
||||
### Takeoff
|
||||
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "01 - Lightning Protection Building"
|
||||
> * `Phase` = "Building - BOH, Storage & Common"
|
||||
> * `System` = "LPT - Lightning Protection"
|
||||
|
||||
+22
-13
@@ -1,29 +1,38 @@
|
||||
---
|
||||
aliases:
|
||||
- misc budgets takeoff
|
||||
title: Misc Budgets Takeoff
|
||||
tags:
|
||||
- occupational/takeoff
|
||||
- status/draft
|
||||
- type/guide
|
||||
up: "[[takeoff-scripts]]"
|
||||
aliases:
|
||||
- misc budgets takeoff
|
||||
---
|
||||
# Misc Budgets Takeoff
|
||||
|
||||
* `Drawing` = "N/A"
|
||||
|
||||
## Slab Deck
|
||||
|
||||
* `System` = "EL - Electrical"
|
||||
|
||||
Takeoff: `ITEM DATABASE`/`MISC PDI PRODUCT`/`MISC MATERIAL - SLAB/DECK & FEEDER`/`MISC MATERIAL - SLAB/DECK (NAILS, PAINT, TAPE, ETC = $250)`
|
||||
|
||||
1. * `Area` = "Typical - Building All Levels" (each level except roof)
|
||||
* `Phase` = "Building - BOH, Storage & Common"
|
||||
* **Count** = 1
|
||||
* _High Density:_ 1 per Section
|
||||
### Building
|
||||
|
||||
2. * `Area` = "Typical - Garage All Levels"
|
||||
* `Phase` = "Garage"
|
||||
> [!info] Breakdowns
|
||||
> * `Drawing` = "N/A"
|
||||
> * `Area` = "Typical - Building All Levels" (each level except roof)
|
||||
> * `Phase` = "Building - BOH, Storage & Common"
|
||||
> * `System` = "EL - Electrical"
|
||||
|
||||
[[temp-power-takeoff]]
|
||||
1. Takeoff: .../`MISC MATERIAL - SLAB/DECK ...`
|
||||
* **Count** = 1
|
||||
* _High Density:_ 1 per Section
|
||||
|
||||
### Garage
|
||||
|
||||
> [!info] Breakdowns
|
||||
> * `Drawing` = "N/A"
|
||||
> * `Area` = "Typical - Garage All Levels"
|
||||
> * `Phase` = "Garage"
|
||||
> * `System` = "EL - Electrical"
|
||||
|
||||
1. Takeoff: .../`MISC MATERIAL - SLAB/DECK ...`
|
||||
* **Count** = 1
|
||||
|
||||
+27
-27
@@ -12,33 +12,33 @@ title: PDI Breakdowns
|
||||
|
||||
### Bid Item: Site
|
||||
|
||||
* `Bid Item` = "1 - Site"
|
||||
* `Area` = "2 - Site"
|
||||
* `Phase` = "Site"
|
||||
> * `Bid Item` = "1 - Site"
|
||||
> * `Area` = "2 - Site"
|
||||
> * `Phase` = "Site"
|
||||
|
||||
### Bid Item: Garage
|
||||
|
||||
* `Bid Item` = "2 - Garage"
|
||||
* `Area` = "XX - Level XX Garage"
|
||||
* `Phase` = "Garage"
|
||||
> * `Bid Item` = "2 - Garage"
|
||||
> * `Area` = "XX - Level XX Garage"
|
||||
> * `Phase` = "Garage"
|
||||
|
||||
#### Area: Stairwells Garage
|
||||
|
||||
* `Area` = "S - Stairwells Garage"
|
||||
> * `Area` = "S - Stairwells Garage"
|
||||
|
||||
### Bid Item: Building
|
||||
|
||||
* `Bid Item` = "3 - Building"
|
||||
> * `Bid Item` = "3 - Building"
|
||||
|
||||
#### Owner
|
||||
|
||||
##### Area: Building
|
||||
|
||||
* `Area` = "XX - Level XX Building"
|
||||
> * `Area` = "XX - Level XX Building"
|
||||
|
||||
###### Phase: Back of House (BOH)
|
||||
|
||||
* `Phase` = "Building - Back of House (BOH)"
|
||||
> * `Phase` = "Building - Back of House (BOH)"
|
||||
|
||||
Catch all for spaces not
|
||||
|
||||
@@ -47,17 +47,17 @@ Catch all for spaces not
|
||||
|
||||
###### Phase: Corridor
|
||||
|
||||
* `Phase` = "Building - Corridor"
|
||||
> * `Phase` = "Building - Corridor"
|
||||
|
||||
###### Phase: Units
|
||||
|
||||
* `Area` = "Typical - Unit A"
|
||||
* `Phase` = "UNIT - ..."
|
||||
> * `Area` = "Typical - Unit A"
|
||||
> * `Phase` = "UNIT - ..."
|
||||
|
||||
##### Area: Interior Amenity
|
||||
|
||||
* `Area` = "XX - Level XX Interior Amenity Building"
|
||||
* `Phase` = "Interior Amenity"
|
||||
> * `Area` = "XX - Level XX Interior Amenity Building"
|
||||
> * `Phase` = "Interior Amenity"
|
||||
|
||||
High-finish, customer-facing spaces
|
||||
|
||||
@@ -79,8 +79,8 @@ Also includes
|
||||
|
||||
##### Area: Kitchen
|
||||
|
||||
* `Area` = "XX - Level XX Kitchen Building"
|
||||
* `Phase` = "Kitchen"
|
||||
> * `Area` = "XX - Level XX Kitchen Building"
|
||||
> * `Phase` = "Kitchen"
|
||||
|
||||
Commercial kitchen spaces
|
||||
defined by provisions for high-load equipment,
|
||||
@@ -93,13 +93,13 @@ which only include 20A provisions
|
||||
|
||||
##### Area: Ballrooms
|
||||
|
||||
* `Area` = "XX - Level XX Ballrooms Building"
|
||||
* `Phase` = "Ballrooms"
|
||||
> * `Area` = "XX - Level XX Ballrooms Building"
|
||||
> * `Phase` = "Ballrooms"
|
||||
|
||||
##### Area: Exterior Amenity
|
||||
|
||||
* `Area` = "XX - Level XX Exterior Amenity Building"
|
||||
* `Phase` = "Exterior Amenity"
|
||||
> * `Area` = "XX - Level XX Exterior Amenity Building"
|
||||
> * `Phase` = "Exterior Amenity"
|
||||
|
||||
##### Area: Porte Cochere
|
||||
|
||||
@@ -109,8 +109,8 @@ which only include 20A provisions
|
||||
|
||||
##### Area: Stairwells Building
|
||||
|
||||
* `Area` = "S - Stairwells Building"
|
||||
* `Phase` = "Building - Back of House (BOH)"
|
||||
> * `Area` = "S - Stairwells Building"
|
||||
> * `Phase` = "Building - Back of House (BOH)"
|
||||
|
||||
#### Tenant
|
||||
|
||||
@@ -121,16 +121,16 @@ These spaces seem to be, by definition, [[construction-methods#Core and Shell|sh
|
||||
|
||||
##### Area: Retail
|
||||
|
||||
* `Area` = "XX - Level XX Retail Building"
|
||||
* `Phase` = "Retail"
|
||||
> * `Area` = "XX - Level XX Retail Building"
|
||||
> * `Phase` = "Retail"
|
||||
|
||||
Core and shell for mercantile occupancies.
|
||||
Does not include finished restaurants
|
||||
|
||||
##### Area: Office Space
|
||||
|
||||
* `Area` = "XX - Level XX Retail Building"
|
||||
* `Phase` = "Office Space"
|
||||
> * `Area` = "XX - Level XX Retail Building"
|
||||
> * `Phase` = "Office Space"
|
||||
|
||||
> [!quote] [[joel-jansen]] to William Bonn 2025-12-05 (pp.)
|
||||
> PDI Accubid `Phase` "Office Space"
|
||||
|
||||
+10
-6
@@ -1,13 +1,13 @@
|
||||
---
|
||||
id: sleeving
|
||||
aliases:
|
||||
- sleeving takeoff
|
||||
title: Sleeving Takeoff
|
||||
tags:
|
||||
- occupational/takeoff
|
||||
- status/draft
|
||||
- type/guide
|
||||
title: Sleeving Takeoff
|
||||
up: "[[general-takeoff]]"
|
||||
aliases:
|
||||
- sleeving takeoff
|
||||
---
|
||||
# Sleeving Takeoff
|
||||
|
||||
@@ -18,14 +18,14 @@ as well as any additional sleeves shown on the drawings.
|
||||
|
||||
> [!important]
|
||||
> The term "sleeve" may refer to
|
||||
>
|
||||
>
|
||||
> * a short length of conduit
|
||||
>
|
||||
> * a Hilti-type firestop sleeve assembly
|
||||
>
|
||||
> * a short length of conduit
|
||||
> _in_ a Hilti-type firestop sleeve assembly
|
||||
>
|
||||
>
|
||||
> Seek additional clarification.
|
||||
|
||||
## Breakdowns
|
||||
@@ -38,7 +38,11 @@ the assembly to be sleeved.[^1]
|
||||
|
||||
## Item Selection
|
||||
|
||||
`ITEM DATABASE`/`HILTI`/`CAST-IN DEVICE CP 680-...`
|
||||
Conduit sleeve selection has nothing to do
|
||||
with the material of the floor it is installed in,
|
||||
only the material of the conduit.
|
||||
|
||||
`ITEM DATABASE`/`HILTI`/`CAST-IN DEVICE CP 680-_`
|
||||
|
||||
* **CP 680-P** --- For plastic conduit
|
||||
* **CP 680-M** --- For metal conduit[^2]
|
||||
|
||||
+4
-3
@@ -68,8 +68,9 @@ Use where conductors are oversized
|
||||
|
||||
Only for PVC subfeeds where we own voltage drop.
|
||||
|
||||
* `Area` = "Typical - Building Levels With Meter Centers"
|
||||
* `System` = "Electrical"
|
||||
* `Phase` = "Sub Feeders"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "Typical - Building Levels With Meter Centers"
|
||||
> * `System` = "Electrical"
|
||||
> * `Phase` = "Sub Feeders"
|
||||
|
||||
`ITEM DATABASE`/`DISTRIBUTION`/`BUDGET ITEMS $ & LBR`/`METER CENTER WIRE TROUGH ($400/E)`
|
||||
|
||||
@@ -27,10 +27,11 @@ up: "[[takeoff-scripts]]"
|
||||
|
||||
## Switchgear
|
||||
|
||||
* `Area` = _As shown_
|
||||
* `Phase` = "Switch Gear"
|
||||
* `System` = "SWG - Switchgear"
|
||||
* `Bid Item` = "3 - Building"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = _As shown_
|
||||
> * `Phase` = "Switch Gear"
|
||||
> * `System` = "SWG - Switchgear"
|
||||
> * `Bid Item` = "3 - Building"
|
||||
|
||||
### Transformers
|
||||
|
||||
@@ -57,8 +58,9 @@ up: "[[takeoff-scripts]]"
|
||||
|
||||
## Generator
|
||||
|
||||
* `Area` = "01 - Generator"
|
||||
* `Phase` = "Switch Gear"
|
||||
* `System` = "Gen - Generator"
|
||||
> [!info] Breakdowns
|
||||
> * `Area` = "01 - Generator"
|
||||
> * `Phase` = "Switch Gear"
|
||||
> * `System` = "Gen - Generator"
|
||||
|
||||
1. [[distribution-designations#Generators]]
|
||||
|
||||
+22
-3
@@ -7,16 +7,35 @@ up: "[[conest-processes]]"
|
||||
|
||||
I often refer to "ConEst takeoff scripts"
|
||||
as justification for certain of decisions,
|
||||
but like the Project Management Body of Knowledge,
|
||||
they do not really exist in writing.
|
||||
but they do not really exist in writing.[^1]
|
||||
|
||||
[^1]: See [[conest-body-of-knowledge]]
|
||||
|
||||
Scripts should be directed,
|
||||
limiting extraneous information.
|
||||
|
||||
## Systems
|
||||
|
||||
The structure and names of scripts
|
||||
were originally intended to match how the terms
|
||||
are generally understood in ConEst,
|
||||
such that a new estimator could be told "Do _electrical_,"
|
||||
find `electrical-takeoff.md`, complete all its instructions,
|
||||
and in doing so satisfy the expectations of the estimator making the request.
|
||||
I've since come to the conclusion
|
||||
that the names of systems are ambiguously understood.
|
||||
A request that an estimator "do _electrical_"
|
||||
may or may not come with the expectation
|
||||
that any of lightning protection, slab deck budgets,
|
||||
or temporary power be completed as well.
|
||||
|
||||
Because I feel I lose nothing in doing so,
|
||||
|
||||
|
||||
## Citations
|
||||
|
||||
For the purpose of accountability,
|
||||
it is crucial that all direction have a documented origin.
|
||||
it is crucial that all direction has a documented origin.
|
||||
|
||||
Use footnotes to reference timestamped notes.
|
||||
|
||||
|
||||
+3
-2
@@ -57,8 +57,9 @@ Alternative
|
||||
|
||||
## Backbone Riser
|
||||
|
||||
* `Phase` = "Building - BOH ..."
|
||||
* `System` = "TC - Telecom Backbone"
|
||||
> [!info] Breakdowns
|
||||
> * `Phase` = "Building - BOH ..."
|
||||
> * `System` = "TC - Telecom Backbone"
|
||||
|
||||
If not shown:
|
||||
* _Garden Style:_ (2) 4"C
|
||||
|
||||
@@ -8,19 +8,46 @@ daily: "[[2026-06-03]]"
|
||||
|
||||
## 303 Mariposa Residence Senior Review
|
||||
|
||||
[[conest-senior-review]] for [[303-mariposa-residence]].
|
||||
[[conest-senior-review]] for [[303-mariposa-residence]]
|
||||
lead by [[joel-jansen]] and attended by [[zane-meyers]] and [[jared-defanti]].
|
||||
|
||||
### Selling Price
|
||||
|
||||
[[pdi-bid-estimating|Bid]]'s proposal base bid \$800,000
|
||||
[[pdi-bid-estimating|Bid]]'s proposal base bid was \$800,000,
|
||||
but in response to the [[conest-pre-takeoff-confirmation]]
|
||||
[[joshua-komis]] said to add \$65,000 for secondaries.
|
||||
|
||||
Joel messaged [[joshua-komis|Joshua Komis]] to clarify.
|
||||
We found correspondence
|
||||
that the secondaries were sold as $10,000 for conduit
|
||||
and $65,000 for wire.
|
||||
|
||||
Joel messaged Komis to clarify.
|
||||
He responded to use \$875,000.
|
||||
|
||||
### Site Run Adders
|
||||
|
||||
previous direction to use 15ft adders for site runs
|
||||
It would be easier to assume 10ft for all cases
|
||||
Joel agreed
|
||||
Joel questioned the use of 15ft adders for secondaries.
|
||||
I explained their use was based on prior direction he had given below.
|
||||
|
||||
> [!quote] feeders-takeoff.md
|
||||
> #### Adders
|
||||
>
|
||||
> Use the difference in elevation between equipment
|
||||
> or 10ft, whichever is greater.
|
||||
>
|
||||
> Add an additional 5ft (total 15ft) for site runs
|
||||
> (primaries, secondaries, etc.).
|
||||
|
||||
Joel remembered and started to move on.
|
||||
Jared asked if the extra adder was for vertical distance or routing contingency,
|
||||
Joel responded that it was sort of both.
|
||||
|
||||
I suggested that if it may be necessary to adjust them anyway,
|
||||
and "site runs" often being up to interpretation,
|
||||
it may be preferable to assume 10ft to start for all cases
|
||||
where the start and end are on the same level.
|
||||
That is, remove the conditional 5ft extra adder from the script.
|
||||
Joel agreed.
|
||||
|
||||
Mariposa's site runs didn't need adders at all
|
||||
since we added PVC80 stub-ups.
|
||||
@@ -36,6 +63,8 @@ Solar [[feeders-takeoff]] used copper feeder size
|
||||
based on aluminum size shown in Solar set.
|
||||
No change necessary.
|
||||
|
||||
We should have added the solar one-line to LiveCount.
|
||||
|
||||
### Material Pricing
|
||||
|
||||
Joel requested pricing for the dimmable receptacles from [[pdi-procurement]].
|
||||
@@ -47,8 +76,8 @@ but taken off as 2 counts each.
|
||||
|
||||
### Telecom
|
||||
|
||||
[[telecom-takeoff]] used Cat5e
|
||||
which we assumed, but did not note visibly.
|
||||
[[telecom-takeoff]] assumed Cat5e
|
||||
but we did not note the assumption visibly.
|
||||
|
||||
### Fire Alarm
|
||||
|
||||
@@ -60,13 +89,18 @@ which we assumed, but did not note visibly.
|
||||
assuming a dozen or so interconnected smokes.
|
||||
|
||||
\$26,XXX was the quote
|
||||
for sprinkler monitoring only
|
||||
for sprinkler monitoring only.
|
||||
"only one assembly"
|
||||
|
||||
### Closeout
|
||||
|
||||
#### Sales Tax
|
||||
#### Final Pricing
|
||||
|
||||
[[pdi-accubid-final-price]] 10.35%
|
||||
[[pdi-accubid-final-price]]
|
||||
|
||||
##### Sales Tax
|
||||
|
||||
10.35%
|
||||
|
||||
#### Equipment
|
||||
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
---
|
||||
id: 2026-06-04T10:05:03-0400
|
||||
title: 2026-06-04 10:05:03
|
||||
tags: []
|
||||
daily: "[[2026-06-04]]"
|
||||
---
|
||||
# 2026-06-04 10:05:03
|
||||
|
||||
## Mechanical Rules of Thumb
|
||||
|
||||
### Cooling towers
|
||||
|
||||
Avoid single cell tower
|
||||
|
||||
Avoid tower without a bleed-off
|
||||
|
||||
Avoid tower without heat trace and insulation on the make-up water
|
||||
|
||||
Avoid line-to-line bypass (in lieu of dumping into the sump)
|
||||
|
||||
### Chillers/chilled water
|
||||
|
||||
|
||||
Avoid one chiller system (exception: dual circuit air-cooled)
|
||||
|
||||
Avoid series chillers without bypasses
|
||||
|
||||
Avoid a coil with more than 14 fins/inch
|
||||
|
||||
### Equipment/misc.
|
||||
|
||||
Avoid simplex air compressor
|
||||
|
||||
Avoid simplex sump pump
|
||||
|
||||
Avoid dx built-up systems (vav)
|
||||
|
||||
Avoid coil face velocity above 550 fpm (could send condensate down ductwork)
|
||||
|
||||
Avoid horizontal cold water lines or horizontal roof drain lines above ceilings without insulating (dripping/sweating)
|
||||
|
||||
Isolation valves on both sides of all equipment - good practice
|
||||
|
||||
Think about future service: don't locate where dangerous to service
|
||||
|
||||
Avoid discharging roof drains onto a driveway or where pedestrian traffic
|
||||
|
||||
Avoid floor mounted water closets in commercial buildings - cleaning issue
|
||||
|
||||
Minimum 4" housekeeping pads underneath all floor mounted equipment
|
||||
|
||||
Ashrae recommends 400 fpm face velocity maximum at intake louvers
|
||||
|
||||
Avoid standard filters at more than 500 fpm (see mfgr recommendations)
|
||||
|
||||
Trap primers on all floor drains
|
||||
|
||||
### Ashrae 62 (ventilation)
|
||||
|
||||
* 20 cfm/person oa in office buildings.
|
||||
exceptions: large assembly areas
|
||||
|
||||
* 15 cfm/person oa in schools.
|
||||
|
||||
note: this ventilation might exceed the local codes,
|
||||
but ashrae recommendations should be met.
|
||||
|
||||
### Smacna pressure class
|
||||
|
||||
* 1" wg - low pressure
|
||||
* 3" wg - medium pressure
|
||||
* Under 3" wg - smacna does not recommend duct testing
|
||||
|
||||
If higher static pressures are specified,
|
||||
try to get lower pressure classes approved.
|
||||
The savings in duct costs are significant.
|
||||
|
||||
### Ductwork sizing
|
||||
|
||||
| Case | Max Friction Per 100ft |
|
||||
| ------------ | ---------------------- |
|
||||
| Low pressure | 0.10" |
|
||||
| Exhaust duct | 0.15" |
|
||||
|
||||
|
||||
| Case | Velocity FPM |
|
||||
| --------------------- | ------------------------------- |
|
||||
| Medium pressure riser | Max 3000 |
|
||||
| Medium pressure | Max 2500 |
|
||||
| Low pressure | Max 1800-2000 |
|
||||
| Return air shaft | Max 1000 |
|
||||
| Outside air shaft | Max 1000 |
|
||||
| Grease duct | Target 1800, Min 1500, Max 2200 |
|
||||
|
||||
Due to excessive noise,
|
||||
Avoid fan-powered or VAV boxes larger than 2000 CFM.
|
||||
|
||||
Install a balance damper at each low-pressure runout to diffusers.
|
||||
|
||||
No more than 90° turn with flex duct, straight duct run into boxes.
|
||||
|
||||
Where space permits,
|
||||
consider converting rectangular ductwork to round ductwork.
|
||||
|
||||
Energy code requires all duct to be sealed.
|
||||
|
||||
### Pumps
|
||||
|
||||
Try to locate condenser water pumps as low as possible
|
||||
as compared to the cooling tower basin - NPSH - gravity flow.
|
||||
|
||||
Select pumps for "non-overloading".
|
||||
|
||||
Select impeller no larger than 90% of maximum impeller size.
|
||||
|
||||
### Air units
|
||||
|
||||
| Tons | CFM/Ton |
|
||||
| ------------- | ------- |
|
||||
| under 20 | ~400 |
|
||||
| 25 and larger | ~350 |
|
||||
|
||||
|
||||
Avoid VFD bypass on VAV fan systems
|
||||
because it can blow apart duct in manual mode.
|
||||
Consider a spare VFD, or dump damper/blow-out doors.
|
||||
|
||||
Avoid larger economizer systems without powered exhaust.
|
||||
|
||||
### Useful formulas (standard conditions)
|
||||
|
||||
Quantity (CFM) = Velocity (FPM) * Area (SF)
|
||||
|
||||
Sensible load (BTUH) = 1.08 * CFM * (Delta-T)
|
||||
|
||||
Latent load (BTUH) = 0.68 * CFM * (Delta-GR)
|
||||
|
||||
Total load (BTUH) = 4.45 * CFM * (Delta-H)
|
||||
|
||||
* Formula for water:
|
||||
* Load (BTUH) = 1.08 * CFM * (Delta-T)
|
||||
|
||||
$$
|
||||
\rm{GPM} = \frac{\text{Load (BTUH)}}{500 \times \text{Delta-T}}
|
||||
$$
|
||||
|
||||
* A/C equipment efficiencies:
|
||||
|
||||
$$
|
||||
|
||||
$$
|
||||
|
||||
### Conversion factors
|
||||
|
||||
* 1 PSI = 2.307 ft of water
|
||||
* 1 ton A/C = 12,000 BTUH
|
||||
* 1 hp = 2545.1 BTUH = 745.7 watts
|
||||
* 1 kW = 341 5 BTUH
|
||||
* 1 cubic foot = 7.48 gallons
|
||||
* 1 gal. of water = 8.345 lbs
|
||||
|
||||
### pipe sizing
|
||||
|
||||
* 8 to 10 FPS max. Velocity
|
||||
* 6 FPS max. Velocity (public areas - noise)
|
||||
* 10 to 15 FPS velocity in central plant headers or on roof
|
||||
* 3" ano smaller: max head loss 6 ft/100 ft
|
||||
* Schedule 40 blk. Stl. Pipe sizing: (* std wt)
|
||||
|
||||
### Hvac piping
|
||||
|
||||
* Chilled water: 2 GPM/ton (12°F Delta-t)
|
||||
* Condenser water: 3 GPM/ton
|
||||
|
||||
#### Thermal Expansion
|
||||
|
||||
(steel pipe): 1" expansion/100 ft of pipe/100°F rise
|
||||
|
||||
### A/C condensate/waste sizing
|
||||
|
||||
| Tons | Pipe Size |
|
||||
| -------- | --------- |
|
||||
| Up to 20 | 3/4" |
|
||||
| 21--40 | 1" |
|
||||
| 41--90 | 1-1/4" |
|
||||
| 91--125 | 1-1/2" |
|
||||
| 126--250 | 2" |
|
||||
|
||||
### Air device sizing
|
||||
|
||||
| CFM | Neck Size |
|
||||
| --------- | --------- |
|
||||
| Up to 150 | 6" |
|
||||
| 151--250 | 8" |
|
||||
| 251--450 | 10" |
|
||||
| 451--650 | 12" |
|
||||
| 651--800 | 14" |
|
||||
|
||||
### FPB/VAV sizing
|
||||
|
||||
| Inlet Size | Max CFM |
|
||||
| ---------- | ------- |
|
||||
| 6" | 450 |
|
||||
| 8" | 700 |
|
||||
| 10" | 1200 |
|
||||
| 12" | 1700 |
|
||||
| 14" | 2300 |
|
||||
|
||||
Note: runout distance is very important.
|
||||
The inlet size shown is not necessarily the correct runout size to the box.
|
||||
(Medium pressure runs 0.3 ft/100 ft max)
|
||||
|
||||
### Cooling loads
|
||||
|
||||
| Building Type | SF/Ton |
|
||||
| ------------------ | -------- |
|
||||
| Office buildings | 300--325 |
|
||||
| Tempered warehouse | 500 |
|
||||
| Call center | 275--300 |
|
||||
|
||||
* Typical air distribution for office bldgs:
|
||||
* north 1.5 CFM/SF
|
||||
(assumes 12 ft zone east 2.0 CFM/SF and 25°F Delta-t)
|
||||
* south 2.5 CFM/SF
|
||||
* west 2.5 CFM/SF
|
||||
* interior 0.8 CFM/SF
|
||||
* total should avg 0.8 to 1.0 CFM/SF gross
|
||||
|
||||
* Smoke evacuation: 1 CFM/SF
|
||||
|
||||
* Stairwell pressurization: 2000 CFM/floor
|
||||
|
||||
### Plumbing Fixture Runout Minimum Size Schedule
|
||||
|
||||
| Fixture | Waste | Vent | Cold | Hot |
|
||||
| ---------------------- | ------ | ------ | ---- | ---- |
|
||||
| Water Closets | 4" | 2" | 1" | - |
|
||||
| Lavatories | 1-1/2" | 1-1/2" | 1/2" | 1/2" |
|
||||
| Urinals | 2" | 1-1/2" | 3/4" | - |
|
||||
| Sinks | 2" | 1-1/2" | 1/2" | 1/2" |
|
||||
| Service Sinks | 3" | 2" | 3/4" | 3/4" |
|
||||
| Hose Bibbs | - | - | 3/4" | - |
|
||||
| Box Hydrants | - | - | 3/4" | - |
|
||||
| Electric Water Coolers | 2" | 1-1/2" | 1/2" | - |
|
||||
| Showers | 2" | 2" | 1/2" | 1/2" |
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
id: 2026-06-04T11:40:49-0400
|
||||
title: 2026-06-04 11:40:49
|
||||
tags: []
|
||||
daily: "[[2026-06-04]]"
|
||||
---
|
||||
# 2026-06-04 11:40:49
|
||||
|
||||
Expect that people's explanations
|
||||
of what they do and why they do it
|
||||
will be related to what they _actually_ do
|
||||
and why they _actually_ do it,
|
||||
but if you care to meet or exceed their ability
|
||||
never take those explanations at face value.
|
||||
|
||||
It is well known that the ability of individuals
|
||||
to perform complex practiced tasks
|
||||
_far_ exceeds their ability to explain their process.[^1]
|
||||
|
||||
[^1]: See [[kahneman_2011_thinking]]
|
||||
@@ -0,0 +1,120 @@
|
||||
---
|
||||
id: 2026-06-04T13:20:08-0400
|
||||
title: 2026-06-04 13:20:08
|
||||
tags: []
|
||||
daily: "[[2026-06-04]]"
|
||||
---
|
||||
# 2026-06-04 13:20:08
|
||||
|
||||
## 303 Mariposa Residence
|
||||
|
||||
[[conest-manager-review]] for [[303-mariposa-residence]]
|
||||
lead by [[josh-ford]] as ConEst Manager
|
||||
attended by [[joel-jansen]] as ConEst Senior Estimator
|
||||
and [[jared-defanti]] and [[zane-meyers]] as ConEst Estimators.
|
||||
|
||||
### Temporary Power
|
||||
|
||||
> "Do they really need \$10,000 for temp power?"
|
||||
|
||||
\$2,500 and 50hrs
|
||||
|
||||
### Site Lighting
|
||||
|
||||
Pole Bases
|
||||
|
||||
> "I would leave it if it's for the bollards. It can't be that much."
|
||||
|
||||
### Site Low Voltage Duct Bank
|
||||
|
||||
Josh okayed assumptions for site runs
|
||||
secondaries
|
||||
|
||||
### Putty Pads
|
||||
|
||||
add putty pads equal to device boxes
|
||||
|
||||
### Feeders
|
||||
|
||||
%% is run from inverter to EM diff size from MDP to inverter? %%
|
||||
|
||||
### Dimmable Receptacles
|
||||
|
||||
> Lutron Homeworks devices are thicker,
|
||||
> need deep boxes.
|
||||
|
||||
### Lighting/Shade Controls
|
||||
|
||||
[[lighting-controls-takeoff]]
|
||||
|
||||
#### Trough
|
||||
|
||||
`COMMON ASSEMBLIES`/`DISTRIBUTION`/`LIGHTING CONTROL PANEL INSTALLATION`/`_ - LIGHTING CONTROL PANEL INSTALLATION & TROUGH - ...`
|
||||
|
||||
used 4 section
|
||||
changed labor time from 4 to 6
|
||||
added 500ft \#12/2 NM
|
||||
|
||||
### Telecom
|
||||
|
||||
> "I'm surprised this isn't a certified system"
|
||||
|
||||
Changed assumed Cat5e to Cat6
|
||||
|
||||
> "I feel like we don't ever install Cat5 anymore"
|
||||
>
|
||||
> "A house on the upper range like this isn't going to go with Cat5"
|
||||
|
||||
AV Coordination.pdf
|
||||
TV Specs: 3 Cat6
|
||||
|
||||
### Fire Alarm
|
||||
|
||||
Leaving smokes despite direction
|
||||
for budgetary purposes.
|
||||
|
||||
### Closeout
|
||||
|
||||
#### Labor Plan
|
||||
|
||||
> "I don't think you can even do a labor plan."
|
||||
> "Just leave it all at 100%."
|
||||
|
||||
> "I use World (Electric) for everything, I don't care where it is."
|
||||
|
||||
#### Subs
|
||||
|
||||
Excavation $5,000
|
||||
|
||||
Wireways, Troughs: $1,250
|
||||
|
||||
#### General Expenses
|
||||
|
||||
Lower Office Supplies to $2,500
|
||||
|
||||
Delete Customer Development
|
||||
|
||||
##### Duration
|
||||
|
||||
Approved Labor Plan says 16 months
|
||||
|
||||
Removed all under "Jobs > \$3mil COGs"
|
||||
|
||||
Josh said he removed COGs with Aaron's direction
|
||||
on a job sold at \$3.8 million.
|
||||
|
||||
#### Equipment
|
||||
|
||||
Removed two-way radio
|
||||
|
||||
#### Material Pricing
|
||||
|
||||
> Josh: "Put \$400 for the Quazite." \
|
||||
> Joel: "I put \$1,200." \
|
||||
> Josh: "You put \$1,200? Okay put \$500."
|
||||
|
||||
### Conclusion
|
||||
|
||||
surprised by high margin,
|
||||
checked bid takeoff
|
||||
found large cost difference in relocation budget
|
||||
+8
-4
@@ -57,7 +57,8 @@ aliases:
|
||||
|
||||
### Load Centers
|
||||
|
||||
* `System` = "EL - Electrical"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "EL - Electrical"
|
||||
|
||||
| Rating | Assembly |
|
||||
| ------- | ---------------------------------------------------------------------------------- |
|
||||
@@ -161,7 +162,8 @@ Adjust cable length as needed.
|
||||
|
||||
#### Residential
|
||||
|
||||
* `System` = "EL - Electrical"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "EL - Electrical"
|
||||
|
||||
##### Smoke Detectors & CO Detectors
|
||||
|
||||
@@ -175,7 +177,8 @@ For ADA units:
|
||||
|
||||
##### Additional Signaling Devices
|
||||
|
||||
* `System` = "FA - Fire Alarm"[^3]
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "FA - Fire Alarm"[^3]
|
||||
|
||||
`COMMON ASSEMBLIES`/`FIRE ALARM & DAS SYSTEMS`/`INDICATING DEVICES WITH WIRE - FREE AIR`/`INDOOR HORN STROBE - FREE AIR`
|
||||
|
||||
@@ -183,7 +186,8 @@ For ADA units:
|
||||
|
||||
#### Hospitality
|
||||
|
||||
* `System` = "FA - Fire Alarm"
|
||||
> [!info] Breakdowns
|
||||
> * `System` = "FA - Fire Alarm"
|
||||
|
||||
`COMMON ASSEMBLIES`/`FIRE ALARM & DAS SYSTEMS`/`... DEVICES WITH WIRE - FREE AIR`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user