(Basisklasse SpaceOffsetRulesManager.AecBoundingOpeningRule)
Eine Umgrenzungsöffnungs-Regel kann zur Definition eines Versatzes an den Öffnungen der Wände verwendet werden, die den Raum umgrenzen (beispielsweise Türen und Fenster). Beispielsweise kann das Nettoversatzprofil nicht definiert werden, indem nur ein Versatz zwischen dem Profil und den umgrenzenden Wänden festgelegt wird. Normalerweise befinden sich Öffnungen für Türen und Fenster in der Wand. Mit diesem Regeltyp kann dies in dem Versatzprofil beschrieben werden, das durch den Flächenberechnungsstandard berechnet wird.
Um eine Umgrenzungsöffnungs-Regel zu implementieren, müssen Sie eine neue aus SpaceOffsetRulesManager.AecBoundingOpeningRule abgeleitete Klasse hinzufügen. Die neue Klasse muss mindestens eine der Apply-Schnittstellen der Basisklasse implementieren und sich für die Objekttypen registrieren, für die sie im Konstruktor abgerufen werden soll, indem die Basismethode AecSpaceOffsetRuleBase.RegisterType() aufgerufen wird. Beachten Sie, dass diese Regel nur auf die folgenden Klassen angewendet werden kann:
Das Registrieren dieser Regel für andere Objekttypen führt zu keinem Ergebnis. Die Apply-Methode der Klasse, die von jeder Regel implementiert werden muss, hat folgende Syntax in AecBoundingOpeningRule:
public abstract AecSpaceOffsetOpeningInfo* Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace, Autodesk.AutoCAD.DatabaseServices.ObjectId idAdjSpace, Autodesk.AutoCAD.DatabaseServices.ObjectId idObject, Autodesk.AutoCAD.DatabaseServices.ObjectId idOpening);
Das erste Argument ist die ObjectId des aktuellen Raums, für den der Umgrenzungsversatz berechnet werden soll. Das zweite Argument ist die ObjectId des angrenzenden Raums. Gibt es keinen angrenzenden Raum, wie bei Außenwänden, beträgt der Wert dieses Arguments ObjectId.Null. Das dritte Argument ist die ObjectId des Objekts, mit dem die Öffnung verankert ist. Normalerweise ist dies eine Wand, die den Raum umgrenzt und zu der die Öffnung gehört. Der vierte Parameter ist die ObjectId der untersuchten Öffnung. Das folgende Beispiel zeigt den Rahmen für eine neue Öffnungsregel mit dem Namen BoundingOpeningRuleNet:
namespace AecSpaceOffsetStandardSample {public class BoundingOpeningRuleNet : AecBoundingOpeningRule {}public BoundingOpeningRuleNet () {}RegisterType(typeof(Door));} public override AecSpaceOffsetInfo* Apply(ObjectId idSpace, ObjectId idAdjSpace, ObjectId idObject, ObjectId idOpening) { }
Das folgende Beispiel zeigt eine einfache Umgrenzungsöffnungs-Regel, in der ein Versatz für Türen festgelegt wird. Um sicherzustellen, dass diese Regel nicht auf Fenster angewendet wird, wird die Regel nur für das Türobjekt registriert, damit sie von AutoCAD Architecture 2024-Toolset nicht für andere Öffnungen aufgerufen wird. Diese Regel wird im Beispielprojekt AecSpaceOffsetStandardSample verwendet. Der Versatz ist zur Innenseite des Türflügels definiert.
namespace AecSpaceOffsetStandardSample {public class BoundingOpeningRuleNet : AecBoundingOpeningRule {}public BoundingOpeningRuleNet() { RegisterType(typeof(Door)); } public override AecSpaceOffsetOpeningInfo* Apply(ObjectId idSpace, ObjectId idAdjSpace, ObjectId idObject, ObjectId idOpening) {}return new AecSpaceOffsetOpeningInfo(AecSpaceOffsetOpeningType.PanelAdjacent);} return new AecSpaceOffsetInfo(AecSpaceOffsetType.NoChange); }
Die Nettoumgrenzung und die Nettoschraffur werden zur Türmitte versetzt, jedoch nicht an den Wandöffnungen.