2017-05-12 1 views
0

FilterRule으로 전달할 요소에 자체 부울 연산을 만들려고합니다. ElementPasses 부재 설명 상태 :ElementPasses에 대한 재정의를 사용하여 사용자 정의 FilterRule을 만드는 방법

파생 클래스가 주어진 소자는이 규칙을 통과하는지 여부를 결정하는 테스트를 구현하는 방식이 재정의.

나는 내 자신의 파생 클래스를 만들려고했지만 그것을 구현하는 방법을 알아낼 수 없습니다. 인터페이스를 사용할 수 있다고 생각하지만 아무것도 찾을 수 없습니다. 고의로, 나는 이것의 예를보고 기억하지만 나는 아무것도 찾을 수없는 것 같습니다.

이것은 다음과 함께 실패합니다. 정적 클래스 'ParameterDefinitionExists'는 'FilterRule'유형에서 파생 될 수 없습니다. 정적 클래스는 객체에서 파생되어야합니다.

static public class ParameterDefinitionExists : FilterRule 
{ 
    public static bool ElementPasses(Element element) 
    { 
     return true; 
    } 
} 

그리고 이것은 실패 : 'FilterRule'0 인수

static public class ParameterDefinitionExists : FilterRule 
{ 
    new public bool ElementPasses(Element element) 
    { 
     return true; 
    } 
} 

는 무엇 생성자 인수를 않습니다를 사용하는 생성자를 포함하지 않는 이유는 무엇입니까?

갈 방법이있을 수 있지만 FilterRules에는 아무 것도 할 수 없습니다. 업데 이터에서 트리거를 정의하고 세분화하려고하지만 어쩌면 명령에 전달 된 후에 요소를 쿼리해야합니다. 나는 필터 규칙으로 그것을 잡는 것이 더 효율적이라고 생각한다.

답변

0

당신은 FilterRule에서 파생 된 Revit API 클래스 중 하나를 사용 할 수 있습니다

상속 계층 구조를

  • 시스템 개체
    • Autodesk.Revit.DB FilterRule
      • Autodesk.Revit.DB FilterCategoryRule
      • Autodesk.Revit.DB FilterInverseRule
      • Autodesk.Revit.DB FilterValueRule
      • Autodesk.Revit.DB SharedParameterApplicableRule

inf 설치 여기

http://thebuildingcoder.typepad.com/blog/2010/08/elementparameterfilter-with-a-shared-parameter.html

전체 topic group on filtering이다 http://www.revitapidocs.com/2017/a8f202ca-3c88-ecc4-fa93-549b26a412d7.htm

The Building Coder 여러 사례 작성 및 파라미터를 이용하여 필터를 제공한다.

관련 문제