The build #0.7.5.0 of AutoCAD .Net Addin Wizard (AcadNetAddinWizard) has been rolled out and provided a few new features. The Overruler item wizard is one of them.

The following wizard pages will show up one after another after the Add button is pressed.




If the Overruler settings are set as above, all AutoCAD overrules will be created automatically and accordingly for our Centerline Circle. Here is what the Solution Explorer looks like.

The auto-generated various overrules for centerline-circle will look like follows. Most namespaces are skipped for brevity purpose.
CenterlineCircle.cs
using System;
using System.Text;
using System.Linq;
using System.Xml;
using System.Reflection;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Forms;
using System.IO;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Windows;
using MgdAcApplication = Autodesk.AutoCAD.ApplicationServices.Application;
using MgdAcDocument = Autodesk.AutoCAD.ApplicationServices.Document;
using AcWindowsNS = Autodesk.AutoCAD.Windows;
namespace OverrulesTest
{
public class CenterlineCircle
{
public void Register()
{
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_DimensionStyleOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_PropertiesOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_OsnapOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_TransformOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_GripOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_SubentityOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_HighlightOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_HighlightStateOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_VisibilityOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_GeometryOverrule.Instance, true);
Overrule.AddOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_ObjectOverrule.Instance, true);
}
public void UnRegister()
{
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_DimensionStyleOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_PropertiesOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_OsnapOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_TransformOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_GripOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_SubentityOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_HighlightOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_HighlightStateOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_VisibilityOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_GeometryOverrule.Instance);
Overrule.RemoveOverrule(RXClass.GetClass(typeof(Circle)), CenterlineCircle_ObjectOverrule.Instance);
}
}
}
CenterlineCircle_DimensionStyleOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_DimensionStyleOverrule : DimensionStyleOverrule
{
protected CenterlineCircle_DimensionStyleOverrule()
{
}
protected static CenterlineCircle_DimensionStyleOverrule mInstance;
public static CenterlineCircle_DimensionStyleOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_DimensionStyleOverrule();
return mInstance;
}
}
public override Autodesk.AutoCAD.DatabaseServices.ObjectId DimensionStyle(Autodesk.AutoCAD.DatabaseServices.Dimension dimension)
{
return default(Autodesk.AutoCAD.DatabaseServices.ObjectId);
}
public override void GetDimstyleData(Autodesk.AutoCAD.DatabaseServices.Dimension dimension, Autodesk.AutoCAD.DatabaseServices.DimStyleTableRecord style)
{
}
public override void SetDimensionStyle(Autodesk.AutoCAD.DatabaseServices.Dimension dimension, Autodesk.AutoCAD.DatabaseServices.ObjectId id)
{
}
public override void SetDimstyleData(Autodesk.AutoCAD.DatabaseServices.Dimension dimension, Autodesk.AutoCAD.DatabaseServices.DimStyleTableRecord style)
{
}
public override void SetDimstyleData(Autodesk.AutoCAD.DatabaseServices.Dimension dimension, Autodesk.AutoCAD.DatabaseServices.ObjectId dimstyleId)
{
}
}
}
CenterlineCircle_GeometryOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_GeometryOverrule : GeometryOverrule
{
protected CenterlineCircle_GeometryOverrule()
{
}
protected static CenterlineCircle_GeometryOverrule mInstance;
public static CenterlineCircle_GeometryOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_GeometryOverrule();
return mInstance;
}
}
public override Autodesk.AutoCAD.DatabaseServices.Extents3d GetGeomExtents(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(Autodesk.AutoCAD.DatabaseServices.Extents3d);
}
public override void IntersectWith(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.Entity ent, Autodesk.AutoCAD.DatabaseServices.Intersect intType, Autodesk.AutoCAD.Geometry.Point3dCollection points, System.IntPtr thisGsMarker, System.IntPtr otherGsMarker)
{
}
public override void IntersectWith(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.Entity ent, Autodesk.AutoCAD.DatabaseServices.Intersect intType, Autodesk.AutoCAD.Geometry.Plane projPlane, Autodesk.AutoCAD.Geometry.Point3dCollection points, System.IntPtr thisGsMarker, System.IntPtr otherGsMarker)
{
}
}
}
CenterlineCircle_GripOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_GripOverrule : GripOverrule
{
protected CenterlineCircle_GripOverrule()
{
}
protected static CenterlineCircle_GripOverrule mInstance;
public static CenterlineCircle_GripOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_GripOverrule();
return mInstance;
}
}
public override void GetGripPoints(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.Point3dCollection gripPoints, Autodesk.AutoCAD.Geometry.IntegerCollection snapModes, Autodesk.AutoCAD.Geometry.IntegerCollection geometryIds)
{
}
public override void GetGripPoints(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.GripDataCollection grips, double curViewUnitSize, int gripSize, Autodesk.AutoCAD.Geometry.Vector3d curViewDir, Autodesk.AutoCAD.DatabaseServices.GetGripPointsFlags bitFlags)
{
}
public override void GetStretchPoints(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.Point3dCollection stretchPoints)
{
}
public override void MoveGripPointsAt(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.IntegerCollection indices, Autodesk.AutoCAD.Geometry.Vector3d offset)
{
}
public override void MoveGripPointsAt(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.GripDataCollection grips, Autodesk.AutoCAD.Geometry.Vector3d offset, Autodesk.AutoCAD.DatabaseServices.MoveGripPointsFlags bitFlags)
{
}
public override void MoveStretchPointsAt(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.IntegerCollection indices, Autodesk.AutoCAD.Geometry.Vector3d offset)
{
}
public override void OnGripStatusChanged(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.GripStatus status)
{
}
}
}
CenterlineCircle_HighlightOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_HighlightOverrule : HighlightOverrule
{
protected CenterlineCircle_HighlightOverrule()
{
}
protected static CenterlineCircle_HighlightOverrule mInstance;
public static CenterlineCircle_HighlightOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_HighlightOverrule();
return mInstance;
}
}
public override void Highlight(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subId, bool highlightAll)
{
}
public override void Unhighlight(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subId, bool highlightAll)
{
}
}
}
CenterlineCircle_HighlightStateOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_HighlightStateOverrule : HighlightStateOverrule
{
protected CenterlineCircle_HighlightStateOverrule()
{
}
protected static CenterlineCircle_HighlightStateOverrule mInstance;
public static CenterlineCircle_HighlightStateOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_HighlightStateOverrule();
return mInstance;
}
}
public override Autodesk.AutoCAD.GraphicsInterface.HighlightStyle HighlightState(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subId)
{
return default(Autodesk.AutoCAD.GraphicsInterface.HighlightStyle);
}
public override void PopHighlight(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subId)
{
}
public override void PushHighlight(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subId, Autodesk.AutoCAD.GraphicsInterface.HighlightStyle highlightStyle)
{
}
}
}
CenterlineCircle_ObjectOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_ObjectOverrule : ObjectOverrule
{
protected CenterlineCircle_ObjectOverrule()
{
}
protected static CenterlineCircle_ObjectOverrule mInstance;
public static CenterlineCircle_ObjectOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_ObjectOverrule();
return mInstance;
}
}
public override void Cancel(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject)
{
}
public override void Close(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject)
{
}
public override Autodesk.AutoCAD.DatabaseServices.DBObject DeepClone(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject, Autodesk.AutoCAD.DatabaseServices.DBObject ownerObject, Autodesk.AutoCAD.DatabaseServices.IdMapping idMap, bool isPrimary)
{
return default(Autodesk.AutoCAD.DatabaseServices.DBObject);
}
public override void Erase(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject, bool erasing)
{
}
public override void Open(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject, Autodesk.AutoCAD.DatabaseServices.OpenMode mode)
{
}
public override Autodesk.AutoCAD.DatabaseServices.DBObject WblockClone(Autodesk.AutoCAD.DatabaseServices.DBObject dbObject, Autodesk.AutoCAD.Runtime.RXObject ownerObject, Autodesk.AutoCAD.DatabaseServices.IdMapping idMap, bool isPrimary)
{
return default(Autodesk.AutoCAD.DatabaseServices.DBObject);
}
}
}
CenterlineCircle_OsnapOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_OsnapOverrule : OsnapOverrule
{
protected CenterlineCircle_OsnapOverrule()
{
}
protected static CenterlineCircle_OsnapOverrule mInstance;
public static CenterlineCircle_OsnapOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_OsnapOverrule();
return mInstance;
}
}
public override void GetObjectSnapPoints(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.ObjectSnapModes snapMode, System.IntPtr gsSelectionMark, Autodesk.AutoCAD.Geometry.Point3d pickPoint, Autodesk.AutoCAD.Geometry.Point3d lastPoint, Autodesk.AutoCAD.Geometry.Matrix3d viewTransform, Autodesk.AutoCAD.Geometry.Point3dCollection snapPoints, Autodesk.AutoCAD.Geometry.IntegerCollection geometryIds)
{
}
public override void GetObjectSnapPoints(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.ObjectSnapModes snapMode, System.IntPtr gsSelectionMark, Autodesk.AutoCAD.Geometry.Point3d pickPoint, Autodesk.AutoCAD.Geometry.Point3d lastPoint, Autodesk.AutoCAD.Geometry.Matrix3d viewTransform, Autodesk.AutoCAD.Geometry.Point3dCollection snapPoints, Autodesk.AutoCAD.Geometry.IntegerCollection geometryIds, Autodesk.AutoCAD.Geometry.Matrix3d insertionMat)
{
}
public override bool IsContentSnappable(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(bool);
}
}
}
CenterlineCircle_PropertiesOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_PropertiesOverrule : PropertiesOverrule
{
protected CenterlineCircle_PropertiesOverrule()
{
}
protected static CenterlineCircle_PropertiesOverrule mInstance;
public static CenterlineCircle_PropertiesOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_PropertiesOverrule();
return mInstance;
}
}
public override System.Guid GetClassID(Autodesk.AutoCAD.DatabaseServices.DBObject entity)
{
return default(System.Guid);
}
public override void List(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
}
}
}
CenterlineCircle_SubentityOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_SubentityOverrule : SubentityOverrule
{
protected CenterlineCircle_SubentityOverrule()
{
}
protected static CenterlineCircle_SubentityOverrule mInstance;
public static CenterlineCircle_SubentityOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_SubentityOverrule();
return mInstance;
}
}
public override void AddSubentPaths(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[] paths)
{
}
public override void DeleteSubentPaths(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[] paths)
{
}
public override Autodesk.AutoCAD.Geometry.Matrix3d GetCompoundObjectTransform(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(Autodesk.AutoCAD.Geometry.Matrix3d);
}
public override void GetGripPointsAtSubentPath(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subPath, Autodesk.AutoCAD.DatabaseServices.GripDataCollection grips, double curViewUnitSize, int gripSize, Autodesk.AutoCAD.Geometry.Vector3d curViewDir, Autodesk.AutoCAD.DatabaseServices.GetGripPointsFlags bitFlags)
{
}
public override System.IntPtr[] GetGsMarkersAtSubentPath(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subPath)
{
return default(System.IntPtr[]);
}
public override System.Guid GetSubentClassId(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath path)
{
return default(System.Guid);
}
public override Autodesk.AutoCAD.DatabaseServices.Extents3d GetSubentPathGeomExtents(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath path)
{
return default(Autodesk.AutoCAD.DatabaseServices.Extents3d);
}
public override Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[] GetSubentPathsAtGsMarker(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.SubentityType type, System.IntPtr gsMark, Autodesk.AutoCAD.Geometry.Point3d pickPoint, Autodesk.AutoCAD.Geometry.Matrix3d viewXform, Autodesk.AutoCAD.DatabaseServices.ObjectId[] entAndInsertStack)
{
return default(Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[]);
}
public override void MoveGripPointsAtSubentPaths(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[] path, Autodesk.AutoCAD.DatabaseServices.GripDataCollection grips, Autodesk.AutoCAD.Geometry.Vector3d offset, Autodesk.AutoCAD.DatabaseServices.MoveGripPointsFlags bitFlags)
{
}
public override void OnSubentGripStatusChanged(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.GripStatus status, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath subentity)
{
}
public override Autodesk.AutoCAD.DatabaseServices.Entity SubentPtr(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath id)
{
return default(Autodesk.AutoCAD.DatabaseServices.Entity);
}
public override void TransformSubentPathsBy(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.FullSubentityPath[] paths, Autodesk.AutoCAD.Geometry.Matrix3d xform)
{
}
}
}
CenterlineCircle_TransformOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_TransformOverrule : TransformOverrule
{
protected CenterlineCircle_TransformOverrule()
{
}
protected static CenterlineCircle_TransformOverrule mInstance;
public static CenterlineCircle_TransformOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_TransformOverrule();
return mInstance;
}
}
public override bool CloneMeForDragging(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(bool);
}
public override void Explode(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.DBObjectCollection entitySet)
{
}
public override Autodesk.AutoCAD.DatabaseServices.Entity GetTransformedCopy(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.Matrix3d transform)
{
return default(Autodesk.AutoCAD.DatabaseServices.Entity);
}
public override bool HideMeForDragging(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(bool);
}
public override void TransformBy(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.Geometry.Matrix3d transform)
{
}
}
}
CenterlineCircle_VisibilityOverrule.cs
namespace OverrulesTest
{
public class CenterlineCircle_VisibilityOverrule : VisibilityOverrule
{
protected CenterlineCircle_VisibilityOverrule()
{
}
protected static CenterlineCircle_VisibilityOverrule mInstance;
public static CenterlineCircle_VisibilityOverrule Instance
{
get
{
if (mInstance == null)
mInstance = new CenterlineCircle_VisibilityOverrule();
return mInstance;
}
}
public override void SetVisibility(Autodesk.AutoCAD.DatabaseServices.Entity entity, Autodesk.AutoCAD.DatabaseServices.Visibility newVal, bool doSubents)
{
}
public override Autodesk.AutoCAD.DatabaseServices.Visibility Visibility(Autodesk.AutoCAD.DatabaseServices.Entity entity)
{
return default(Autodesk.AutoCAD.DatabaseServices.Visibility);
}
}
}
The leading edge AutoCAD .NET Addin Wizard (AcadNetAddinWizard) provides various project wizards, item wizards, coders to help program AutoCAD .NET addins.
Recent Comments