(SpaceOffsetRulesManager.AecBoundingOpeningRule 기본 클래스)
경계 개구부 규칙은 문 및 창과 같이 공간의 경계를 정의하는 벽에서 개구부 간격띄우기를 정의하는 데 사용할 수 있습니다. 예를 들어 경계 벽에서만 프로파일을 간격띄우기해서는 순 간격띄우기 프로파일을 정의할 수 없습니다. 보통 벽은 문 및 창에서도 절단됩니다. 이 규칙 유형은 영역 계산 표준에 따라 계산된 간격띄우기 프로파일에서 이 점을 설명하는 데 사용할 수 있습니다.
경계 개구부 규칙을 구현하려면 SpaceOffsetRulesManager.AecBoundingOpeningRule에서 파생된 새 클래스를 추가해야 합니다. 새 클래스는 기본 클래스의 Apply 인터페이스를 하나 이상 구현해야 하며 AecSpaceOffsetRuleBase.RegisterType() 기본 메서드를 호출하여 생성자에서 호출해야 하는 객체 유형에 등록되어야 합니다. 이 규칙은 다음 클래스에만 적용할 수 있습니다.
이 규칙을 다른 객체 유형에 등록해도 아무런 결과가 발생하지 않습니다. 각 규칙에서 구현해야 하는 클래스의 Apply 메서드는 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);
첫 번째 인수는 경계 간격띄우기를 계산할 현재 공간의 ObjectId입니다. 두 번째 인수는 인접 공간의 ObjectId입니다. 외부 벽처럼 인접 공간이 없는 경우 이 인수 값은 ObjectId.Null입니다. 세 번째 인수는 개구부가 부착된 객체의 ObjectId로, 보통은 공간의 경계를 정의하고 개구부가 있는 벽입니다. 네 번째 매개변수는 조사 중인 개구부의 ObjectId입니다. 다음 예에서는 BoundingOpeningRuleNet이라는 새 개구부 규칙의 프레임워크를 보여줍니다.
namespace AecSpaceOffsetStandardSample {public class BoundingOpeningRuleNet : AecBoundingOpeningRule {}public BoundingOpeningRuleNet () {}RegisterType(typeof(Door));} public override AecSpaceOffsetInfo* Apply(ObjectId idSpace, ObjectId idAdjSpace, ObjectId idObject, ObjectId idOpening) { }
다음 예에서는 문에 간격띄우기가 정의된 간단한 경계 개구부 규칙을 보여줍니다. 창에 규칙이 적용되지 않도록 하기 위해 이 규칙은 문 객체에만 등록되므로 AutoCAD Architecture 2024 툴셋가 다른 개구부에 대해 이 규칙을 호출하지 않습니다. 이 규칙은 샘플 프로젝트인 AecSpaceOffsetStandardSample에서 사용됩니다. 간격띄우기는 문 패널의 내부로 이동하도록 정의됩니다.
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); }
순 경계와 순 해치는 문의 중심으로 간격띄우기되지만 벽 개구부에서는 간격띄우기되지 않습니다.