Je nutné definovat novou třídu odvozenou z AecSpaceOffsetStandard. Tato třída bude rámcem spravujícím jednotlivá pravidla a vstupním bodem, který aplikace Sada nástrojů AutoCAD Architecture 2025 volá při zavádění a používání standardu.
using System;
using System.Collections.Generic;
using System.Text;
namespace AecSpaceOffsetStandardSample
{
public class Class1
{
}
}
Přidejte svou třídu standardu odvozenou z abstraktní základní třídy 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()
{
}
}
}
Metoda AecSpaceOffsetStandard.SetName() je implementována v základní třídě a nelze ji přepsat. Je třeba ji zavolat za účelem registrace názvu pro standard v konstruktoru třídy. Jedná se o název, který se zobrazí v seznamu dostupných standardů výpočtu plochy v aplikaci Sada nástrojů AutoCAD Architecture 2025.
Následující příklad ukazuje volání pro vzorový projekt AecSpaceOffsetStandardSample, který se registruje v softwaru jako základní standard výpočtu plochy.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard
{
public AecSpaceOffsetStandardSample ()
{
SetName("Basic");
}
}

public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard
{
public AecSpaceOffsetStandardSample ()
{
SetName("Basic");
} protected override void InitRules() {
// register rules
}
}
Každé z volání vrátí referenci do objektu třídy Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetRuleCollection, která vystaví funkce za účelem registrace různých typů pravidel. Tyto objekty spravuje a používá aplikace Sada nástrojů AutoCAD Architecture 2025. Následující příklad ukazuje, jak registrovat pravidla se 3 různými typy odsazení:
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...
}
}