2017-10-03 21 views
2

내가 코드 오토 데스크의 도움에보기 필터

http://help.autodesk.com/view/RVT/2014/ENU/?guid=GUID-B6FB80F2-7A17-4242-9E95-D6056090E85B 을 실행하려고하지만 작동하지 않는 것 같습니다 작동하지 않습니다. 코드 "FirstElement () .get_Parameter ("Comments ");" 작동하지 않습니다. 그러한 기능은 없습니다.

Revit encoutered a System.MissingMethodException; Method not found:'AutoDesk.Revit.DB.Parameter Autodesk.Revit.DB.Element.get_Parameter(System.String)

이 코드로 잘못은 무엇인가 :

나는 다음과 같은 오류가있어?

private void CreateViewFilter(Autodesk.Revit.DB.Document doc, View view) 
    { 
    List<ElementId> categories = new List<ElementId>(); 
    categories.Add(new ElementId(BuiltInCategory.OST_Walls)); 
    ParameterFilterElement parameterFilterElement = 
    ParameterFilterElement.Create(doc, "Comments = foo", categories); 

    FilteredElementCollector parameterCollector = new FilteredElementCollector 
    (doc); 
    Parameter parameter = parameterCollector.OfClass(typeof(Wall)).FirstElement 
    ().get_Parameter("Comments"); 

    List<FilterRule> filterRules = new List<FilterRule>(); 
    filterRules.Add(ParameterFilterRuleFactory.CreateEqualsRule 
    (parameter.Id, "foo", true)); 
     parameterFilterElement.SetRules(filterRules); 


    OverrideGraphicSettings filterSettings = new OverrideGraphicSettings(); 
    // outline walls in red    
    filterSettings.SetProjectionLineColor(new Color(255, 0, 0)); 
    view.SetFilterOverrides(parameterFilterElement.Id, filterSettings); 
    } 
+0

오류 메시지 등의 자세한 정보를 제공 할 수 있습니까? – DiskJunky

+1

다음과 같은 오류가 나타납니다 : "Revit이 System.MissingMethodException을 encouered했습니다. 메서드를 찾을 수 없습니다 : 'AutoDesk.Revit.DB.Parameter Autodesk.Revit.DB.Element.get_Parameter (System.String)" – uakam

+0

감사합니다. lookupparameter와 작동하지만 명령을 두 번 이상 반복하면 다른 오류가 발생합니다. 오류 : Revit은 argumentException이 발생했습니다. name에 주어진 값은 이미 필터 요소 이름 매개 변수 이름으로 사용 중입니다 : ParameterFilterElement의 name parameterFilterElement = ParameterFilterElement.Create (doc, "Comments = foo", categories); – uakam

답변

0

도움말 버전 (2014)과 다른 버전의 Revit을 사용하고 계십니까?

나는 두 버전 이후로 get_Parameter이 사용되지 않을 것이라고 생각합니다.

당신은 LookupParameter으로 시도 할 수 있습니다 :

...FirstElement().LookupParameter("Comments"); 

또는 결국 GetParameters,하지만 조심을,이 하나는 컬렉션을 반환합니다

...FirstElement().GetParameters("Comments"); 

(링크 마지막 버전을 참조를하지만 당신은 쉽게 확인하실 수 있습니다 동일한 사이트에있는 다른 하나는 Revit 2015 이후 2 개의 메소드가 변경되지 않습니다.

+0

감사합니다 lookupparameter 함께 작동하지만 두 번 이상 명령을 반복 할 때 다른 오류가 발생합니다. 오류 : Revit은 argumentException이 발생했습니다. name에 주어진 값은 이미 필터 요소 이름 매개 변수 이름으로 사용 중입니다 : ParameterFilterElement의 name parameterFilterElement = ParameterFilterElement.Create (doc, "Comments = foo", categories); – uakam

+0

흥미 롭다. 왜이 오류가 발생하는지 확신 할 수 없다. 어떻게 코드를 정확히 반복 하는가? 이런 종류의 에러는 2 개의 필터 ('name'은 두번째 파라미터''Comments = foo '')에 대해서 같은 이름을 부여 할 때 발생합니다. 코드, 예외와 함께 다른 질문을하는 것이 더 나을 것 같습니다. 이것은 다른 사람들을 도울 것입니다. (당신은 여기에있는 몇 가지 해답을 받아 들여야합니다. 다음 방문자가 솔루션을 발견하는 데 도움이되고 저자는 행복하게됩니다 .-)) – PRMoureu

+0

고마워요! 나는 대답을 받아들이는 것이 무슨 뜻인지 궁금하네요? 나는 "맞은"응답을 표시하기 위하여 단추 또는 비슷하게 그러나 나는 당신의 응답이 일했다는 것을 언급했다는 것을 찾아 낼 수 없었다. 다른 방법이 있습니까? – uakam