본문 바로가기

반응형

분류 전체보기

(77)
다이나모에서 List 를 검사 해보자! 그 두번째!! (다이나모 기본노드 활용 시리즈-5) https://hnanmal.tistory.com/entry/ListInspect-1-다이나모-기본노드-활용-시리즈-4 List_Inspect #1 (다이나모 기본노드 활용 시리즈-4) 다이나모 기본노드 활용시리즈 4번째이고, 리스트 활용에 관한 3번째 포스팅입니다. 이번 글에서는 리스트의 구성을 파악하고, 다양하게 이루어진 리스트의 구성 중에서 사용자가 원하는 특성 hnanmal.tistory.com 지난번의 List_Inspect #1 포스팅에서 두 집합 비교까지 설명했으니, 이번에는 검색대상의 인덱스 찾기부터 시작해보겠습니다. 검색대상의 인덱스(위치) 찾기 List.AllIndicesOf List.AllIndicesOf 노드는 리스트 내에 특정 항목이 몇 번째에 있는지를 검색해 줍니다. 예를 들어 ..
Dynamo를 이용해서 웹페이지를 만든다는 것은 이번 포스트에서는 다이나모 샌드박스를 이용하여 간단한, 정말로 아주 간단한 웹페이지를 하나 만들어보려고 합니다. 도대체 왜? 다이나모로 웹페이지를 만들어야 합니까? 더 좋은 툴이 수두룩 하고, 구현할 수 있는 한계점도 명확한데?라고 질문하고 싶으신 분들도 많을 텐데요. 사실 이런 생각이 들 정도로 배경지식이 높으신 분들은 이 포스트를 보지 않으셔도 됩니다. 이번 포스트는 명확하게 “프로그래밍을 전혀 알지 못하다가, 최근 관심이 생겨서 이것저것 알아보지만 실제로 뭔가를 아직 만들어보지는 못해서 갈증이 있는 분” 들을 대상으로 한다는 것을 서두에 밝힙니다. html에 대한 지식이 전혀 없으신 분들도 일단 다이나모를 설치하시고 (설치 과정은 깃허브에서 파일을 복사해오기만 하면 되니 정말 쉽습니다.), 순차적으..
레빗 뷰관리는 어렵죠. Detail Level 세팅이 대표적입니다. 레빗은 설계를 하는 도구입니다. 그러니 레빗에서 뷰 관리를 한다는 것은, 사실은 내가 수행하는 프로젝트에서 어떤 뷰가 필요한 지가 핵심이 되겠죠. 그리고 뷰는 프로젝트를 바라보고 검토하기 위한 하나의 개념으로써, BIM 설계와는 상관없이 도면에서 등장하게 되는 개념입니다. 평면 뷰에서는 수평적인 배치를 확인할 수 있고, 단면 뷰에서는 수직적으로 부재들과 공간이 어우러지는 모습을 체계적으로 확인할 수 있죠. 그런데 그 필요한 뷰에 대한 특성은 프로젝트마다 천차만별일 수밖에 없습니다. 그래서 누군가 만든 템플릿을 써도, 아무리 잘 만들어놓은 템플릿을 써도, 나의 프로젝트에 적용하기는 당연히 미흡한 부분이 있고, 이것을 수정하여 내 프로젝트에 최적화된 세팅으로 만들어야 합니다. 그런데, 뷰와 시트, 그리고 모..
파이썬 filter, map, reduce는 마치 공장같다(커피를 뽑는) 지난번 reduce 포스팅에서 말했듯이, filter, map, reduce 함수는 함께 조합되어 많이 쓰입니다. 여러 가지 원소들 중 특정 조건을 만족하는 것들만 골라서 => filter 골라진 원소들을 어떤 규칙을 통해 변환한 뒤 => map 변환된 원소들의 특성을 하나로 추출하는 => reduce 이러한 방식으로 자주 쓰입니다. 지난번 filter함수 포스팅에서는 커피가루를 예로 들어서 여러 가지 필터링 코드를 짜 봤지요? 이번에도 커피를 가지고 골라서, 변환한 뒤, 추출하는 예시 코드를 통해서 이해해 보도록 하겠습니다. 과테말라_커피가루 = [ {'이름': '카페인', '용해성': '수용성', '로스팅후변화': False, '함량': 10.00}, {'이름': '광물질', '용해성': '불용성',..
주피터노트북 수많은 셀 중, 딱! 하나만 파일로 저장하기! 주피터 노트북에서 파이썬으로 프로그래밍을 하다 보면 반복되는 코드를 재사용하기 쉽게 함수로 만들게 됩니다. 이런 함수들을 보통 한 셀에 몰아넣고, 다른 셀에서는 이 함수들을 호출하면서 프로그램을 짜는 일이 많죠. 그런데 함수의 내용이 길어지면 주피터노트북의 길이가 길어지게 되고, 프로그램의 큰 흐름을 만드는 코드에 대한 가독성이 떨어지는 때도 생깁니다. 그럴 때 사용할 수 있는 방법은 셀을 파일로 분리해서 저장한 다음 다시 import 하는 것입니다. 복잡한 프로그램이라고 가정하고 아래 코드를 보세요 def func0(): return "init_value" def func1(x): return pow(x,x) def func2(x): return x % 1111 def func3(x): return x..
주피터노트북 처음 시작할 때, 나는 단축키가 있는지 몰랐다 대부분의 프로그램들은 작업 효율성을 위해서 단축키를 제공합니다. 주피터 노트북도 마찬가지죠. 그런데 그 뻔한 사실을 저는 몰랐습니다.. Shift + Enter 만 알아서 셀을 실행시킬줄만 알고 나머지 조작들은 전부 다 마우스로 하고 있었거든요. 열심히 셀과 셀 사이를 마우스로 넘나들며 손목운동을 하고 있다가, 어느 날 발견합니다. "그 아이콘"을 보았습니다. 위에 보이는 아이콘을 보았던 것이죠. 눈치 채셨겠지만, 이걸 누르면 주피터 노트북이 제공하는 모든 단축키를 볼 수 있습니다. 어디에 있냐고요? 바로 여기에 있습니다. "그걸" 누르면 커맨드 팔레트가 실행되고, 버튼을 눌러보면 이런 창이 뜹니다. 이 창의 이름은 커맨드 팔레트라고 하는데요. Visual Studio Code 프로그램을 사용해보신 분들..
똑같은 패밀리 유형이 몇 개 있는지 세기 전에는 revit 파티에 갈 수 없단다 레빗은 건물, 공장, 토목 구조물 등을 설계하는 프로그램입니다. 그래서 진행이 완료되었거나, 진행 중인 레빗 프로젝트 파일을 보면 너무나도 많은 부재들이 있고, 그 각각의 부재들을 확인할 수 있는 view는 이리저리 흩어져 있기 마련입니다. 그래서 숙련된 사람이라도, 복잡한 건물의 도면을 보고 그 내용을 파악하려면 높은 집중력을 가지고 도면을 탐구하는 시간이 필요합니다. 숙련자들도 저럴진대, 익숙하지 않은 사람들은 더 죽을 맛이겠죠? 파악의 3 원칙: 무엇, 어디, 몇 개 사실 건축 프로젝트를 빠르게 파악하는 데 유념해야 할 키워드가 있습니다. 바로, 무엇이 어디에 몇 개나 있는가 입니다. 내가 기존에 진행되던 프로젝트에 투입된다고 하면, 지금까지 설계된 상황을 빨리 파악해야 팀원들과 합을 맞춰 일할 수..
비주얼코딩으로 바늘이 있는 시계 만들기 https://youtu.be/dyrujFWc3zs 바늘이 있는 시계 예전에 다이나모를 이용해서 바늘이 있는 시계를 만들어본 적이 있습니다. 영상을 보시면 아시겠지만 테두리, 시침, 초침, 분침의 형상을 구현해두고, 현재의 시간을 Date.Time 노드로 받아서 각 바늘이 회전할 각도를 매 초마다 알려주도록 했습니다. 그렇게 코드를 짜두고, 실행옵션을 Periodic(주기적) 실행으로 변경하면 시계바늘이 현재의 시간을 가르키며 맹렬히 회전합니다. 레빗에서도 돌아가는 바늘 시계 다이나모에서도 돌아가고, 바늘의 형상을 DirectShape으로 구현하여 Revit 안에서도 돌아가도록 만들었습니다. 딱히 유용하지는 않지만, 쳐다보고 있으면 왠지 시간이 잘 가는 코드라서 재미를 느꼈던 기억이 나네요. 내용 정리하..

반응형