/// Represents an instance of a block definition inserted into the drawing.
/// It specifies the block to insert, its position, rotation, scale, and
/// any attribute values specific to this instance.
public class BlockReference : Element
{
// Constructors
public BlockReference() { }
public BlockReference(
string blockName,
Vector3 insertionPoint,
float rotation = 0f,
Vector3? scale = null,
Dictionary<string, string> attributes = null) { }
// Important Properties
public string BlockName { get; set; } // Name of the referenced BlockDefinition.
public Vector3 InsertionPoint { get; set; } // Insertion point [X, Y, Z].
public float Rotation { get; set; } // Rotation in radians (around Z).
public Vector3 Scale { get; set; } // Scale factors (must be positive).
public Dictionary<string, string> Attributes { get; set; } // Attribute values for this instance.
// Other Accessible Properties
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.
}