2014-01-22 5 views

답변

2

당신은 현재 범위에 ObjectType를 가져와야합니다 : 난 그냥 RevitPythonShell이 ​​밖으로 시도하고 나타났습니다

>>> from Autodesk.Revit.UI.Selection import ObjectType 
>>> picked = uidoc.Selection.PickObject(ObjectType.Element) 

, 쉘이 전면에 여전히 있기 때문에, 작동하지 않습니다. 따라서이 기술은 리본에 추가하는 스크립트에서 작동하지만 셸에서 직접 작동하지는 않습니다 ... 아직 어떻게 수정해야하는지 잘 모르겠습니다. 죄송합니다.

편집 :

def pickobject(): 
    from Autodesk.Revit.UI.Selection import ObjectType 
    __window__.Hide() 
    picked = uidoc.Selection.PickObject(ObjectType.Element) 
    __window__.Show() 
    __window__.Topmost = True 
    return picked 

당신은 하단에있는 편집기 창에 붙여 넣기하고 F5를 누르거나 당신의 INIT-에 추가하여이 작업을 실행할 수 있습니다 트릭을 수행하는 이와 같은 기능을 사용하여 스크립트 또는 뭐든간에. 그리고 요소를 선택해야 할 때 pickobject()으로 전화하십시오.

+1

Daren, 감사합니다 !! 저는 프로그래밍과 revit SDK를 사용하기 시작했습니다. 나는 당신의 사이트와 jeremy tammik 's를 조사하고있다. 그러나 그것은 아직도 천천히오고있다. – dciolino

+1

@dciolino, 안녕하세요. 그냥 잠깐 만요, 곧 모든 것이 이해되기 시작합니다 ;-) 나는 Revit 및 Revitapi라는 태그가 붙은 질문에 대해서는 StackOverflow에서 이메일을받습니다. –

1

그건를 사용하고 있습니다 :

는 오류가 나는 이유는이 코드를 실행하면 "이름이 '개체 유형'정의되지"받을 수 있나요 해당 진술 범위의 아무 곳에 나 정의 할 수 있습니다 :

>>> ObjectType 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'ObjectType' is not defined 
>>> ObjectType = 12 
>>> ObjectType 
12 

어쩌면 당신은 수입 명세서를 잊었을까요?