C3D-SCALEREAD · Read annotation scale list (read-only) done
Enumerate current scales via ObjectContextManager to confirm API before replacing.
C# payload
// READ-ONLY: enumerate the drawing's annotation scale list via the ObjectContextManager.
using System;
using Autodesk.AutoCAD.DatabaseServices;
var db = Db;
var ocm = db.ObjectContextManager;
var coll = ocm.GetContextCollection("ACDB_ANNOTATIONSCALES");
if (coll == null) { Log("no ACDB_ANNOTATIONSCALES collection"); return; }
Log("CURRENT SCALES:");
int n=0;
foreach (ObjectContext oc in coll)
{
var sc = oc as Autodesk.AutoCAD.DatabaseServices.AnnotationScale;
if (sc != null) Log($" '{sc.Name}' paper={sc.PaperUnits} drawing={sc.DrawingUnits} factor={sc.Scale}");
else Log($" '{oc.Name}'");
n++;
}
Log($"total scales: {n}");
Log($"current CANNOSCALE: {db.Cannoscale?.Name}");
Result
Log
CURRENT SCALES: '1" = 1'' paper=1 drawing=1 factor=1 '1:1' paper=1 drawing=1 factor=1 '1/128" = 1'-0"' paper=0.0078125 drawing=12 factor=0.0006510416666666666 '1/64" = 1'-0"' paper=0.015625 drawing=12 factor=0.0013020833333333333 '1/32" = 1'-0"' paper=0.03125 drawing=12 factor=0.0026041666666666665 '1/16" = 1'-0"' paper=0.0625 drawing=12 factor=0.005208333333333333 '3/32" = 1'-0"' paper=0.09375 drawing=12 factor=0.0078125 '1/8" = 1'-0"' paper=0.125 drawing=12 factor=0.010416666666666666 '3/16" = 1'-0"' paper=0.1875 drawing=12 factor=0.015625 '1/4" = 1'-0"' paper=0.25 drawing=12 factor=0.020833333333333332 '3/8" = 1'-0"' paper=0.375 drawing=12 factor=0.03125 '1/2" = 1'-0"' paper=0.5 drawing=12 factor=0.041666666666666664 '3/4" = 1'-0"' paper=0.75 drawing=12 factor=0.0625 '1" = 1'-0"' paper=1 drawing=12 factor=0.08333333333333333 '1-1/2" = 1'-0"' paper=1.5 drawing=12 factor=0.125 '3" = 1'-0"' paper=3 drawing=12 factor=0.25 '6" = 1'-0"' paper=6 drawing=12 factor=0.5 '1'-0" = 1'-0"' paper=12 drawing=12 factor=1 total scales: 18 current CANNOSCALE: 1/4" = 1'-0"
Notes
What worked, what didn't, job-specific gotchas — flagged notes feed the recipes.
No notes yet.