Debe definir una clase nueva derivada de AecSpaceOffsetStandard. Esta clase será la estructura que administre las normas individuales y el punto de entrada al que llamará conjunto de herramientas de AutoCAD Architecture 2024 cuando se cargue y aplique la norma.
using System; using System.Collections.Generic; using System.Text; namespace AecSpaceOffsetStandardSample {public class Class1 { }}
Agregue la clase estándar derivada de la clase básica abstracta 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() { }}
El método AecSpaceOffsetStandard.SetName() se implementa en la clase básica y no se puede modificar. Es preciso llamarlo para registrar un nombre para la norma en el constructor de la clase. Se trata del nombre que aparecerá en la lista de normas de cálculo de área disponibles en conjunto de herramientas de AutoCAD Architecture 2024.
El ejemplo siguiente muestra la llamada del proyecto de ejemplo AecSpaceOffsetStandardSample, que se registra en el software como norma de cálculo de área básica.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// register rules}
Cada una de estas llamadas devuelve una referencia a un objeto de la clase Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetRuleCollection, que expone las funciones para registrar los distintos tipos de reglas. conjunto de herramientas de AutoCAD Architecture 2024 conserva y utiliza estos objetos. En el ejemplo siguiente se muestra cómo registrar reglas con los 3 tipos de desfase:
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...}