공간 규칙 정보

(SpaceOffsetRulesManager.AecSpaceRule 기본 클래스)

공간 규칙은 좀 더 세부적인 다른 모든 규칙 유형과 달리 전체 공간에 적용됩니다. 공간 규칙은 각 표준(순 간격띄우기, 사용 가능한 간격띄우기 및 총 간격띄우기 유형)에 대해 한 번만 등록할 수 있는 유일한 간격띄우기 규칙 유형입니다.

공간 규칙 구현

공간 규칙을 구현하려면 SpaceOffsetRulesManager.AecSpaceRule 기본 클래스에서 파생된 새 클래스를 추가해야 합니다. 새 클래스는 기본 클래스의 Apply 인터페이스를 구현해야 합니다. 이 클래스는 항상 공간 객체에 적용되므로 기본 클래스의 AecSpaceOffsetRuleBase.RegisterType() 메서드를 호출할 필요가 없습니다. 각 규칙에서 구현해야 하는 Apply 메서드에는 다음의 AecSpaceRule 클래스 구문이 있습니다.

public abstract bool Apply(Autodesk.AutoCAD.DatabaseServices.ObjectId idSpace);)

부울 반환 값에 따라 공간에 유효한 간격띄우기 경계가 있는지 여부가 결정됩니다. 이 경계가 있는 경우에는 특정 간격띄우기 유형의 모든 경계를 비활성화하는 데 해당 경계를 사용할 수 있습니다. 다음 예에서는 새 공간 규칙 클래스의 프레임워크를 보여줍니다.

namespace AecSpaceOffsetStandardSample
{
public class SpaceRule: AecSpaceRule
{
public SpaceRule()
{
}
public override bool Apply(ObjectId idSpace)
{
// return false to switch boundary off
}
}
}

샘플 공간 규칙 NullSpace

일반적으로 이 규칙은 사용 가능한 간격띄우기가 아닌 순 간격띄우기 및 총 간격띄우기만을 포함하는 영역 계산 표준에 사용합니다. Apply 메서드의 구현에서 항상 False를 반환하는 AecSpaceRule에서 파생된 공간 규칙을 구현하여 이 작업을 수행합니다. AecSpaceOffsetStandard.InitRules()의 표준 구현에서 사용 가능한 간격띄우기를 사용하여 해당 규칙의 한 인스턴스를 등록합니다.

좀 더 복잡한 공간 규칙에서는 미리 정의된 특정 값보다 작은 영역의 모든 공간이 특정 간격띄우기 유형에 영향을 주지 않도록 정의할 수도 있습니다. 다음 예에서는 샘플 프로젝트의 일부이며 모든 공간을 무효로 만드는 공간 규칙을 보여줍니다. 이 규칙은 샘플 표준 내에서 사용 가능한 경계를 비활성화하는 데 사용됩니다.

namespace AecSpaceOffsetStandardSample
{
public class NullSpace: AecSpaceRule
{
public SpaceRuleNet()
{
}
public override bool Apply(ObjectId idSpace)
{
return false;
}
}
}