vault backup: 2025-09-20 12:47:05
This commit is contained in:
+30
-26
@@ -1,8 +1,32 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "pre-takeoff-confirmation",
|
||||
"path": "pre-takeoff-confirmation.md"
|
||||
"basename": "automating-pdf-annotation",
|
||||
"path": "automating-pdf-annotation.md"
|
||||
},
|
||||
{
|
||||
"basename": "automating-estimating-project-creation",
|
||||
"path": "automating-estimating-project-creation.md"
|
||||
},
|
||||
{
|
||||
"basename": "automating-email",
|
||||
"path": "automating-email.md"
|
||||
},
|
||||
{
|
||||
"basename": "assembly-philosophy",
|
||||
"path": "assembly-philosophy.md"
|
||||
},
|
||||
{
|
||||
"basename": "assembly-objects",
|
||||
"path": "assembly-objects.md"
|
||||
},
|
||||
{
|
||||
"basename": "breakdown-objects",
|
||||
"path": "breakdown-objects.md"
|
||||
},
|
||||
{
|
||||
"basename": "feeders",
|
||||
"path": "feeders.md"
|
||||
},
|
||||
{
|
||||
"basename": "full-takeoff",
|
||||
@@ -12,6 +36,10 @@
|
||||
"basename": "README",
|
||||
"path": "README.md"
|
||||
},
|
||||
{
|
||||
"basename": "pre-takeoff-confirmation",
|
||||
"path": "pre-takeoff-confirmation.md"
|
||||
},
|
||||
{
|
||||
"basename": "breakdowns",
|
||||
"path": "breakdowns.md"
|
||||
@@ -20,30 +48,10 @@
|
||||
"basename": "subfeeds",
|
||||
"path": "subfeeds.md"
|
||||
},
|
||||
{
|
||||
"basename": "assembly-philosophy",
|
||||
"path": "assembly-philosophy.md"
|
||||
},
|
||||
{
|
||||
"basename": "automating-pdf-annotation",
|
||||
"path": "automating-pdf-annotation.md"
|
||||
},
|
||||
{
|
||||
"basename": "automating-estimating-project-creation",
|
||||
"path": "automating-estimating-project-creation.md"
|
||||
},
|
||||
{
|
||||
"basename": "project-setup",
|
||||
"path": "project-setup.md"
|
||||
},
|
||||
{
|
||||
"basename": "breakdown-objects",
|
||||
"path": "breakdown-objects.md"
|
||||
},
|
||||
{
|
||||
"basename": "assembly-objects",
|
||||
"path": "assembly-objects.md"
|
||||
},
|
||||
{
|
||||
"basename": "2025-07-18_estimating-isnt-engineering",
|
||||
"path": "2025-07-18_estimating-isnt-engineering.md"
|
||||
@@ -108,10 +116,6 @@
|
||||
"basename": "area-of-refuge",
|
||||
"path": "area-of-refuge.md"
|
||||
},
|
||||
{
|
||||
"basename": "feeders",
|
||||
"path": "feeders.md"
|
||||
},
|
||||
{
|
||||
"basename": "lightning-protection",
|
||||
"path": "lightning-protection.md"
|
||||
|
||||
+27
-7
@@ -10,19 +10,33 @@ tags:
|
||||
# Assembly Objects
|
||||
|
||||
```cs
|
||||
public class GangableReceptacle : IGangableDevice
|
||||
...
|
||||
public class GangableReceptacle : IGangableDevice, IUtilizationEquipment
|
||||
{
|
||||
public int Gangs { get; }
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
public class GangableSwitch : IGangableDevice
|
||||
...
|
||||
|
||||
public class OutletBox
|
||||
public class DeviceBox : IOutletBox
|
||||
{
|
||||
public List<IUtilizationEquipment> Contents;
|
||||
private List<IGangableDevice> _contents;
|
||||
|
||||
public void Add(IUtilizationEquipment)
|
||||
public void Add(IGangableDevice device)
|
||||
{
|
||||
// Add to contents or throw if incompatible
|
||||
_contents.Add(device);
|
||||
}
|
||||
|
||||
public int GetGangs()
|
||||
{
|
||||
int gangs = 0;
|
||||
foreach (device in _contents)
|
||||
{
|
||||
gangs += device.Gangs
|
||||
}
|
||||
return gangs
|
||||
}
|
||||
|
||||
public List<Item> Resolve()
|
||||
@@ -43,9 +57,15 @@ public class OutletBox
|
||||
- type: transfer-switch
|
||||
parents: 2
|
||||
children: 1
|
||||
primary-rating: amperes
|
||||
|
||||
- type: transformer
|
||||
parents: 1
|
||||
children: 1
|
||||
children: 1..
|
||||
primary-rating: volt-amperes
|
||||
|
||||
- type: generator
|
||||
parents: 0
|
||||
children: 1..
|
||||
primary-rating: watts
|
||||
```
|
||||
|
||||
@@ -10,7 +10,29 @@ tags:
|
||||
|
||||
See [[portable-tools]] for valid dependencies.
|
||||
|
||||
## Bluebeam Revu Measure Hack
|
||||
## Clean Documents
|
||||
|
||||
### Page Rotation
|
||||
|
||||
Pages have a rotation value independent of appearance
|
||||
which rotates the drawing reference grid.
|
||||
This must be resolved before further processing.
|
||||
|
||||
Trivial coordinate-returning tools/functions
|
||||
may use the non-rotation-adjusted values,
|
||||
which are essentially useless for our purposes.
|
||||
|
||||
MuPDF and similar libraries provide functions
|
||||
to return the "visual" (read _correct_) coordinates,
|
||||
but it would be ideal to redraw content with the correct orientation.
|
||||
|
||||
## Extract Bluebeam Markups
|
||||
|
||||
Right now I'm exporting Bluebeam markups to csv before processing,
|
||||
however if I converted to the code to extract the markups directly with MuPDF.Net
|
||||
as I've managed before with itext, that could save a step.
|
||||
|
||||
### Bluebeam Revu Measure Hack
|
||||
|
||||
BlueBeam Revu give coordinates for count annotations,
|
||||
even where count = 1.
|
||||
@@ -37,20 +59,6 @@ Bluebeam's .bax is a annotation interchange format based on xml
|
||||
> [!menu]
|
||||
> Markups List > Markups > Import
|
||||
|
||||
## Clean Documents
|
||||
|
||||
### Page Rotation
|
||||
|
||||
Pages have a rotation value independent of appearance
|
||||
which rotates the reference grid.
|
||||
This must be resolved before further processing.
|
||||
|
||||
## Extract Bluebeam Markups
|
||||
|
||||
Right now I'm exporting Bluebeam markups to csv before processing,
|
||||
however if I converted to the code to extract the markups directly with MuPDF.Net
|
||||
as I've managed before with itext, that could save a step.
|
||||
|
||||
## PDF Content Positional Tokenization
|
||||
|
||||
Recursively parse and consume pdf vector content.
|
||||
|
||||
@@ -22,9 +22,19 @@ 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
|
||||
|
||||
```
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ All feeder takeoff descriptions should be prefixed with `<parent> TO <child>`
|
||||
|
||||
> [!cite] Joel Jansen, in reference to Omni Hotels Raleigh, pp.
|
||||
> It is acceptable to use typicals for identical feeders
|
||||
> so long as the typical is in the Feeders `Area`
|
||||
> so long as the typical is in the Feeders `Area`.
|
||||
|
||||
## Sequence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user