Sie müssen eine von AecSpaceOffsetStandard abgeleitete neue Klasse definieren. Diese Klasse bildet den Rahmen, in dem die einzelnen Regeln verwaltet werden, und den Einstiegspunkt, den AutoCAD Architecture 2024-Toolset beim Laden und Anwenden des Standards aufruft.
using System; using System.Collections.Generic; using System.Text; namespace AecSpaceOffsetStandardSample {public class Class1 { }}
Fügen Sie die von der abstrakten Basisklasse Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetStandard abgeleitete Standardklasse hinzu.
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() { }}
Die Methode AecSpaceOffsetStandard.SetName() ist in der Basisklasse implementiert und kann nicht überschrieben werden. Sie muss zur Registrierung eines Namens für den Standard im Konstruktor der Klasse aufgerufen werden. Es handelt sich dabei um den Namen, der in der Liste der verfügbaren Flächenberechnungsstandards in AutoCAD Architecture 2024-Toolset angezeigt wird.
Das folgende Beispiel zeigt den Aufruf für das Beispielprojekt AecSpaceOffsetStandardSample, das sich selbst in der Software als Basis-Flächenberechnungsstandard registriert.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// register rules}
Jeder dieser Aufrufe gibt einen Verweis auf ein Objekt der Klasse Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetRuleCollection zurück, die Funktionen zur Registrierung der verschiedenen Regeltypen aufweist. Diese Objekte werden beibehalten und von AutoCAD Architecture 2024-Toolset verwendet. Folgende Beispiele zeigen, wie Regeln mit den drei Versatztypen registriert werden:
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...}