본문 바로가기

반응형

다이나모 파이썬

(6)
다이나모 파이썬 노드에서 임의로 설치한 패키지 사용하기 다이나모를 쓰다 보면 캔버스 공간 효율화와, 코드 단순화를 목적으로 파이썬 노드를 쓰게 되는 경우가 왕왕 있습니다. 그런데 파이썬으로 모든 기능을 구현하려면 흔히 말하는 ‘바퀴를 새로 발명해야 하는’ 문제가 생기기 쉬운데, 그럴 때는 기존에 사용하던 패키지에 의존하고 싶어 집니다. 패키지를 소환해서 쓰는 것은 별 문제가 아니지만, 패키지를 참조하게 되는 경로는 사용자의 PC 환경에 따라 매번 달라지기 때문에 범용성을 확보하기가 어렵습니다. 그래서 오늘은 환경변수를 활용하여, 다이나모 파일을 실행하는 환경이 바뀌어도 자동으로 패키지가 설치된 경로를 인식하여 패키지 참조를 수행하는 코드를 보여드리려고 합니다. (Dynamo Revit 기준으로 설명하겠습니다.) 테스트용 archi-lab.net 패키지 설치하..
정규표현식 잘 몰라도 코드 짤 수 있어요 어.........음... 다만 코드가 엄청나게 길고 복잡해 질 뿐이죠. 네.. 이 말은 정규표현식에 대해 알아야 한다는 말입니다. 그런데 오히려 알아야한다는 말만 많이 듣고, 한두번씩 배움을 미루다 보면 거북하고 거추장스러워서 점점 배우기 싫어집니다. 거추장스러움을 없애기 위한 방법인데 말이죠. /[^a-zA-Z0-9가-힣ㄱ-ㅎ]/g 정규식이라고 해서 검색했는데, 이런 예제를 보고 나면, 암호문을 본 듯한 기분에 일단 쉬고 싶어집니다. 그래서 오늘은 많은 내용들을 손질해서, 먹을 부분만 딱 남겨 보여 드리겠습니다. regex 언제 쓰나? 흔히 regex라고 줄여쓰는 regular expression (정규표현식) 은, 데이터로 들어온 문자열을 판별할때 쓰는데, 우리는 살면서 많은 글자들을 바탕으로 움직..
Python For 문을 연습하는 방법(feat. Revit Dynamo) 오늘은 Python의 for 문을 알아볼텐데, Revit Dynamo에서 파이썬 노드를 꺼내서 실습해보겠습니다. 굳이 다이나모에서 실습하는 이유는 레빗 프로젝트와 연동해서 객체를 반복문으로 다루는 법을 보이고자 함입니다. Python for문을 어떻게 접근하고 익힐까요? 기본 개념 (코딩도 언스마트하게 하면 육체노동을 할 수 있다?!) for 문을 공부하는 것은 어떤 언어에서든 기본이 됩니다. “다이나모 기본노드 활용 시리즈-2” 에서 언급했었는데, 1개의 개체를 다루는 코드와, 2개 이상의 개체를 다루는 코드는 구조가 다릅니다. 2개 이상을 다루는 코드의 재료가 되는 것 중 가장 이해하기 쉬운 것이 리스트입니다. 라는 말을 한 적이 있죠? 2개 이상의 개체를 다루기 위해서는, 하나의 객체를 다루는 코드..
Dynamo 기본노드로 필터링 VS 파이썬으로 필터링 저번에 Dynamo에서 파이썬 노드를 이용해 명령을 내리는 법을 살폈습니다. 다이나모에서 파이썬 노드를 활용하는 이유는 여러가지가 있습니다. 먼저 다양한 라이브러리들을 이용하기 위한 목적도 있고, 기본 노드로 작성된 코드가 지나치게 복잡해지는 경우, 하나의 노드 혹은 기능단위로 축약해서 깔끔하게 코드를 작성하기 위한 목적도 있습니다. 다이나모로 필터링 코드 작성하기 샘플 rvt 파일과 다이나모 열기 오토데스크에서 제공하는 샘플파일을 가지고 시작해보겠습니다. 샘플파일이 없다면 하기 링크 참조. Revit 샘플 프로젝트 파일 다운받기 Revit 샘플 프로젝트 파일 다운받기 레빗을 설치하면 처음 시작화면에 등장하는 샘플 프로젝트가 있고, 이걸 열어보면서 대략적인 공부를 시작하게 됩니다. 그런데 나중에 다시 찾..
파이썬 조건문 예제입니다. 근데 이제 다이나모를 곁들인.. 프로그래밍에서는 다양한 상황이 벌어지는데, 그 중에서 조건에 맞는 객체만 골라서 통과시키거나 거부해야 하는 상황이 자주 발생합니다. 파이썬에서는 if 문을 활용하면 되는데, 실제로 어떤 상황에서 어떻게 적용하게 되는지 간단한 예제로 살펴봅시다. 반복문에서의 조건문 활용 mylist = [ "강남_지사1", "강남_지사2", "강동_지사3", "강서_지사4", "강서_지사5", "강북_지사6", "강북_지사7", "강북_창고1", "강북_창고2", "의정부_지사8", "남양주_지사9", "수원_안전가옥", "태안_창고3", "강릉_소극장", "속초_연구동1", "나주_연구동2", "경주_지사10", "부산_지사11", ] myresult = [] for i in mylist: if "강남" in i or ..
다이나모에서 파이썬 코딩을 통해 명령 내리기 (이제부터 노드를 배치하는 공간을 캔버스라고 부르겠습니다.) 다이나모에서 기본 노드들을 배치하면서 프로그램을 짜다보면, 노드들이 들어차서 캔버스가 너무 빽빽해지게 됩니다. 마우스 스크롤로 확대했다 축소했다를 반복하다보면 전체 프로그램의 각 부분을 보는 것이 너무 피곤해집니다. 그렇기 때문에 기본노드들로 작성된 flow 중에서 자주 반복되는 패턴이 있다면, 이를 추상화 해서 파이썬 노드로 만들어 버리는 것이 편한데요. 오늘은 다이나모에서 파이썬 노드를 만드는 것까지만 해보겠습니다. 새 다이나모 파일을 하나 열어봅니다. 좌측 라이브러리 검색칸에 python이라고 적으면 2가지 노드가 나오는 데, 이중 첫번째를 선택합니다. 생성하고 나면 ‘IronPython2’ 라고 노드 우측하단에 적혀있습니다. IronPy..

반응형