(classe base SpaceOffsetRulesManager.AecSpaceRule)
Una regola vano viene applicata all'intero vano a differenza degli altri tipi di regole, che sono più specifici. Le regole vano sono gli unici tipi di regole di offset che possono essere registrate una sola volta per ogni standard (una volta per ognuno dei tipi di offset netto, utilizzabile e lordo).
Per implementare una regola vano, è necessario aggiungere una nuova classe derivata dalla classe base SpaceOffsetRulesManager.AecSpaceRule. La nuova classe deve implementare l'interfaccia Apply della classe base. Non deve tuttavia richiamare il metodo AecSpaceOffsetRuleBase.RegisterType() della classe base poiché viene sempre applicato ad oggetti vano. Il metodo Apply che deve essere implementato da ogni regola presenta la sintassi seguente per la classe AecSpaceRule:
public abstract bool Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace);)
Il valore booleano restituito determina se il vano ha un offset contorno valido. Se il contorno offset è valido, può essere utilizzato per disattivare tutti i contorni di un determinato tipo di offset. Nel seguente esempio viene illustrato lo schema per una nuova classe di regola vano:
namespace AecSpaceOffsetStandardSample {public class SpaceRule: AecSpaceRule {}public SpaceRule() { } public override bool Apply(ObjectId idSpace) { // return false to switch boundary off }}
Questa regola viene spesso utilizzata quando uno standard di calcolo area include solo offset netti e lordi, ma non utilizzabili. Per ottenere tale risultato è necessaria l'implementazione di una regola vano derivata da AecSpaceRule che restituisce sempre False nell'implementazione del metodo Apply. Registrare un'istanza di tale regola per l'offset utilizzabile nell'implementazione degli standard AecSpaceOffsetStandard.InitRules().
Mediante una regola vano più complessa è possibile specificare che tutti i vani con un'area inferiore ad un determinato valore predefinito non rientrano in un determinato tipo di offset. Nell'esempio successivo viene descritta una regola vano che fa parte del progetto di esempio e che rende non validi tutti i vani. Viene utilizzata all'interno dello standard di esempio per disattivare il contorno utilizzabile:
namespace AecSpaceOffsetStandardSample {public class NullSpace: AecSpaceRule {}public SpaceRuleNet() { } public override bool Apply(ObjectId idSpace) { return false; }}