(Clase base SpaceOffsetRulesManager.AecSpaceRule)
Una regla de espacio se aplica al espacio completo, a diferencia de los otros tipos de regla que son más específicos. Las reglas de espacio son el único tipo de reglas de desfase que sólo se pueden registrar una vez para cada norma (una vez para cada uno de los tipos de desfase: neto, utilizable y bruto).
Para implementar una regla de espacio, es necesario añadir una nueva clase derivada de la clase base SpaceOffsetRulesManager.AecSpaceRule. La nueva clase debe implementar la interfaz Apply de la clase base. No es necesario invocar el método AecSpaceOffsetRuleBase.RegisterType() de la clase base, ya que siempre se aplica a objetos de espacio. El método Apply que cada clase debe implementar tiene la siguiente sintaxis para la clase AecSpaceRule:
public abstract bool Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace);)
El valor de respuesta booleano determina si el espacio tiene un contorno de desfase válido. En caso afirmativo, puede usarse para desactivar todos los contornos de un tipo de desfase específico. En el siguiente ejemplo se muestra la estructura para una clase de regla de espacio nueva:
namespace AecSpaceOffsetStandardSample {public class SpaceRule: AecSpaceRule {}public SpaceRule() { } public override bool Apply(ObjectId idSpace) { // return false to switch boundary off }}
Un caso común en el que se utiliza es cuando una norma de cálculo de área sólo incluye los desfases neto y bruto y no el utilizable. Para ello, puede implementar una regla de espacio derivada de AecSpaceRule que siempre responda con False en la implementación del método Apply. Registre un ejemplar de dicha regla con el desfase utilizable en la implementación estándar de AecSpaceOffsetStandard.InitRules().
Una regla de espacio más compleja podría definir que todos los espacios con un área más pequeña que un valor predefinido no contribuyen a un tipo de desfase específico. El siguiente ejemplo muestra la regla de espacio que forma parte del proyecto de muestra y que invalidará todos los espacios. Se utiliza dentro de la norma de muestra para desactivar el contorno utilizable:
namespace AecSpaceOffsetStandardSample {public class NullSpace: AecSpaceRule {}public SpaceRuleNet() { } public override bool Apply(ObjectId idSpace) { return false; }}