← Inbox

C3D-260619-SHEETFREE · Sheet occupancy + viewport scale done

Read-only: what occupies the 22X17 C sheet and where, the viewport scale (for a correct graphic scale bar), and the text styles/heights in use.

Script file
C3D-260619-SHEETFREE.cs
Target
260619 · paper space
Author
claude
Approved
yes · auto-auth
Timeout
180s

C# payload

// READ-ONLY: what's on the 22X17 C sheet already, so the clerk box (#3) and scale bar (#4)
// land in free space and match existing text conventions.
const string LAYOUT = "22X17 C";
var layDict = (DBDictionary)Tx.GetObject(Db.LayoutDictionaryId, OpenMode.ForRead);
var layout  = (Layout)Tx.GetObject(layDict.GetAt(LAYOUT), OpenMode.ForRead);
var ps      = (BlockTableRecord)Tx.GetObject(layout.BlockTableRecordId, OpenMode.ForRead);
Log("sheet " + (layout.PlotPaperSize.X/25.4).ToString("F2") + " x " + (layout.PlotPaperSize.Y/25.4).ToString("F2") + " in");

// occupied boxes, so free space is visible
Log("--- occupancy (non-viewport entities with extents) ---");
foreach (ObjectId id in ps)
{
    var e = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
    if (e == null || e is Viewport) continue;
    Extents3d ex; try { ex = e.GeometricExtents; } catch { continue; }
    double w = ex.MaxPoint.X-ex.MinPoint.X, h = ex.MaxPoint.Y-ex.MinPoint.Y;
    if (w < 0.15 && h < 0.15) continue;              // skip tiny bits
    Log("  " + e.GetType().Name.PadRight(16) + " layer=" + e.Layer.PadRight(22) +
        " (" + ex.MinPoint.X.ToString("F2") + "," + ex.MinPoint.Y.ToString("F2") + ")-(" +
        ex.MaxPoint.X.ToString("F2") + "," + ex.MaxPoint.Y.ToString("F2") + ")");
}

// viewport scale, needed for a correct graphic scale bar
Log("--- viewports ---");
foreach (ObjectId id in ps)
{
    var vp = Tx.GetObject(id, OpenMode.ForRead) as Viewport;
    if (vp == null || vp.Number == 1) continue;
    Log("  vp h=" + vp.Handle + " num=" + vp.Number + " centre(" + vp.CenterPoint.X.ToString("F2") + "," + vp.CenterPoint.Y.ToString("F2") +
        ") size " + vp.Width.ToString("F2") + "x" + vp.Height.ToString("F2") +
        " customScale=" + vp.CustomScale.ToString("F6") + "  (1 paper in = " + (vp.CustomScale > 0 ? (1.0/vp.CustomScale).ToString("F2") : "?") + " model units)" +
        " locked=" + vp.Locked + " on=" + vp.On);
}

// text styles in use, so new text matches
Log("--- text styles used on the sheet ---");
var seen = new Dictionary<string,int>();
foreach (ObjectId id in ps)
{
    var e = Tx.GetObject(id, OpenMode.ForRead);
    string sn = null; double ht = 0;
    var mt = e as MText;   if (mt != null) { sn = ((TextStyleTableRecord)Tx.GetObject(mt.TextStyleId, OpenMode.ForRead)).Name; ht = mt.TextHeight; }
    var dt = e as DBText;  if (dt != null) { sn = ((TextStyleTableRecord)Tx.GetObject(dt.TextStyleId, OpenMode.ForRead)).Name; ht = dt.Height; }
    if (sn == null) continue;
    var k = sn + " @ " + ht.ToString("F3");
    seen[k] = seen.ContainsKey(k) ? seen[k]+1 : 1;
}
foreach (var kv in seen) Log("  " + kv.Value + "x  " + kv.Key);

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260619 - 3625 Stonewall Tell Rd, Atlanta, GA 30349, USA\260619 - 3625 Stonewall Tell Rd ROTATE.dwg
Message
Executed C3D-260619-SHEETFREE (0 entities touched).
Entities
Duration
603 ms
Civil 3D
25.0.0.0

Log

sheet 22.00 x 17.00 in
--- occupancy (non-viewport entities with extents) ---
  Line             layer=TB1                    (11.20,0.33)-(21.76,0.33)
  Line             layer=BLOCK_NORTH_ARROW      (21.31,15.73)-(21.31,16.36)
  Line             layer=BLOCK_NORTH_ARROW      (21.26,15.72)-(21.31,16.36)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,15.73)-(21.30,16.33)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,15.73)-(21.30,16.25)
  Line             layer=BLOCK_NORTH_ARROW      (21.29,15.73)-(21.29,16.17)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.17,14.23)-(21.44,14.92)
  DBText           layer=BLOCK_NORTH_ARROW      (21.37,13.30)-(21.45,13.95)
  Line             layer=BLOCK_NORTH_ARROW      (21.31,13.34)-(21.31,13.98)
  Line             layer=BLOCK_NORTH_ARROW      (21.24,13.39)-(21.31,13.98)
  Line             layer=BLOCK_NORTH_ARROW      (21.29,13.38)-(21.29,13.85)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,13.37)-(21.30,13.90)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,13.36)-(21.30,13.96)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,13.39)-(21.27,13.69)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,13.39)-(21.27,13.64)
  Line             layer=BLOCK_NORTH_ARROW      (21.26,13.39)-(21.26,13.59)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,13.39)-(21.28,13.75)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,13.38)-(21.28,13.80)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,13.98)-(21.31,14.23)
  Line             layer=BLOCK_NORTH_ARROW      (21.31,15.01)-(21.31,15.60)
  Line             layer=BLOCK_NORTH_ARROW      (21.20,15.00)-(21.22,15.24)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.23,15.10)-(21.35,15.60)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.18,15.04)-(21.45,15.73)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,15.00)-(21.25,15.23)
  Line             layer=BLOCK_NORTH_ARROW      (21.24,15.00)-(21.24,15.24)
  Line             layer=BLOCK_NORTH_ARROW      (21.24,15.00)-(21.24,15.26)
  Line             layer=BLOCK_NORTH_ARROW      (21.23,15.00)-(21.23,15.27)
  Line             layer=BLOCK_NORTH_ARROW      (21.22,15.00)-(21.22,15.29)
  Line             layer=BLOCK_NORTH_ARROW      (21.22,15.00)-(21.22,15.24)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.21)-(21.28,15.58)
  Line             layer=BLOCK_NORTH_ARROW      (21.29,15.20)-(21.29,15.59)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,15.18)-(21.30,15.59)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,15.17)-(21.30,15.59)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.31,14.94)-(21.50,15.05)
  Line             layer=BLOCK_NORTH_ARROW      (21.31,14.56)-(21.31,14.77)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.27,14.36)-(21.39,14.85)
  Line             layer=BLOCK_NORTH_ARROW      (21.17,14.61)-(21.19,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,14.60)-(21.25,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,14.60)-(21.25,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.24,14.61)-(21.24,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.24,14.61)-(21.24,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.23,14.61)-(21.23,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.22,14.61)-(21.22,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.22,14.61)-(21.22,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.21,14.61)-(21.21,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.21,14.61)-(21.21,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.20,14.61)-(21.20,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.19,14.61)-(21.19,14.92)
  Line             layer=BLOCK_NORTH_ARROW      (21.19,14.61)-(21.19,14.84)
  Line             layer=BLOCK_NORTH_ARROW      (21.18,14.61)-(21.18,14.77)
  Line             layer=BLOCK_NORTH_ARROW      (21.26,14.60)-(21.26,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,14.59)-(21.27,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,14.59)-(21.27,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,14.59)-(21.28,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,14.58)-(21.28,14.84)
  Line             layer=BLOCK_NORTH_ARROW      (21.29,14.58)-(21.29,14.83)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,14.57)-(21.30,14.82)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,14.56)-(21.30,14.82)
  Line             layer=BLOCK_NORTH_ARROW      (21.31,14.36)-(21.31,14.56)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.11,14.89)-(21.31,15.01)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.31,15.01)-(21.46,15.09)
  Line             layer=BLOCK_NORTH_ARROW      (21.21,15.00)-(21.21,15.16)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,15.00)-(21.25,15.22)
  Line             layer=BLOCK_NORTH_ARROW      (21.26,15.00)-(21.26,15.21)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,15.00)-(21.27,15.20)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,15.01)-(21.27,15.19)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.01)-(21.28,15.18)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.01)-(21.28,15.17)
  Line             layer=BLOCK_NORTH_ARROW      (21.29,15.01)-(21.29,15.17)
  Line             layer=BLOCK_NORTH_ARROW      (21.30,15.01)-(21.30,15.16)
  Polyline2d       layer=BLOCK_NORTH_ARROW      (21.15,14.86)-(21.31,14.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.23)-(21.28,15.58)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,15.24)-(21.27,15.57)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,15.26)-(21.27,15.56)
  Line             layer=BLOCK_NORTH_ARROW      (21.26,15.28)-(21.26,15.55)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,15.29)-(21.25,15.54)
  Line             layer=BLOCK_NORTH_ARROW      (21.25,15.32)-(21.25,15.52)
  Line             layer=BLOCK_NORTH_ARROW      (21.27,15.72)-(21.27,15.94)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.73)-(21.28,16.10)
  Line             layer=BLOCK_NORTH_ARROW      (21.28,15.73)-(21.28,16.02)
  MText            layer=BLOCK_CLOSURE          (18.70,4.84)-(21.60,5.25)
  MText            layer=BLOCK_CLOSURE          (18.70,5.39)-(21.34,7.27)
  DBText           layer=BLOCK_CLOSURE          (19.24,3.91)-(19.64,3.97)
  DBText           layer=BLOCK_CLOSURE          (19.24,3.72)-(19.67,3.77)
  DBText           layer=BLOCK_CLOSURE          (18.70,4.01)-(20.44,4.09)
  DBText           layer=BLOCK_CLOSURE          (19.23,3.58)-(20.20,3.64)
  DBText           layer=BLOCK_CLOSURE          (19.24,3.81)-(20.06,3.86)
  DBText           layer=BLOCK_CLOSURE          (19.24,3.49)-(20.00,3.55)
  DBText           layer=BLOCK_CLOSURE          (18.71,3.35)-(20.48,3.41)
  Polyline         layer=BLOCK_CLOSURE          (18.98,3.69)-(18.99,3.84)
  Solid            layer=BLOCK_CLOSURE          (18.98,3.69)-(18.98,3.84)
  Line             layer=BLOCK_CLOSURE          (18.79,3.59)-(19.04,3.86)
  Line             layer=BLOCK_CLOSURE          (18.77,3.57)-(19.02,3.84)
  Solid            layer=BLOCK_CLOSURE          (18.76,3.58)-(19.03,3.86)
  Polyline2d       layer=BLOCK_CLOSURE          (18.78,3.71)-(19.08,3.80)
  Polyline2d       layer=BLOCK_CLOSURE          (18.79,3.67)-(19.09,3.75)
  Polyline         layer=BLOCK_CLOSURE          (18.77,3.67)-(19.08,3.75)
  Polyline         layer=BLOCK_CLOSURE          (18.69,3.51)-(19.10,3.92)
  MText            layer=BLOCK_CLOSURE          (18.69,3.99)-(21.55,4.84)
  Polyline         layer=SS-BOUNDARY CYAN       (21.81,-0.00)-(21.98,0.29)
  BlockReference   layer=SS-BOUNDARY            (18.68,7.45)-(21.38,10.66)
  DBText           layer=BLOCK_CLOSURE          (8.49,0.51)-(9.83,0.60)
  BlockReference   layer=SS-BOUNDARY LAND LOT   (0.25,0.26)-(21.75,16.74)
  MText            layer=C-ANNO-CERT            (11.56,16.15)-(18.16,16.25)
  MText            layer=C-ANNO-CERT            (11.56,14.49)-(18.16,15.98)
  MText            layer=C-ANNO-CERT            (11.56,13.87)-(18.16,13.97)
  MText            layer=C-ANNO-CERT            (11.56,13.57)-(18.16,13.66)
  MText            layer=C-ANNO-CERT            (11.56,13.04)-(18.16,13.39)
  MText            layer=C-ANNO-CERT            (11.56,11.94)-(18.16,12.85)
  MText            layer=C-ANNO-CERT            (11.71,11.66)-(14.11,11.74)
  MText            layer=C-ANNO-CERT            (14.18,11.66)-(14.58,11.74)
  MText            layer=C-ANNO-CERT            (14.53,11.66)-(15.33,11.74)
  MText            layer=C-ANNO-CERT            (11.71,11.53)-(14.11,11.61)
  MText            layer=C-ANNO-CERT            (14.18,11.53)-(14.58,11.61)
  MText            layer=C-ANNO-CERT            (14.53,11.53)-(15.33,11.61)
  MText            layer=C-ANNO-CERT            (11.71,11.37)-(14.11,11.47)
  MText            layer=C-ANNO-CERT            (14.18,11.39)-(14.58,11.47)
  MText            layer=C-ANNO-CERT            (14.53,11.39)-(15.33,11.47)
  MText            layer=C-ANNO-CERT            (11.71,11.22)-(14.11,11.34)
  MText            layer=C-ANNO-CERT            (14.18,11.26)-(14.58,11.34)
  MText            layer=C-ANNO-CERT            (14.53,11.26)-(15.33,11.34)
  MText            layer=C-ANNO-CERT            (11.56,10.68)-(14.16,10.79)
  MText            layer=C-ANNO-CERT            (15.13,10.68)-(17.73,10.79)
  MText            layer=C-ANNO-CERT            (11.56,10.13)-(14.16,10.23)
  MText            layer=C-ANNO-CERT            (15.13,10.13)-(17.73,10.23)
  MText            layer=C-ANNO-CERT            (15.13,9.75)-(17.73,9.83)
  MText            layer=C-ANNO-CERT            (11.57,6.37)-(18.17,6.45)
  MText            layer=C-ANNO-CERT            (11.57,5.70)-(18.17,6.18)
  MText            layer=C-ANNO-CERT            (11.57,5.23)-(15.57,5.34)
  MText            layer=C-ANNO-CERT            (15.79,5.26)-(17.59,5.34)
  MText            layer=C-ANNO-CERT            (11.56,9.44)-(18.16,9.52)
  MText            layer=C-ANNO-CERT            (11.56,8.74)-(18.16,9.25)
  MText            layer=C-ANNO-CERT            (11.56,8.57)-(14.86,8.65)
  MText            layer=C-ANNO-CERT            (15.13,8.57)-(18.43,8.65)
  MText            layer=C-ANNO-CERT            (11.56,8.40)-(14.86,8.52)
  MText            layer=C-ANNO-CERT            (15.13,8.40)-(18.43,8.52)
  MText            layer=C-ANNO-CERT            (11.56,8.26)-(14.86,8.38)
  MText            layer=C-ANNO-CERT            (15.13,8.26)-(18.43,8.38)
  MText            layer=C-ANNO-CERT            (11.56,7.99)-(14.86,8.11)
  MText            layer=C-ANNO-CERT            (15.13,7.99)-(18.43,8.11)
  MText            layer=C-ANNO-CERT            (11.56,7.86)-(14.86,7.98)
  MText            layer=C-ANNO-CERT            (15.13,7.86)-(18.43,7.98)
  MText            layer=C-ANNO-CERT            (15.13,7.72)-(18.43,7.84)
  MText            layer=C-ANNO-CERT            (15.13,7.11)-(18.13,7.22)
  MText            layer=C-ANNO-CERT            (11.56,6.74)-(13.96,6.82)
  MText            layer=C-ANNO-CERT            (15.13,6.71)-(18.13,6.82)
  Line             layer=C-ANNO-CERT-LINE       (11.56,14.11)-(14.96,14.11)
  Line             layer=C-ANNO-CERT-LINE       (11.56,10.83)-(14.11,10.83)
  Line             layer=C-ANNO-CERT-LINE       (15.13,10.83)-(17.68,10.83)
  Line             layer=C-ANNO-CERT-LINE       (11.56,10.28)-(14.11,10.28)
  Line             layer=C-ANNO-CERT-LINE       (15.13,10.28)-(17.68,10.28)
  Line             layer=C-ANNO-CERT-LINE       (11.56,9.88)-(14.11,9.88)
  Line             layer=C-ANNO-CERT-LINE       (15.13,9.88)-(17.68,9.88)
  Line             layer=C-ANNO-CERT-LINE       (11.57,5.38)-(15.47,5.38)
  Line             layer=C-ANNO-CERT-LINE       (15.79,5.38)-(17.54,5.38)
  Line             layer=C-ANNO-CERT-LINE       (11.56,7.28)-(13.76,7.28)
  Line             layer=C-ANNO-CERT-LINE       (15.13,7.28)-(18.03,7.28)
  Line             layer=C-ANNO-CERT-LINE       (11.56,6.88)-(13.76,6.88)
  Line             layer=C-ANNO-CERT-LINE       (15.13,6.88)-(18.03,6.88)
  MText            layer=C-ANNO-CERT            (11.56,9.75)-(14.16,9.83)
  MText            layer=C-ANNO-CERT            (11.56,10.83)-(14.16,10.94)
  MText            layer=C-ANNO-CERT            (15.13,10.83)-(17.73,10.94)
  MText            layer=C-ANNO-CERT            (11.56,7.16)-(13.96,7.24)
  MText            layer=SS-BOUNDARY LAND LOT   (11.77,15.04)-(12.35,15.14)
  Line             layer=C-ANNO-CERT-LINE       (11.56,15.05)-(12.41,15.05)
  RasterImage      layer=BLOCK_CLOSURE          (7.86,0.68)-(10.46,3.28)
  Polyline         layer=BLOCK_CLOSURE          (7.86,0.68)-(10.46,3.28)
  Line             layer=TB1                    (0.61,0.73)-(4.59,0.73)
  Line             layer=TB1                    (0.61,0.77)-(4.59,0.77)
  Line             layer=TB1                    (0.61,0.80)-(4.59,0.80)
  DBText           layer=TB1                    (2.13,0.48)-(3.11,0.61)
  DBText           layer=TB1                    (1.53,0.88)-(1.69,0.98)
  DBText           layer=TB1                    (2.50,0.88)-(2.72,0.98)
  Solid            layer=TB1                    (3.59,0.75)-(4.59,0.77)
  DBText           layer=TB1                    (3.49,0.88)-(3.71,0.98)
  DBText           layer=TB1                    (4.45,0.88)-(4.69,0.98)
  Solid            layer=TB1                    (2.60,0.77)-(3.59,0.79)
  Solid            layer=TB1                    (1.60,0.75)-(2.60,0.77)
--- viewports ---
  vp h=21534 num=2 centre(11.00,8.50) size 21.41x16.39 customScale=0.016667  (1 paper in = 60.00 model units) locked=True on=True
--- text styles used on the sheet ---
  1x  SIMPLEX @ 0.076
  1x  L120 @ 0.055
  1x  DIM @ 0.059
  7x  ROMAND @ 0.057
  1x  ROMAND @ 0.076
  49x  SIMPLEX @ 0.080
  6x  ROMANC @ 0.100

Notes

What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.

No notes yet.