← Inbox

C3D-0299 · 260610 Tara Blvd: read the store interior labels + fixture geometry done

READ-ONLY. Finds the space holding the store plan, then dumps every text label with position/height/rotation, every polyline with a measured area and bounding box, and every dimension, so each labelled fixture can be given a square footage.

Script file
C3D-0299.cs
Target
260610 - 6736 Tara Blvd R2.dwg · model space
Author
claude
Approved
yes · auto-auth
Timeout
60s

C# payload

// READ-ONLY: the store interior. Every text label with its position, and every closed shape
// (polyline / lwpolyline / line-loop) with a measured area, so each labelled fixture can be sized.
Log("drawing: " + Db.Filename);
var bt = (BlockTable)Tx.GetObject(Db.BlockTableId, OpenMode.ForRead);

foreach (ObjectId btrId in bt) {
    var rec = (BlockTableRecord)Tx.GetObject(btrId, OpenMode.ForRead);
    string where = rec.Name;
    if (rec.IsLayout) { var l = (Layout)Tx.GetObject(rec.LayoutId, OpenMode.ForRead); where = "LAYOUT " + l.LayoutName; }

    // does this space hold the store plan? look for the tell-tale words
    bool store = false;
    foreach (ObjectId id in rec) {
        var ent = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
        if (ent == null) continue;
        string t = null;
        var d0 = ent as DBText; if (d0 != null) t = d0.TextString;
        var m0 = ent as MText;  if (m0 != null) t = m0.Contents;
        if (t == null) continue;
        string u = t.ToUpper();
        if (u.Contains("GAMEROOM") || u.Contains("CHECKOUT") || u.Contains("FROZEN FOOD") || u.Contains("SELLING AREA")) { store = true; break; }
    }
    if (!store) continue;

    Log("");
    Log("############ SPACE: " + where + " ############");
    Log("--- TEXT ---");
    foreach (ObjectId id in rec) {
        var ent = Tx.GetObject(id, OpenMode.ForRead) as Autodesk.AutoCAD.DatabaseServices.Entity;
        if (ent == null) continue;
        string txt = null; double x=0,y=0,h=0; double rot=0;
        var dt = ent as DBText; if (dt != null) { txt=dt.TextString; x=dt.Position.X; y=dt.Position.Y; h=dt.Height; rot=dt.Rotation; }
        var mt = ent as MText;  if (mt != null) { txt=mt.Contents;  x=mt.Location.X; y=mt.Location.Y; h=mt.TextHeight; rot=mt.Rotation; }
        if (txt == null) continue;
        Log(string.Format("[{0}] ({1:F2},{2:F2}) h={3:F2} rot={4:F0} layer={5,-16} \"{6}\"",
            ent.Handle, x, y, h, rot*180.0/Math.PI, ent.Layer, txt.Replace("\n"," / ")));
    }

    Log("--- CLOSED SHAPES (measured) ---");
    foreach (ObjectId id in rec) {
        var pl = Tx.GetObject(id, OpenMode.ForRead) as Polyline;
        if (pl == null) continue;
        var e = pl.GeometricExtents;
        double w = e.MaxPoint.X-e.MinPoint.X, hh = e.MaxPoint.Y-e.MinPoint.Y;
        Log(string.Format("[{0}] layer={1,-16} verts={2,2} closed={3,-5} per={4:F2} AREA={5:F2}  bbox {6:F2} x {7:F2} at ({8:F2},{9:F2})",
            pl.Handle, pl.Layer, pl.NumberOfVertices, pl.Closed, pl.Length, pl.Area, w, hh, e.MinPoint.X, e.MinPoint.Y));
    }
    Log("--- DIMENSIONS ---");
    foreach (ObjectId id in rec) {
        var dim = Tx.GetObject(id, OpenMode.ForRead) as Dimension;
        if (dim == null) continue;
        Log(string.Format("[{0}] {1,-20} meas={2:F3} text=\"{3}\" layer={4}",
            dim.Handle, dim.GetType().Name, dim.Measurement, dim.DimensionText, dim.Layer));
    }
}

Result

Status
success
Drawing file
C:\Users\sanja\OneDrive\_SurveyDisco\260610 - 6736 Tara Blvd, Jonesboro, GA 30236, USA\260610 - 6736 Tara Blvd R2.dwg
Message
Executed C3D-0299 (0 entities touched).
Entities
Duration
609 ms
Civil 3D
25.0.0.0

Log

drawing: C:\Users\sanja\OneDrive\_SurveyDisco\260610 - 6736 Tara Blvd, Jonesboro, GA 30236, USA\260610 - 6736 Tara Blvd R2.dwg

############ SPACE: LAYOUT Model ############
--- TEXT ---
[209A3] (2261084.07,1391831.69) h=0.60 rot=35 layer=TEXT             "Aisle"
[209A5] (2261075.66,1391831.61) h=0.60 rot=35 layer=TEXT             "Aisle"
[209C6] (2261084.44,1391808.32) h=0.60 rot=90 layer=TEXT             "locker"
[20F68] (2261079.98,1391825.96) h=0.60 rot=90 layer=TEXT             "Food"
[20F78] (2261081.31,1391839.16) h=0.60 rot=90 layer=TEXT             "Candy"
[20F80] (2261103.42,1391822.53) h=0.60 rot=90 layer=TEXT             "beer   freezer /             drinks"
[20F90] (2261078.77,1391842.44) h=0.60 rot=0 layer=TEXT             "chips"
[20F98] (2261070.78,1391842.53) h=0.60 rot=0 layer=TEXT             "chips"
[20FA0] (2261086.72,1391842.57) h=0.60 rot=0 layer=TEXT             "candy"
[20FAE] (2261089.41,1391839.19) h=0.60 rot=90 layer=TEXT             "drinks"
[20FB6] (2261089.46,1391826.96) h=0.60 rot=90 layer=TEXT             "wine"
[20FBE] (2261087.86,1391826.06) h=0.60 rot=90 layer=TEXT             "snacks"
[20FC6] (2261073.44,1391825.91) h=0.60 rot=90 layer=TEXT             "Food"
[20FD4] (2261071.97,1391825.95) h=0.60 rot=90 layer=TEXT             "HSE products"
[20FE2] (2261071.36,1391824.41) h=0.60 rot=0 layer=TEXT             "chips"
[20FEA] (2261079.52,1391824.39) h=0.60 rot=0 layer=TEXT             "fruit"
[20FF2] (2261087.38,1391824.32) h=0.60 rot=0 layer=TEXT             "chips"
[20FFA] (2261064.78,1391821.63) h=0.60 rot=90 layer=TEXT             "frozen food"
[21017] (2261063.60,1391848.08) h=0.60 rot=0 layer=TEXT             "cabnits ice cream"
[2101F] (2261067.02,1391850.33) h=0.60 rot=0 layer=TEXT             "checkout counters"
[21027] (2261071.33,1391808.48) h=0.60 rot=0 layer=TEXT             "elec room"
[2102F] (2261087.55,1391810.84) h=0.60 rot=0 layer=TEXT             "gameroom"
[21037] (2261097.52,1391809.90) h=0.60 rot=0 layer=TEXT             "bathroom"
[2103F] (2261080.30,1391808.12) h=0.60 rot=0 layer=TEXT             "exit"
[21047] (2261094.62,1391855.65) h=0.60 rot=0 layer=TEXT             "entrance"
[21054] (2261063.66,1391837.97) h=0.60 rot=90 layer=TEXT             "t-shirts"
[21AF9] (2261101.79,1391856.07) h=0.60 rot=0 layer=TEXT             "ice"
--- CLOSED SHAPES (measured) ---
[21B0C] layer=SHELV-TEST       verts=11 closed=True  per=159.01 AREA=1476.30  bbox 40.90 x 41.50 at (2261062.93,1391815.69)
--- DIMENSIONS ---
[20E2A] RotatedDimension     meas=19.500 text="" layer=00_WORK
[21137] RotatedDimension     meas=40.900 text="" layer=WALL
[21151] RotatedDimension     meas=49.500 text="" layer=WALL
[211B9] RotatedDimension     meas=13.000 text="" layer=WALL
[211D3] RotatedDimension     meas=12.500 text="" layer=WALL
[211ED] RotatedDimension     meas=20.500 text="" layer=WALL

############ SPACE: LAYOUT 11X17 ############
--- TEXT ---
[157FA] (20.25,13.45) h=0.08 rot=90 layer=BLOCK_NORTH_ARROW "GA W.GRID"
[158D1] (17.49,5.41) h=0.05 rot=0 layer=BLOCK_NOTES_FLOOD "FLOOD NOTE:\PTHIS PROPERTY IS NOT IN AN AREA HAVING SPECIAL FLOOD AS PER COMMUNITY PANEL NO. 13135C0016G, DATED FEB 4TH 2013."
[158E6] (9.21,0.99) h=0.07 rot=315 layer=BLOCK_STAMP      "A"
[158E7] (9.21,0.99) h=0.07 rot=315 layer=BLOCK_STAMP      "A"
[158E8] (9.26,0.94) h=0.07 rot=324 layer=BLOCK_STAMP      "N"
[158E9] (9.26,0.94) h=0.07 rot=324 layer=BLOCK_STAMP      "N"
[158EA] (9.91,0.94) h=0.07 rot=45 layer=BLOCK_STAMP      "O"
[158EB] (9.91,0.94) h=0.07 rot=45 layer=BLOCK_STAMP      "O"
[158EC] (9.77,0.86) h=0.07 rot=27 layer=BLOCK_STAMP      "E"
[158ED] (9.77,0.86) h=0.07 rot=27 layer=BLOCK_STAMP      "E"
[158EE] (9.03,0.92) h=0.10 rot=306 layer=BLOCK_STAMP      "G."
[158EF] (9.47,0.83) h=0.07 rot=351 layer=BLOCK_STAMP      "S"
[158F0] (9.47,0.83) h=0.07 rot=351 layer=BLOCK_STAMP      "S"
[158F1] (9.32,0.89) h=0.07 rot=333 layer=BLOCK_STAMP      "D"
[158F2] (9.32,0.89) h=0.07 rot=333 layer=BLOCK_STAMP      "D"
[158F3] (9.41,0.66) h=0.10 rot=343 layer=BLOCK_STAMP      "A"
[158F4] (9.30,0.70) h=0.10 rot=332 layer=BLOCK_STAMP      "S"
[158F5] (9.17,0.78) h=0.10 rot=323 layer=BLOCK_STAMP      "L."
[158F6] (9.54,0.82) h=0.07 rot=0 layer=BLOCK_STAMP      "U"
[158F7] (9.62,0.82) h=0.07 rot=9 layer=BLOCK_STAMP      "R"
[158F8] (9.62,0.82) h=0.07 rot=9 layer=BLOCK_STAMP      "R"
[158F9] (9.54,0.82) h=0.07 rot=0 layer=BLOCK_STAMP      "U"
[158FA] (9.70,0.83) h=0.07 rot=18 layer=BLOCK_STAMP      "V"
[158FB] (9.70,0.83) h=0.07 rot=18 layer=BLOCK_STAMP      "V"
[158FC] (9.71,0.64) h=0.10 rot=11 layer=BLOCK_STAMP      "H"
[158FD] (9.54,0.63) h=0.10 rot=358 layer=BLOCK_STAMP      "W"
[158FE] (10.07,0.83) h=0.10 rot=46 layer=BLOCK_STAMP      "Y"
[158FF] (9.97,0.76) h=0.10 rot=36 layer=BLOCK_STAMP      "E"
[15900] (9.84,0.89) h=0.07 rot=36 layer=BLOCK_STAMP      "Y"
[15901] (9.84,0.89) h=0.07 rot=36 layer=BLOCK_STAMP      "Y"
[15902] (9.85,0.69) h=0.10 rot=24 layer=BLOCK_STAMP      "N"
[15904] (9.77,1.71) h=0.07 rot=330 layer=BLOCK_STAMP      "E"
[15905] (9.21,1.29) h=0.07 rot=0 layer=BLOCK_STAMP      "PROFESSIONAL"
[15906] (9.21,1.29) h=0.07 rot=0 layer=BLOCK_STAMP      "PROFESSIONAL"
[15907] (9.21,1.29) h=0.07 rot=0 layer=BLOCK_STAMP      "PROFESSIONAL"
[15908] (9.21,1.29) h=0.07 rot=0 layer=BLOCK_STAMP      "PROFESSIONAL"
[15909] (9.21,1.29) h=0.07 rot=0 layer=BLOCK_STAMP      "PROFESSIONAL"
[1590A] (9.36,1.42) h=0.07 rot=0 layer=BLOCK_STAMP      "No. 2547"
[1590B] (9.16,1.06) h=0.07 rot=306 layer=BLOCK_STAMP      "L"
[1590C] (9.16,1.05) h=0.07 rot=306 layer=BLOCK_STAMP      "L"
[1590D] (9.15,1.70) h=0.10 rot=43 layer=BLOCK_STAMP      "G"
[15912] (9.31,1.66) h=0.07 rot=33 layer=BLOCK_STAMP      "E"
[15913] (9.37,1.70) h=0.07 rot=24 layer=BLOCK_STAMP      "G"
[15914] (9.70,1.73) h=0.07 rot=339 layer=BLOCK_STAMP      "R"
[15915] (9.26,1.61) h=0.07 rot=42 layer=BLOCK_STAMP      "R"
[15916] (9.26,1.80) h=0.10 rot=29 layer=BLOCK_STAMP      "E"
[15917] (9.46,1.73) h=0.07 rot=24 layer=BLOCK_STAMP      "I"
[15918] (9.39,1.86) h=0.10 rot=14 layer=BLOCK_STAMP      "O"
[15919] (9.64,1.75) h=0.07 rot=348 layer=BLOCK_STAMP      "E"
[1591A] (9.50,1.74) h=0.07 rot=6 layer=BLOCK_STAMP      "S"
[1591B] (9.57,1.75) h=0.07 rot=357 layer=BLOCK_STAMP      "T"
[1591C] (9.53,1.89) h=0.10 rot=0 layer=BLOCK_STAMP      "R"
[1591D] (9.68,1.89) h=0.10 rot=346 layer=BLOCK_STAMP      "G"
[1591E] (9.96,0.99) h=0.07 rot=54 layer=BLOCK_STAMP      "R"
[1591F] (9.96,0.99) h=0.07 rot=54 layer=BLOCK_STAMP      "R"
[15920] (9.83,1.68) h=0.07 rot=321 layer=BLOCK_STAMP      "D"
[15921] (9.94,1.77) h=0.10 rot=317 layer=BLOCK_STAMP      "A"
[15922] (9.84,1.83) h=0.10 rot=331 layer=BLOCK_STAMP      "I"
[1592B] (17.50,7.43) h=0.06 rot=0 layer=BLOCK_NOTES_FLOOD "NOTE: PROPERTY LINES SHOWN ON THIS SURVEY/PLAT  REPRESENT PHYSICAL FIELD CONDITIONS BY EVIDENCE OF APPARENT POSSESSION (IRON PINS FOUND, OLD & ESTABLISHED FENCE LINES, OLD WALL LINES, SHRUB & HEDGE LINE, HOUSE LOCATIONS, ETC.) THEY MAY DIFFER AND BE IN CONTENTION FROM EVIDENCE FOUND AT THE APPLICABLE COUNTY COURTHOUSE. THEY MAY ALSO DIFFER FROM OTHER SURVEYOR OPINIONS  AND/OR NEIGHBORS SURVEYS/PLATS. A FULL LAND TITLE REPORT OPINION ON ALL PROPERTIES, INCLUDING ADJACENT AND CONTIGUOUS PROPERTIES MAY BE NEEDED TO RESOLVE ALL POSSIBLE PROPERTY LINE DISPUTES OR DISCREPANCIES.\P\PTHIS SURVEY WAS MADE WITHOUT THE BENEFIT OF A CURRENT TITLE COMMITMENT. EASEMENTS AND ENCUMBRANCES MAY EXIST WHICH BENEFIT AND BURDEN THIS PROPERTY. THIS SURVEY IS SUBJECT TO REVISIONS AND UPDATE UPON RECEIPT OF SAID TITLE COMMITMENT."
[1660E] (18.03,4.11) h=0.06 rot=0 layer=BLOCK_CLOSURE    "Call FREE"
[1660F] (18.03,3.92) h=0.06 rot=0 layer=BLOCK_CLOSURE    "325-5000"
[16610] (17.48,4.21) h=0.08 rot=0 layer=BLOCK_CLOSURE    "UTILITIES PROTECTION CENTER"
[16611] (18.02,3.78) h=0.06 rot=0 layer=BLOCK_CLOSURE    "THROUGHOUT GEORGIA"
[16612] (18.03,4.01) h=0.06 rot=0 layer=BLOCK_CLOSURE    "IN METRO ATLANTA"
[16613] (18.02,3.69) h=0.06 rot=0 layer=BLOCK_CLOSURE    "1-800-282-7411"
[16614] (17.51,3.55) h=0.06 rot=0 layer=BLOCK_CLOSURE    "THREE WORKING DAYS BEFORE YOU DIG"
[1664C] (17.49,5.04) h=0.08 rot=0 layer=BLOCK_CLOSURE    "FIELD CLOSURE=1'IN 20,000+ \PANGLE POINT ERROR=< 03" \PEQUIPMENT USED=GPS/TOTAL STATION \PADJUSTMENT METHOD=COMPASS RULE\PPLAT CLOSURE=1'IN 100,000+"
[21991] (11.34,5.94) h=0.10 rot=0 layer=WALL             "Fresh Fruits & Vegetables 0.00%\PFresh Uncooked Meats, seafood, poultry 0.00%\PDairy Products 0.00%\PCanned Foods 0.00%\PFrozen Foods 0.00%\PDry groceries and baked goods 0.00%\PNon-Alcoholic beverages 1.8%  36.5 SQFT"
[21B1E] (2.95,8.60) h=0.10 rot=0 layer=WALL             "SELLING AREA 1476 SQFT"
--- CLOSED SHAPES (measured) ---
[15927] layer=BLOCK_STAMP      verts=21 closed=False per=1.05 AREA=0.02  bbox 0.20 x 0.31 at (8.73,1.09)
[15928] layer=BLOCK_STAMP      verts=15 closed=False per=0.52 AREA=0.01  bbox 0.14 x 0.25 at (8.96,1.14)
[15929] layer=BLOCK_STAMP      verts=16 closed=False per=0.69 AREA=0.01  bbox 0.12 x 0.21 at (9.15,1.13)
[1592A] layer=BLOCK_STAMP      verts=93 closed=False per=2.55 AREA=0.01  bbox 0.86 x 0.24 at (9.30,1.03)
[16618] layer=BLOCK_CLOSURE    verts= 2 closed=True  per=0.04 AREA=0.00  bbox 0.01 x 0.01 at (17.77,3.87)
[16619] layer=BLOCK_CLOSURE    verts= 4 closed=False per=0.32 AREA=0.00  bbox 0.01 x 0.16 at (17.77,3.88)
[1664A] layer=BLOCK_CLOSURE    verts=25 closed=False per=0.34 AREA=0.01  bbox 0.31 x 0.08 at (17.57,3.87)
[1664B] layer=BLOCK_CLOSURE    verts= 2 closed=True  per=1.29 AREA=0.13  bbox 0.41 x 0.41 at (17.49,3.71)
[16FAE] layer=SS-BOUNDARY CYAN verts= 4 closed=True  per=0.93 AREA=0.05  bbox 0.17 x 0.29 at (10.83,-0.00)
--- DIMENSIONS ---

Notes

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

No notes yet.