A propos des ouvertures de contour

(classe de base SpaceOffsetRulesManager.AecBoundingOpeningRule)

Une règle d'ouverture de contour permet de définir un décalage au niveau des ouvertures des murs délimitant un espace, telles que les portes et les fenêtres. Par exemple, le profil de décalage net ne peut pas être défini en décalant le profil uniquement à partir des murs de contour. Généralement, le mur est coupé au niveau des portes et des fenêtres. Ce type de règle peut être utilisé pour décrire un tel décalage dans le profil de décalage calculé par la norme de calcul d'aire.

Implémentation d'une règle d'ouverture de contour

Pour implémenter une règle d'ouverture de contour, ajoutez une classe dérivée de SpaceOffsetRulesManager.AecBoundingOpeningRule. La nouvelle classe doit implémenter une ou plusieurs interfaces Apply de la classe de base et s'enregistrer dans le constructeur pour les types d'objets auxquels elle est applicable, via l'appel de la méthode de base AecSpaceOffsetRuleBase.RegisterType. Cette règle s'applique uniquement aux classes suivantes :

L'enregistrement de cette règle pour d'autre types d'objet ne produit aucun résultat. La méthode Apply de cette classe, que chaque règle doit implémenter, possède la syntaxe suivante dans AecSAecBoundingOpeningRulepaceRule :

public abstract AecSpaceOffsetOpeningInfo*
Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace,
Autodesk.AutoCAD.DatabaseServices.ObjectId idAdjSpace,
Autodesk.AutoCAD.DatabaseServices.ObjectId idObject,
Autodesk.AutoCAD.DatabaseServices.ObjectId idOpening);

Le premier argument ObjectId correspond à l'espace actuel pour lequel le décalage de contour doit être calculé. Le deuxième argument ObjectId correspond à l'espace adjacent. En cas d'absence d'espace adjacent, comme pour les murs extérieurs, la valeur de cet argument est ObjectId.Null. Le troisième argument ObjectId correspond à l'objet auquel l'ouverture est ancrée. Il s'agit généralement d'un mur délimitant un espace et contenant une ouverture. Le quatrième argument ObjectId correspond à l'ouverture faisant l'objet de vérification. L'exemple suivant illustre le cadre d'une nouvelle règle d'ouverture appelée BoundingOpeningRuleNet :

namespace AecSpaceOffsetStandardSample
{
public class BoundingOpeningRuleNet : AecBoundingOpeningRule
{
public BoundingOpeningRuleNet ()
{
RegisterType(typeof(Door));
} public override AecSpaceOffsetInfo* Apply(ObjectId idSpace, ObjectId idAdjSpace, ObjectId idObject, ObjectId idOpening) { }
}
}

Exemple de règle d'ouverture de contour BoundingOpeningRuleNet

L'exemple suivant illustre une règle d'ouverture de contour simple qui définit un décalage pour les portes. Pour que la règle ne s'applique aux fenêtres, elle est enregistrée uniquement pour l'objet Porte de sorte que AutoCAD Architecture 2024 toolset n'appelle pas la règle pour aucune autre ouverture. Cette règle est utilisée dans l'exemple de projet AecSpaceOffsetStandardSample. De par sa définition, le décalage doit se placer à l'intérieur du panneau.

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); }
}
}

Le contour net et les hachures nettes sont décalés vers le centre de la porte mais ne le sont pas au niveau de l'ouverture du mur.