iTwin 幾何屬性獲取

面積體積半徑

獲取幾何屬性,如面積,體積,半徑,可以使用getMassProperties這個接口

async onGetMassProperty(){const vp = IModelApp.viewManager.selectedView;const iModel = vp?.iModel;if (!iModel) return;console.log("iModel.selectionSet.elements", iModel.selectionSet.elements);const volumeResult = await iModel.getMassProperties({operation: MassPropertiesOperation.AccumulateVolumes,candidates:  Array.from(iModel.selectionSet.elements),});const areaResult = await iModel.getMassProperties({operation: MassPropertiesOperation.AccumulateAreas,candidates: Array.from(iModel.selectionSet.elements),});const lengthResult = await iModel.getMassProperties({operation: MassPropertiesOperation.AccumulateLengths,candidates: Array.from(iModel.selectionSet.elements),});console.log("volumeResult", volumeResult);console.log("areaResult", areaResult);console.log("lengthResult", lengthResult);},

位置相關

range,origin,rotation等

async getPlacement(){const vp = IModelApp.viewManager.selectedView;const iModel = vp?.iModel;if (!iModel) return;      const placements = await iModel.elements.getPlacements(iModel.selectionSet.elements);console.log("placements", JSON.stringify(placements));},

placements [{"origin":[34.199960548813415,7.3376951500380025,0],"angles":{"roll":136.25855192488035,"yaw":-2.6355965215330106},"bbox":{"low":[-3.329577892100504,-3.329577892100506,-3.3295778921005064],"high":[3.3295778921005077,3.329577892100506,3.3295778921005064]},"elementId":"0x20000000047"}]

幾何圖元具體信息

GeometryStreamIterator

// 打開snapshot測試
import { IModelHost, SnapshotDb, StandaloneDb} from "@itwin/core-backend"
import { GeometryStreamIterator } from "@itwin/core-common";
IModelHost.startup();
const iModel = SnapshotDb.openFile("../assets/geometry.bim");
const value = iModel.elements.getElementProps({ id: '0x20000000049', wantGeometry: true });
console.log("ElementProps",JSON.stringify(value));
const it = new GeometryStreamIterator(value.geom, value.category);
const primitiveGeometry = [];for (const entry of it) {    primitiveGeometry.push(entry.primitive);
}
console.log("PrimitiveGeometry:", JSON.stringify(primitiveGeometry));

Tips:5.0后不可以直接用snapshot,上述僅為實例

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90231.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90231.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90231.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OpenLayers 快速入門(九)Extent 介紹

看過的知識不等于學會。唯有用心總結、系統記錄,并通過溫故知新反復實踐,才能真正掌握一二 作為一名摸爬滾打三年的前端開發,開源社區給了我飯碗,我也將所學的知識體系回饋給大家,助你少走彎路! OpenLayers…

LeetCode 121. 買賣股票的最佳時機 LeetCode 122. 買賣股票的最佳時機II LeetCode 123.買賣股票的最佳時機III

LeetCode 121. 買賣股票的最佳時機嘗試一:暴力解決方法常用兩個指針去遍歷prices數組,dp[i]用于記錄在第i天所獲得的最大利潤。時間復雜度是O(N^2),超出時間限制。Codeclass Solution(object):def maxProfit(self, prices):"""…

【LeNet網絡架構】——深度學習.卷積神經網絡

目錄 1 MLP 2 LeNet簡介 3 Minst數據集 3.1 MINST數據集簡介 3.2 MNIST數據集的預處理 4 LeNet手寫數字識別 LeNet由Yann Lecun 提出,是一種經典的卷積神經網絡,是現代卷積神經網絡的起源之一。Yann將該網絡用于郵局的郵政的郵政編碼識別&#xff…

Python筆記完整版

常用pip源 (1)阿里云 http://mirrors.aliyun.com/pypi/simple/(2)豆瓣 http://pypi.douban.com/simple/(3)清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/(4)中國科學技術大學…

2025 鴻蒙創新賽又來了,萬少教你如何強勢切入 HarmonyOS AI特性

2025 鴻蒙創新賽又來了,萬少教你如何強勢切入 前言 ? 2025 華為HarmonyOS 創新賽又來了,創新賽是鴻蒙生態最大規模開發者官方賽事,最高獲百萬激勵。 參賽資格 面向所有開發者開放以隊伍的形式來參加,可以一個人報名一個隊伍&a…

【智能模型系列】Unity通過訪問Ollama調用DeepSeek模型進行本地部署

【智能模型系列】Unity通過訪問Ollama調用DeepSeek模型進行本地部署 目錄 一、前言 二、環境準備 三、核心代碼解析 1、參數配置 2. CallDeepSeek.cs - API交互控制器 3、 MainPanel.cs - 用戶界面控制器 四、源碼 一、前言 在本教程中,我將分享如何在Unity中集成本地…

什么是5G-A三防平板?有什么特點?哪些領域能用到?

在工業自動化與數字化轉型浪潮中,三防平板電腦已成為“危、急、特”場景的核心工具。這類設備不僅具備堅固耐用的物理防護特性,更融合了先進的通信技術與智能處理能力。而隨著5G技術向5G-A階段演進,新一代三防平板正為行業應用注入全新動能。…

Flink實時流量統計:基于窗口函數與Redis Sink的每小時PV監控系統(學習記錄)

題目:利用flink統計網站瀏覽量,并寫入redis。利用窗口函數以及算子實現每小時PV(網站的頁面瀏覽量)統計,對統計后結果數據格式進行設計,存儲至Redis中(利用sink將處理后結果數據輸出到redis數據…

使用Imgui和SDL2做的一個彈球小游戲-Bounze

使用Imgui和SDL2做的一個彈球小游戲-Bounze 油管上面TheCherno博主分享的一個視頻FIRST GAME in C! Did He Do a Good Job? // Code Review (C/SDL2)里面分享了一個Github項目: https://github.com/staticaron/Bounze 使用了Imgui和SDL2,并且可以設置音…

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法 CASE WHEN 是 SQL 中非常實用的條件表達式,它允許你在查詢中實現條件邏輯。以下是詳細的用法說明: 1. 基本語法結構 CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE default_resul…

CentOS 7 Linux 基礎知識點匯總

🐧 CentOS 7 Linux 基礎知識點匯總為方便初學者快速掌握 CentOS 7 系統的核心操作,本文檔整理了常用系統命令、快捷鍵、目錄結構及文件后綴名等基礎內容,適合入門參考。 一、常見系統命令 🔍 命令行提示符說明 終端中的提示符包含…

突發限制下的破局之路:國產之光 Lynx 重構 AI 開發安全壁壘

繼 Pro 套餐 “明升暗降” 爭議后,Cursor 本周再掀波瀾 —— 包括 Claude 系列、GPT-4 在內的主流模型一夜之間對中國用戶全面封禁。開發者社群瞬間沸騰,“付費卻用不了”“項目數據導不出” 的焦慮刷屏,境外工具的政策波動再次給行業敲響警鐘…

滲透測試實戰 | docker復雜環境下的內網打點

本文作者:Track-syst1m一.前言本文涉及的相關漏洞均已修復、本文中技術和方法僅用于教育目的;文中討論的所有案例和技術均旨在幫助讀者更好地理解相關安全問題,并采取適當的防護措施來保護自身系統免受攻擊。二.大概流程1. 外網打點漏洞利用?…

阿里云服務器 CentOS 7 安裝 MySQL 8.4 超詳細指南

阿里云服務器 CentOS 7 安裝 MySQL 8.4 超詳細指南 一、準備工作 系統要求: CentOS 7.9 64位2 核(vCPU)2 GiBroot 用戶權限 服務器連接工具: FinalShell 下載安裝包: 訪問 MySQL 官網選擇版本:MySQL 8.4.0…

解決 Electron 中 window.open 打開新窗口的各種“坑”

嘿,各位開發者們!今天我們要聊聊在使用 Electron 時遇到的一個經典問題:如何正確地使用 window.open 來打開新窗口? 這聽起來似乎很簡單,但實際上卻充滿了各種“驚喜”(或者說“驚嚇”)。別擔心…

朝歌智慧盤古信息:以IMS MOM V6重構國產化智能終端新生態

隨著5G、云計算、AI、大數據等技術深度滲透,智能終端行業正迎來場景化創新的爆發期。面對市場需求升級與技術迭代壓力,國產化智能終端領域領軍企業——廣東朝歌智慧互聯科技有限公司(以下簡稱“朝歌智慧”),基于集團“…

docker 離線安裝postgres+postgis實踐

文章目錄前言一、離線安裝docker二、導出導入PG鏡像1.導出2.導入三、啟動容器四、驗證與測試前言 在企業內網環境中部署地理信息系統(GIS)時,常常面臨網絡隔離導致無法在線拉取 Docker 鏡像的問題。 本文將詳細介紹如何通過離線方式完成 Pos…

視頻、音頻錄制

1,項目介紹。 實現全屏錄屏、選擇區域錄屏、攝像頭錄像、麥克風錄音、主板音頻錄音、截屏畫板的自由組合。并通過FFmpeg完成音頻與視頻的合并。 功能界面 畫板畫筆 參考的項目 https://github.com/yangjinming1062/RecordWin 本項目是在此項目的基礎上修復了部…

Linux文件系統理解1

目錄一、初步理解系統層面的文件1. 文件操作的本質2. 進程管理文件核心思想二、系統調用層1. 打開關閉文件函數2. 讀寫文件函數三、操作系統文件管理1. 文件管理機制2. 硬件管理機制四、理解重定向1. 文件描述符分配規則2. 重定向系統調用3. 重定向命令行調用五、理解緩沖區1. …

科技向善,銀發向暖:智慧養老與經濟共筑適老未來

人口老齡化是當今中國社會面臨的重大課題,也是推動社會變革與經濟轉型的重要引擎。隨著數字技術的飛速發展,“智慧養老”正以科技向善的溫度,為老年群體構建更舒適、更安全、更有尊嚴的晚年生活,同時為銀發經濟注入蓬勃活力&#…