Nachdem der aktuellen Datenbank Klassifizierungen hinzugefügt wurden, möchten Sie sie in Flächenberechnungsstandard-Plugins verwenden. Prinzipiell können Sie die Klassifizierung eines Raums, der an eine Regel weitergegeben wird, mit der vorliegenden AutoCAD Architecture 2024-Toolset .NET API bestimmen. Dies kann jedoch schwierig werden, besonders da Sie in Regeln immer den globalen Namen von Klassifizierungen verwenden müssen, um mit allen lokalisierten Versionen des angezeigten Klassifizierungsnamens arbeiten zu können. Die Klasse AecSpaceOffsetClassification vereinfacht dies.
Die Klasse AecSpaceOffsetClassification enthält eine Methode zum Aufrufen des globalen Klassifizierungsnamens eines Raumobjekts, sodass dieser mit den in der Ressourcen-String-Tabelle definierten Namen verglichen werden kann, um zu entscheiden, wie die Umgrenzungen versetzt werden. Die Methode ist der öffentliche String GetClassificationName(Object Id objId). Das folgende Beispiel zeigt eine Umgrenzungsnachbarschafts-Regel, die die Klassifizierungen in der oben stehenden Beispieltabelle verwendet. Da die Regel Zugriff auf das Objekt AecSpaceOffsetClassification des Standards benötigt, wird der Standard über den Konstruktor übergeben und einem Element der Regel zugewiesen. Das bedeutet, dass Sie die Regel in der InitRules()-Implementierung des Standards mit einer Referenz "this" zum aktuellen Standard erstellen müssen.
public class BoundingAdjacencyRuleGross : AecBoundingAdjacencyRule {private AecSpaceOffsetStandardISA standard; public BoundingAdjacencyRuleGross(AecSpaceOffsetStandardISA standardISA) {}standard = standardISA;} public override AecSpaceOffsetInfo Apply(ObjectId idSpace, ObjectId idObject, ObjectId idAdjSpace) {String classificationNameThis = ""; String classificationNameAdjacent = ""; if (!idSpace.IsNull) {}classificationNameThis = standard.Classification.GetClassificationName(idSpace);} if (!idAdjSpace.IsNull) {classificationNameAdjacent = standard.Classification.GetClassificationName(idAdjSpace);} if (idAdjSpace.IsNull || classificationNameAdjacent =="Exterior") {return new AecSpaceOffsetInfo(AecSpaceOffsetType.Opposite);} if (!idAdjSpace.IsNull && classificationNameThis == "Exterior") {return new AecSpaceOffsetInfo(AecSpaceOffsetType.Adjacent);} if (classificationNameThis == "Office") {return new AecSpaceOffsetInfo(AecSpaceOffsetType.Adjacent);} // for the rest return new AecSpaceOffsetInfo(AecSpaceOffsetType.Center);