概要 - スペース規則

(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() の標準の実装の中で、そのような規則の 1 つのインスタンスを、使用可能なオフセットに登録します。

より複雑なスペース規則では、事前に定義された値よりも小さな面積を持つスペースはすべて、特定のオフセット タイプに影響を与えないものとして定義することができます。 次の例では、サンプル プロジェクトの一部であり、すべてのスペースを無効にするスペース規則を示します。 これは、サンプル標準内で、使用可能な境界をオフにするために使用されます。

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