AecSpaceOffsetStandard에서 파생된 새 클래스를 정의해야 합니다. 이 클래스는 개별 규칙을 관리하는 프레임워크인 동시에 AutoCAD Architecture에서 표준을 로드 및 적용할 때 호출되는 입력점이 됩니다.
using System; using System.Collections.Generic; using System.Text; namespace AecSpaceOffsetStandardSample {public class Class1 { }}
추상 기본 클래스인 Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetStandard에서 파생된 표준 클래스를 추가합니다.
using Autodesk.Aec.SpaceOffsetRulesManager;
using System; using System.Collections.Generic; using System.Text; using Autodesk.Aec.SpaceOffsetRulesManager; namespace AecSpaceOffsetStandardSample {public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {}public AecSpaceOffsetStandardSample() { }}
AecSpaceOffsetStandard.SetName() 메서드는 기본 클래스에서 구현되며 재지정할 수 없습니다. 클래스의 생성자에서 표준의 이름을 등록하려면 이 메서드를 호출해야 합니다. 이 이름은 AutoCAD Architecture에서 사용 가능한 영역 계산 표준 리스트에 표시되는 이름입니다.
다음 예에서는 소프트웨어에서 기본 영역 계산 표준으로 자체 등록하는 샘플 프로젝트인 AecSpaceOffsetStandardSample 호출을 보여 줍니다.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// register rules}
이러한 각각의 호출은 다른 규칙 유형을 등록하기 위해 함수를 노출하는 Autodesk.Aec.SpaceOffsetRulesManager.AecSpaceOffsetRuleCollection 클래스의 객체에 대한 참조를 반환합니다. 이 객체는 AutoCAD Architecture에서 유지 및 사용됩니다. 다음 예에서는 세 가지 간격띄우기 유형을 사용하여 규칙을 등록하는 방법을 보여줍니다.
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}SetName("Basic");} protected override void InitRules() {// Register the rules with this standard, so the // offset calculation algorithm can call them // for the according boundary type NetRules().AppendBoundingOpeningRule(new BoundingOpeningRuleNet()); // no usable boundary UsableRules().SetSpaceRule(new NullSpace()); GrossRules().AppendBoundingObjectRule(new BoundingObjectRuleGross()); GrossRules().AppendBoundingAdjacencyRule(new BoundingAdjacencyRuleGross());}
public class AecSpaceOffsetStandardSample : AecSpaceOffsetStandard {public AecSpaceOffsetStandardSample () {}// set the name of the standard SetName("Basic");} // must be overriden protected override void InitRules() { } // can be overriden protected override void InitDatabase(Database* database) {// ...init database with classification definitions or zone styles, etc...}