免费人成视频激情999,玩弄japan白嫩少妇hd小说 ,成人无码嫩草影院 http://www.qjsdgw.cn Mon, 19 Sep 2022 01:56:17 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.3 http://www.qjsdgw.cn/wp-content/uploads/2022/03/ico.png 調(diào)出 – V商人 http://www.qjsdgw.cn 32 32 revit如何調(diào)出項(xiàng)目瀏覽器,revit2017項(xiàng)目瀏覽器怎么打開? http://www.qjsdgw.cn/104410.html Mon, 19 Sep 2022 01:56:15 +0000 http://www.qjsdgw.cn/?p=104410 想象這樣的一些場景:

你是一位建筑設(shè)計師,需要與你配合的結(jié)構(gòu)工程師確認(rèn)和修改模型的細(xì)節(jié)。而工程師并不在你身邊站著,也沒有跟你共享這個模型,那你需要把整個Revit模型拷貝給他,他把修改后的模型返還后,你去對照修正合并兩個模型。或者一開始就截圖說明發(fā)個郵件闡述問題,根據(jù)他的回復(fù)自己去修改模型。

或者你還是一位建筑設(shè)計師,你有個模型細(xì)節(jié)需要甲方去敲定和修改,比起打電話和發(fā)郵件,語言和文字的闡述,不如讓對方在模型上改動或圈點(diǎn)最直接,然而對方電腦上并沒有Revit,也不會操作Revit。

或者你此刻在工地現(xiàn)場,也許是個舊建筑改造項(xiàng)目,你發(fā)現(xiàn)實(shí)際現(xiàn)場的構(gòu)件位置與你模型中建模的位置不一致。你不想等,那一刻就想修改一下模型,要么是怕自己忘了,要么在辦公室里有同事正在這個模型上工作,你想及時通知他。可是你此刻并沒有電腦,只有一部能上網(wǎng)的手機(jī)或者平板。

如果以上這些場景會發(fā)生,如果這樣的場景給一些人甚至就是你帶來了困擾和麻煩,那有沒有什么方式解決呢?

這篇文章希望能探索一種思路。

還是先假定一個簡單的場景:我是一個結(jié)構(gòu)工程師,正在設(shè)計一面墻,或是使用輕鋼或者木結(jié)構(gòu),最終排布的立柱位置如下圖藍(lán)色高亮的部分。這里再假設(shè)我需要找一位設(shè)備工程師來確認(rèn)這些立柱的位置是否與他的設(shè)計沖突,而他使用CAD出圖,沒有Revit模型,也不在同一家公司可以叫到工位旁邊,甚至說我自己也不想把完整的Revit的模型分享給他。

好吧,現(xiàn)在開始解決問題。

首先要解決的是解除對于Revit環(huán)境的依賴。

因?yàn)樵谝陨蠄鼍爸幸磳Ψ經(jīng)]有Revit,要么自己因?yàn)樾畔⒌拿舾行砸膊辉敢夤蚕碜约旱腞evit模型?;谶@樣的需求,似乎云共享模型的想法已經(jīng)呼之欲出了。

我這里解決的方案是用Node.js簡單搭建了一個網(wǎng)頁APP,前端顯示的部分和后端模型數(shù)據(jù)處理采用Autodesk Forge提供的工具,鑒于是Revit的原生模型,這樣是非常省力的。其實(shí)如果場景的需求不高,自己從頭用WebGL搭建也是可行的。

完成這一步,就可以得到如下圖的一個網(wǎng)頁端APP了。既然是網(wǎng)頁端的,而且是Revit脫敏模型,那么回想之前所列的各種場景:害怕對方拷貝模型的我,與我不在同一間辦公室的工程師,電腦沒有Revit的甲方,在工地現(xiàn)場只有一部手機(jī)的工程師。

他們都只需要打開網(wǎng)頁瀏覽器,即可看到我電腦上Revit模型,并且在網(wǎng)頁上對構(gòu)件進(jìn)行測量定位。

如果把之前的需求分為需要對方“確認(rèn)”和“修改”兩個部分,其實(shí)到上面一步“確認(rèn)”的問題就解決了。

而如果需要對方還能修改這個模型怎么辦呢?

首先從網(wǎng)頁端就要實(shí)現(xiàn)模型的可修改。

鑒于Forge是不提供修改功能的,這里需要通過其提供的extension接口,自己實(shí)現(xiàn)構(gòu)件的修改與移動。如下圖,最右邊的圖標(biāo)則是自己制作的構(gòu)件移動擴(kuò)展功能,當(dāng)按下按鈕后,點(diǎn)選構(gòu)件,會在構(gòu)件上顯示三維坐標(biāo)系,此時網(wǎng)頁端的構(gòu)件變成可以移動的了。

然而網(wǎng)頁端的修改,是無法儲存的,此時刷新這個頁面,會發(fā)現(xiàn)上圖移動過的構(gòu)件又恢復(fù)原先的位置了。這是因?yàn)锳utodesk Forge只提供展示功能,并不支持修改,我們需要自己建立一個存儲方式,來記錄構(gòu)件的修改信息和新的位置。我是通過Node.js把網(wǎng)頁app上構(gòu)件位置的信息,發(fā)送到云端數(shù)據(jù)庫,例如MongoDB上。

由于最終目的是把網(wǎng)頁端的修改,反映到本地的Revit 模型上。那么接下來一步。只需要把MongoDB 上的數(shù)據(jù),拉取到Revit模型中即可。這聽起來就是寫一個Revit插件就能解決的事:

然而在開始編寫Revit插件的時候,發(fā)現(xiàn)如何獲取網(wǎng)頁端改變的通知是一個挑戰(zhàn)。

直覺上,只需要在Revit插件中增加一個輪詢,每隔一個時間段去訪問檢查云端數(shù)據(jù)庫,比較云端數(shù)據(jù)與本地模型的差別即可,原理如下圖:

但實(shí)際做出來后,發(fā)現(xiàn)有個致命的問題,就是這個插件明顯拖慢了Revit的運(yùn)行速度…

經(jīng)過一些比較和嘗試,發(fā)現(xiàn)使用Websocket技術(shù),能有效的緩解輪詢帶來的運(yùn)行速度拖慢問題。

解決了如上的這些問題,最終的效果用這個動圖來說明吧。通過操作左邊網(wǎng)頁上的立柱,右邊本地Revit模型里的立柱位置跟隨改變。到此,實(shí)現(xiàn)了一個通過修改網(wǎng)頁模型,聯(lián)動修改本地Revit模型的方案雛形。

來源:非結(jié)構(gòu)

]]>