/// Represents an attribute definition, which is a template for attributes
/// that can be attached to block references. It defines the tag, prompt,
/// default value, and display properties of an attribute.
/// Inherits properties like InsertionPoint, Height, Plane, Alignment etc. from Text.
public class AttributeDefinition : Text
{
// Constructors
public AttributeDefinition() { }
public AttributeDefinition(
Vector3 insertionPoint,
string tag,
string prompt,
string value,
float height,
Plane3D plane = null) { }
// Important Properties
public string Tag { get; set; } // Attribute tag (unique identifier).
public string Prompt { get; set; } // User prompt.
public string Value { get; set; } // Default value.
public bool Invisible { get; set; } // If true, attribute is invisible.
public bool Constant { get; set; } // If true, value is constant.
public bool Verify { get; set; } // If true, prompt for verification.
public bool Preset { get; set; } // If true, preset value without prompt.
// Other Accessible Properties (inherited from Text)
public Vector3 InsertionPoint { get; set; } // The main insertion point coordinates [X, Y, Z] in the world coordinate system.
public string TextString { get; set; } // The actual text content string.
public float Height { get; set; } // The height of the text characters.
public Plane3D Plane { get; set; } // The plane on which the text lies.
public TextAlignment Alignment { get; set; } // Specifies the horizontal and vertical alignment of the text.
public string StyleName { get; set; } // Optional name of the text style to apply.
public float WidthFactor { get; set; } // The width factor (horizontal scaling) applied to the text characters.
public float Rotation { get; set; } // Additional rotation angle in radians applied to the text.
public string LayerName { get; set; } // The name of the layer this element belongs to.
public string ColorARGB { get; set; } // Element color represented as an AARRGGBB hex string.
public PropertyMethod ColorMethod { get; set; } // Element color method.
public LineType? LineType { get; set; } // The line type for this element.
public float? LineTypeScale { get; set; } // The scale of the line type.
public PropertyMethod LineTypeMethod { get; set; } // Element line type method.
public float? LineWeight { get; set; } // The line weight for this element.
public PropertyMethod LineWeightMethod { get; set; } // Element lineWeight method.
public string MaterialName { get; set; } // The name of the material for this element.
public int? DisplayOrder { get; set; } // The element printing and displaying order.
public bool? IsVisible { get; set; } // The element visibility status.
}