(classe de base SpaceOffsetRulesManager.AecSpaceRule)
Une règle d'espace est appliquée à l'ensemble de l'espace, contrairement aux autres types de règles, plus spécifiques. Les règles d'espace constituent le seul type de règle de décalage enregistrable une seule fois pour chaque norme (une fois pour chaque type de décalage : net, utilisable et brut).
Pour implémenter une règle d'espace, ajoutez une classe dérivée de la classe de base SpaceOffsetRulesManager.AecSpaceRule. La nouvelle classe doit implémenter l'interface Apply de la classe de base. Il n'est pas nécessaire qu'elle appelle la méthode AecSpaceOffsetRuleBase.RegisterType() de la classe de base, car elle s'applique systématiquement aux objets espace. La syntaxe de la méthode Apply, requise dans toute règle, est la suivante pour la classe AecSpaceRule :
public abstract bool Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace);)
La valeur booléenne renvoyée détermine si l'espace possède un contour de décalage correct. Cela permet de désactiver les contours d'un certain type de décalage. L'exemple suivant illustre le cadre d'une nouvelle classe de règle d'espace.
namespace AecSpaceOffsetStandardSample {public class SpaceRule: AecSpaceRule {}public SpaceRule() { } public override bool Apply(ObjectId idSpace) { // return false to switch boundary off }}
Généralement, les norme de calcul d'aire incluent les décalages net et brut, mais pas le décalage utilisable. Pour définir une telle configuration, implémentez une règle d'espace dérivée de AecSpaceRule qui renvoie systématiquement la valeur False lors de l'implémentation de la méthode Apply. Enregistrez une instance de cette règle avec le décalage utilisable lors de l'implémentation des normes de AecSpaceOffsetStandard.InitRules().
Une règle d'espace plus complexe pourrait spécifier que tous les espaces dotés d'une aire inférieure à une certaine valeur sont incompatibles avec un certain type de décalage. Dans l'exemple suivant, une règle d'espace rendant tous les espaces incorrects est intégrée à l'exemple de projet. cette règle est employée par la norme de l'exemple pour désactiver le contour utilisable :
namespace AecSpaceOffsetStandardSample {public class NullSpace: AecSpaceRule {}public SpaceRuleNet() { } public override bool Apply(ObjectId idSpace) { return false; }}