Vous devez définir une nouvelle classe AecSpaceOffsetStandard. Cette classe permet de gérer les règles individuelles et le point d'entrée auxquels AutoCAD Architecture 2024 toolset fait appel lors du chargement et de l'application de la norme.
using System; using System.Collections.Generic; using System.Text; namespace AecSpaceOffsetStandardSample {public class Class1 { }}
Ajoutez la classe de norme dérivée de la classe de base abstraite Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetStandard.
using Autodesk.Aec.SpaceOffsetRulesManager;
using System; using System.Collections.Generic; using System.Text; using Autodesk.Aec.SpaceOffsetRulesManager; namespace AecSpaceOffsetStandardSample {public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {}public AecSpaceOffsetStandardSample() { }}
La méthode AecSpaceOffsetStandard.SetName() est implémentée dans la classe de base et ne peut pas être supprimée. Elle doit être appelée afin d'enregistrer un nom pour la norme dans le constructeur de la classe. Ce nom s'affiche dans la liste des normes de calcul d'aire disponibles dans AutoCAD Architecture 2024 toolset.
L'exemple suivant illustre l'appel de l'exemple de projet AecSpaceOffsetStandardSample qui s'enregistre dans le programme en tant que norme de calcul d'aire de base.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// register rules}
Chacun de ces appels renvoie une référence à un objet de la classe Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetRuleCollection, qui présente les fonctions d'enregistrement des différents types de règles. Ces objets sont gérés et utilisés par AutoCAD Architecture 2024 toolset. Les exemples suivants expliquent comment enregistrer les règles à l'aide de chacun des types de décalages :
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// Register the rules with this standard, so the // offset calculation algorithm can call them // for the according boundary type NetRules().AppendBoundingOpeningRule(new BoundingOpeningRuleNet()); // no usable boundary UsableRules().SetSpaceRule(new NullSpace()); GrossRules().AppendBoundingObjectRule(new BoundingObjectRuleGross()); GrossRules().AppendBoundingAdjacencyRule(new BoundingAdjacencyRuleGross());}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}// set the name of the standard SetName("Basic");} // must be overriden protected override void InitRules() { } // can be overriden protected override void InitDatabase(Database* database) {// ...init database with classification definitions or zone styles, etc...}