코딩하는 건축가 : 19일

아... Revit이여...

by 코드아키택트

Revit API를 통해 무언갈 개발한다. 누군가는 Revit API를 개발한다고 표현하는데 난 틀린 표현이라고 생각한다. Revit 플러그인 개발이 좀 더 맞는 표현이라 생각한다. 아무튼 무슨 일이 있었는가...


각도 계산을 못한다고?

아무리 생각해도 이상하다. 나는 특정 알고리즘을 실현하기 위해 Revit의 각 변을 x 축으로 하는 좌표계에 정렬된 Minimum Bounding Box를 그려야 하는 일이 생겼다. 그 뭐라 하더라. Rotating calipher라는 알고리즘이랑 아마도 같은 걸 거다. 하다 보면 아주 무엇 같은 일이 많이 생기는데, 현재는 각도 계산이 제대로 안 되는 문제에 봉착했다. 가령 x 방향으로 1, y 방향으로 1 만큼 크기를 가지는 백터와 절대 x축과 각도를 구한다면 이는 45도가 나와야 할 것이다. 근데 뭐가 잘못되었는지 언제는 되었다가 언제는 안된다.

모든 건 내가 Revit 플러그인 개발을 안 해본 탓이겠지만, 그걸 감안하더라도 너무한 프로그램이다. Revit은 내부 체계가 굉장히 불친절하고 불합리하다는 인상을 자주 받는다. 컴퓨터 그래픽에 기초하고 있겠지만 아무튼 한스탭 한스탭이 상당히 복잡하다. 이런 걸 할 때마다 "라이노로 개발했더라면"이라는 생각이 절실히 나곤 한다. 하지만 닥친 문제를 어떻게 하겠는가.


내가 공부 안 한 죄. 선형대수.

내가 올해 공부하려던 3가지는 여실히 산산조각 났다. 그것은 AI, 로보틱, 컴퓨터 그래픽 인다. 이 과목들을 제대로 듣기 위해서 선형 대수를 알아야 한다. 나는 못했으니 상당히 어려움을 겪었다. 사실 MIT 선형대수도 듣고는 있었지만 시간에 쫓겨 듣느라 정작 기억에 남는 내용이 없다.

그리고 이 Revit의 문제를 해결하기 위해 나는 다시 선형 대수를 가져올 수밖에 없었다. 각도를 이미 알고 있으면 2*2 행렬을 통해 회전을 적용하는 게 가능하지만, 지금은 각도부터가 잘못되어 각도부터 다시 구해야 하는 상황에 이르렀다. 결론은 Cos(theta) = a*b/|a||b|라는 식을 통해 각도를 구할 수 있다.


참 아쉽다. 믿음이 없는 프로그램에 이렇게 열정을 쏟아야 한다니. 그래도 그 안에서 내가 얻어갈 수 있는 것을 얻어가는 수밖에

keyword
작가의 이전글코딩하는 건축가 : 18일