Code from SampleCode.cs. See SampleCode.vb for VB.NET samples.
using (var db = AcadDatabase.Active())
{
db.ModelSpace
.Clear();
}
using (var db = AcadDatabase.Active())
{
foreach (var br in db.ModelSpace
.OfType<BlockReference>()
.UpgradeOpen())
{
br.Erase();
}
}
using (var db = AcadDatabase.Active())
{
db.ModelSpace
.Add(new Line(Point3d.Origin,
new Point3d(100, 100, 0)));
}
var layerName = GetString("Enter layer name");
var colorName = GetString("Enter color name");
using (var db = AcadDatabase.Active())
{
var layer = db.Layers.Create(layerName);
layer.Color = Color.FromColor(System.Drawing.Color.FromName(colorName));
}
WriteMessage($"Layer {layerName} created");
using (var db = AcadDatabase.Active())
{
foreach (var layer in db.Layers)
{
WriteMessage(layer.Name);
}
}
var layerName = GetString("Enter layer name");
using (var db = AcadDatabase.Active())
{
var layerToIgnore = db.Layers.Element(layerName);
foreach (var layer in db.Layers
.Except(layerToIgnore)
.UpgradeOpen())
{
layer.IsOff = true;
}
}
WriteMessage($"All layers turned off, except {layerName}");
var layerName = GetString("Enter layer name");
using (var db = AcadDatabase.Active())
{
var lines = db.ModelSpace
.OfType<Line>()
.Where(l => l.Color.ColorValue.Name == "ffff0000");
db.Layers.Create(layerName, lines);
}
WriteMessage($"All red lines moved to new layer {layerName}");
var sourceLayerName = GetString("Enter source layer name");
var targetLayerName = GetString("Enter target layer name");
using (var db = AcadDatabase.Active())
{
var entities = db.ModelSpace
.Where(e => e.Layer == sourceLayerName);
db.Layers
.Element(targetLayerName)
.AddRange(entities);
}
WriteMessage($"All entities on layer {sourceLayerName} moved to layer {targetLayerName}");
var filePath = GetString("Enter file path");
var blockName = GetString("Enter block name");
using (var sourceDb = AcadDatabase.OpenReadOnly(filePath))
using (var targetDb = AcadDatabase.Active())
{
var block = sourceDb.Blocks.Element(blockName);
targetDb.Blocks.Import(block);
}
WriteMessage($"Block {blockName} imported");
var filePath = GetString("Enter file path");
using (var db = AcadDatabase.OpenReadOnly(filePath))
{
var count = db.ModelSpace
.OfType<BlockReference>()
.Count();
WriteMessage($"Model space block references in file {filePath}: {count}");
}
var entityId = GetEntity("Pick an Entity");
var key = GetString("Enter key");
var str = GetString("Enter string to save");
using (var db = AcadDatabase.Active())
{
db.CurrentSpace
.Element(entityId)
.SaveData(key, str);
}
WriteMessage($"Key-value-pair {key}:{str} saved on Entity");
var entityId = GetEntity("Pick an Entity");
var key = GetString("Enter key");
using (var db = AcadDatabase.Active())
{
var str = db.CurrentSpace
.Element(entityId)
.GetData<string>(key);
WriteMessage($"String {str} read from Entity");
}
var entityId = GetEntity("Pick an Entity");
var key = GetString("Enter RegApp name");
using (var db = AcadDatabase.Active())
{
var str = db.CurrentSpace
.Element(entityId)
.GetData<string>(key, true);
WriteMessage($"String {str} read from Entity's XData");
}
using (var db = AcadDatabase.Active())
{
var count = db.PaperSpace
.SelectMany(ps => ps)
.Count();
WriteMessage($"{count} entities in all paper space layouts");
}
using (var db = AcadDatabase.Active())
{
db.SummaryInfo.Author = "John Doe";
db.SummaryInfo.CustomProperties["CustomData1"] = "42";
}
using (var db = AcadDatabase.Active())
{
foreach (var xRef in db.XRefs
.Where(xr => xr.IsLoaded))
{
xRef.Reload();
}
}