(SpaceOffsetRulesManager.AecBoundingAdjacencyRule 기본 클래스)
경계 인접 요소 규칙은 이 세그먼트에 인접한 공간에 따라 공간 기본 프로파일의 세그먼트에 대한 간격띄우기를 정의합니다. 일반적으로 총 간격띄우기 프로파일은 경계 인접 요소 규칙에서 내부 벽의 경계 객체 중심 및 외부 벽의 경계 객체 외부로 경계가 간격띄우기되도록 정의하는 데 사용합니다.
경계 인접 요소 규칙을 구현하려면 SpaceOffsetRulesManager.AecBoundingAdjacencyRule에서 파생된 새 클래스를 추가해야 합니다. 이전에 설명한 모든 간격띄우기 유형에서와 마찬가지로 새 클래스는 이 기본 클래스의 Apply 인터페이스를 구현해야 하며 기본 메서드인 AecSpaceOffsetRuleBase.RegisterType()을 호출하여 생성자에서 호출해야 하는 객체에 등록되어야 합니다. 각 규칙에서 구현해야 하는 Apply 메서드는 AecBoundingAdjacencyRule에서 다음 형식을 가집니다.
public abstract bool Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace, Autodesk.AutoCAD.DatabaseServices.ObjectId idObject, Autodesk.AutoCAD.DatabaseServices.ObjectId idAdjSpace);
첫 번째 ObjectId 인수는 간격띄우기 경계를 계산할 현재 공간입니다. 두 번째 ObjectId는 첫 번째 인수의 공간과 인접 공간 사이의 경계 객체입니다. 세 번째 인수는 인접 공간의 ObjectId 인수입니다. 외부 벽처럼 인접 공간이 없는 경우 이 인수 값은 ObjectId.Null입니다. 다음 예에서는 BoundingAdjacencyRuleGross라는 새 공간 규칙의 프레임을 보여줍니다.
namespace AecSpaceOffsetStandardSample {public class BoundingAdjacencyRuleGross : AecBoundingAdjacencyRule {}public BoundingAdjacencyRuleGross() { } public override AecSpaceOffsetInfo Apply(ObjectId idSpace, ObjectId idObject, ObjectId idAdjSpace) {}//}
다음 예에서는 샘플 프로젝트에 사용되는 경계 인접 요소 규칙의 구현을 보여줍니다. 여기서는 내부 벽의 두 공간에 대한 경계 객체 중심으로 간격띄우기 및 인접 공간이 없는 경우 벽의 외부로 간격띄우기를 정의합니다.
public class BoundingAdjacencyRuleGross : AecBoundingAdjacencyRule {public BoundingAdjacencyRuleGross() { } public override AecSpaceOffsetInfo Apply(ObjectId idSpace, ObjectId idObject, ObjectId idAdjSpace) {}if (idAdjSpace.IsNull) {}// If there is no adjacent space (exterior wall), keep the 'Opposite' offset return new AecSpaceOffsetInfo(AecSpaceOffsetType.Opposite);} else {// If there is an adjacent space (interior wall), its center return new AecSpaceOffsetInfo(AecSpaceOffsetType.Center);}