




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄
第1章HelloBIMBase
1.1HelloBIMBase
1.2使用BIMBaseAPI的準備「作
1.3BIMBase環境搭建
第2章BIVBase基礎
2.1BIMBas。概述
2.2BIMBase重要概念
2.3外部命令和工具
2.4應用類和文檔類
2.5事務處理
2.6實戰:兩點畫線工具
第3章領域對象(BPObjecl)
3.1領域對象基礎
3.2對象編輯
第4章幾何對象(Graphics)
4.1概述
42幾何基元類
4.3幾何輔助類
4.4實戰:獲取實體的幾何數據
第5章視圖
5.1視圖概述
5.2創建和刪除視圖
5.3視圖控制
5.4臨時繪制/視圖裝飾
第6章事件
6.1事件簡介
6.2事件定義、注冊和注銷
6.3右鍵菜單事件
6.4構件顯示事件
第7章二維圖紙
7.1詳圖線
7.2填充
7.3尺寸標注
7.4文字注釋
7.5表格
第8章功能區擴展(RibbonUI)
8.1菜單
8.2項目樹
8.3??繉υ捒?/p>
第9章開啟BIM之旅:實戰項目
9.1新建我的專業
9.2布置對象:在立方體上開洞
9.3編輯對象
9.4剖切出圖
附錄一:插件加載及界面配置
1.1插件加載
1.2啟動界面配置
附錄::編輯Schema文件
附錄三:Schema字段說明
BIMBase二次開發教程
(C++語言版本V2.1)
企業名稱:北京構力科技有限公司
日期:2022.08
第1章HelloBIMBase
1.1HelloBIMBase
想假在■環境卜.實慶門■的,能,?/£I.桿中港〕川扣卜?代班中浮泄門」的命令.實現
彈出對話框。
void
HelloBIMBase
0
AfxMessageBox(
L*HelloBIMBase!*
);
}
AutoDoRegisterFunctionsBegin
BPToolsMessager::registerFun(_T(
"HelloBIMBase"
),&HelloBIMBase);
AutoDoRegisterFunctionsEnd
代碼ITHelloBIMbase函數
我們可以將以上代碼分為兩個步驟;
第一步:創建自己的■函數,并在函數中彈出對話框。
第二步:通過BTMBase平臺的接口,將第一步中所創建的■函數注
冊到相關平臺,并將其與命令■■關聯。此時,■■和
■兩個宏之間的代碼會在相關模塊加載時執行,即模塊加載時■被注冊到平臺。此
時,啟動BIMBase,在命令行輸入已經注冊的命令,執行后將彈出■彈窗,如圖上
1所示。
BIMBaseP3D-[D:\test\testP3D]-皮件testP3D視圖1]□
開始基本建模翁相數奇導出群助Q快速啟動....15x
昌Q盥畫昌國
融演臺導入導入導入載人參數設置組件工程重材庫參數化類型屬性
P3DPMODEL言理器SKPIFCPMODEL化組件Python路徑編宙器組件庫組件庫莒浮器
導入S3
視圖瀏覽器斑?令o回日
□工程項目
E_|_程埼累
Y
視圖瀏寬器|雌|在此輸入命…QkI
//◎乂上口▼乙003圍昌園
圖ITHHelloBIMBase"對話框
1.2使用BIMBaseAPI的準備工作
在使用BIMBascAPI和本書之前,需要具備以下條件:
?安裝BIMBase系列產品,了解BIMBase系列產品的功能和使用。
?獲取BIMBaseAPI,可通過二次開發官網()下載SDK進行研究或開發。
?了解C++開發語言。
?安裝MircoSoftVisualStudio2019(下載VisualStudioTools免費安裝Windows,Mac、Linux
(https://visualstjdio.microsoft.com/zh-hans/vs/))?
1.3BIMBase環境搭建
按以下步驟創建?個最簡單的項目,該插件作為一個BIMBase外部命令,執行時彈出一個提示框顯示
1.3.1下載VisualStudio2019版本
?首先進入微軟官網下載VisualStudio2019版木安裝包(hltps://learn.microsoft.com,zh-cn/vi
sualsludio/releasas/2019./release-notes),如圖I2所示。
Learn/VisualStudio/??i
^VisualStudio2019版本16.11發行說明
項目?2023/03/29G反饌
本文內容
VisualStudio2019版本16.11的新店內容
VisualStudio2019版本16.11.28
VisualStudio2019版本16.11.27
VisualStudio2019版本16.11.26
顯示另外30個
開發者社區Q|系統要求|兼容性|可分發代碼|發布歷史記錄|許可條款|博客Q|VisualStudio新增功能文檔
。備注
此版本不是最新版本的VisualStudio.若要下載最新版本,請訪問VisualStudioe網站。
單擊按鈕即可下載最新版VisualStudio2019.有關如何安裝和更新VisualStudio2019的說明,請參閱楮VisualStudio
2019更新至喝新版本.另請參回如何脫機安裝的說明。
DownloadCommunity2019上■DownloadProfessional2019±HDownloadEnterprise2019上
圖1-2下載位苴
?下載完成并打開安裝包后,會出現如圖1-3所示的VisualStudioInstall界面,點擊修改,可下載
開發所需的工作負桁,一般下載圖1-4中4個即可滿足大部分開發需求,安裝位置可自定義,在工作
負荷右側安裝位置選項中修改。
?注意,若想使用VFC功能需要勾選使用C++的桌面開發工作負荷中的選項(適用于最新VM2生成工具
的C++ATL)o
o□x
VisualStudioInstaller
巳安笈可用
更新可用.開發人員新聞
SubKnbetothe4^?81KEM,
VisudlStudioCommunity2019"(MWeree*otcdtoannouncethatyou3cntR*lubk..
1&1127aia(u2023零7月箋日
o有可用更?更多?Rock¥ourOebu99FGamePaalWStockWindow
T科怕uhkedtoKnc^
161128BVrfU)
In17.6iAdV.7weAddedeu.
2023隼陰25日
Toom?nytotnopen?Nopwbk?^
WwcQKMJc4UArtc^??emVk3
2023冬7月20日
■,更今Micewt
SfieMkrgH開發人費社區?il
Q恒由stude變存r?ttn
mrtmtt血ii到769
圖1-3VisualStudioInstall界面
正在修改-VfiualStudioQxnmurMy2019?1G1127
工作負荷個擔件諳言包安裝位置
Aj-2Kmiwweo辦成LJ.Azureca
vtZ7ASPMTCore.ASP.NET.HTMMMvaScnpt1CgA
>用于便用.NETmNET開發云&用O創也貴》安裝詳細信息
Docker麥月的疝生威Web匠用寫序.的AzureSOK.工1UD0目.處R*用于實/應用內厚日…
,VisualStudio核心91箱35
?Python開發
|3>Pythoo開發G3Node.j?JfM?.NET鼻面開發
。Wpython?n?a.■&、殳a式開發ID3代再管理.吃使用NodejM一個由R分?件塞0的Man歡送"附)生
)使用的桌面開發
成可?收加網婚這用電學.
?通用Windows平臺開發
▼單個蛆件
亶面應用和移動應用(S)0).NETSOK|outo(wppo<1)
S3Pythor131blM19.1”
MIsB;?[使用c??的麻面開發S
-J將C&WUMI—如F*與NET*JNET&Ewcrk一包—使用“111JKW舞MSVUCMn小CMeH或MSMW)生或
侵用.生成2,W)MCM■體元型制臺程整.硼于的現代d?&M.
■■-RWSdom學化開發QiiAMobiedevck>pmcfitwithNET(outatsupport)
■■使用SYB、殘C??何0力通用岫31平白包H螭蜥42m壽QS.Androrf或Mtom生5Fg應
&m?用盤風
格除內不受支樣r?8件
CAProgram%(?e6AMKro5oaVisualSludio\201%omnscy
襄求的息或應08
met*作更聶示勺回,所這ais?udK>第*均回匕an還*伊通過zi女w⑥下a其他w樣的幼??包欲件更行洋司.如第三方公告塞具局TtUtftHR]XR!(Q,
*?游可任中標“即?次量體可巴
圖卜4安裝相關工作負荷
1.3.2下載并安裝軟件及SDK
?在PKPV官網(https://www.pkpm.cn)”下載"入口下載BIMBase軟件產品(下載“BIMBase建模軟
件”版本即可)并進安裝。
p1
產品試用構力學空圖慢大師
圖1-5軟件下我
?在BIMBase二次開發網站(https://dev.pkpm.cn)下我BIMBaseSDK版本并進行安裝。注意:下載的
BIMBase軟件產品與3IMBaseSDK版本號應保持一致。
產品試用梅力學堂二次開發
圖1-6SDK下載
?安裝完SDK后,目錄如圖1-5所示,Samples中包含了所有的范例,對于范例中的Example.s:n稍做配
置,如圖16所示,“調試”的“命令”設置為安裝的BIMBase軟件exe路徑,即可運行起來進行查
看。
修改日期
Document2023/5/3011:33文件夾
Include2023/6/617:12文件夾
JLib2023/5/3011:21文件夾
Samples2023/6/89:42文件夾
圖1-7SDK中相關內容
Examples匡性13
E3(C):活動(Release)”平貨P):活動(x64)v配置行理簿(O)...
」配置國性
常規
WindowsiSiXS
盒雙
咖
命令D:\SDKjK^\BIMBasc_2023_42501_42400_S751_38569_??45rft\BIMBasc.cxc
VC++目錄
命令參數
DC/C++
工作目錄$(Pro>jectDir)
D
附£0否
D清單工fl
用試器類里自動
D期
網
合并環境S
0MS信經
sot3S
生成事件
DAmp默認快運》WARP軟件國翳
D
t>代碼分析
DCodeAnalysis
命令
要執行的調試命令.
畸取消應用(A)
@1-8SDK中范例項目配置
1.3.3新建項目
?打開VisualStudio2019,單擊菜單框“文件”一“新建”-“項目”,打開“新建項目對話
框"。如圖1-9所示,創建一個自己的項目(MyBIMBase項目)。
□X
創建新項目伍X.一,
最近使用的項目模板(R)C++?Windows?Sfl臺?
機不到克全匹配5
WMFC動態隹接國
芟于你的雙重找到先反他結案
?拄制臺應用
nMFCgffl
uhJ
S3共享3!目生成且有在Window,上后行的愛京用戶界面的應用.
€??Windows左面
£jMFCEffl
口mMFC的膝庫
aa生成可在多個正在運行的Windows應用之間共享的.dll.包括
MicrosoftgSd^IC.
C**Windows,W
就《MFCActiveX拄件
aa使用Microsoft串聯M的ActiveX控件.
C**Window1>
未找到徐要查找明內容?
安裝⑤個工且和功能
下一音1N}
□X
配置新項目
MFC動態鏈接庫-Window*方
項目名稱⑴
MyBIMBase
fizS(L)MFCDLL
DADLL謂(T)
解決方案⑸MFCraDLL?
創薪程關方空勖四)能:
自動化(U)
晚夫方案名存(M)①□Window妾接字(W)
MyBIMBase
□行解決方案和項自放在同一目錄中(D)
上fB)
圖1-9新建項目對話框
?右犍設置VyBIMBase項目屬性,如表11所示。解決方案配置為“Release”,解決方案平臺配置為x6
4;
表17主要環境配置
配置安裝路徑
[SDK安裝路徑]'include、:[SDK安
MyBIMBaseC\C++-〉常規->附加庫包含目錄裝路徑八include\P3DCore\;[SDK
安裝路徑-include\Share\;
鏈接器->[SDK安裝路徑]乳ib\Rclcasc\:[SDK安裝路徑八Lib\Rc
常規-〉附leasc\Share\BcgFranic;[SDK安裝路徑]\Lib\Rclcasc\
加庫目錄Share;[SDK安裝路徑八Lib\Rclcasc\P3DCorc;
配置屬性-
>調試->命[建模軟件安裝路徑]\BIMBASE.exe
令
?在■中添加平臺頭文件引用,■中添加lib引用,可直接從范例中拷貝:在Visual
Sludio新版平臺工具集中,預編譯頭文件由原來的■修改為,以下為相關代碼。
n
include
<vector>
#
include
<map>
*
include
<algorithm>
//平臺相關
include
*BPExportMacros,h”
#
include
*PKPMExportMacros.h"
include
"P3DDC/P3DDCAPI.h"
n
include
*PSDGeomBase/PSDGeomBasePublicAPI.h*
include
"P3DGeom0bject/P3DGeom0bjectPublicAPI.h"
include
"JsonCpp/JsonCppAPLh”
#
include
*BPBase/BPBaseAPLh*
#
include
"BPData/BPDataAPI.h"
include
^BPDataCore/BPDataCoreDef.
#
include
*BPDataCore/BPDataCoreAPI.h"
include
"BPDataCore/BPPlacement.h"
#
include
*BPDataCore/BPDomainDatalnitManager.h"
#
include
"BPDisplay/BPDisplayAPLh*
#
include
"BPInteraction/BPInteractionAPI.h"
#
include
"BPFrame/BPFrameAPLh”
#
include
*BPSolidCore/BPSolidCoreAPI.h*
#
include
"BPBase/BPPlatformAPLh*
#
include
*BPUIFrameWork/BPUIFrameWorkAPLh”
#
include
*BPUIFrameWork/BPUIFrameWorkUti1.h〃
using
namespace
p3d;
n
include
^BPPrimaryElement/BPPrinaryGeomAPI.
#
include
"Share/TgGe/TgGe.h"
代碼1-2頭文件列表(片段)
#
pragma
comment(lib,
"P3DCore/P3DDC.lib”
)
#
pragma
comment(lib,
*P3DCore/P3DGeomBase.lib*
)
n
pragma
comment(lib,
"P3DCore/P3DGeomObject.lib”
)
pragma
comment(lib,
“BPDataCore.lib”
)
pragma
comment(lib,
"Share/TgGe.lib*
)
#
pragma
comment(lib,
"BPPlatform.lib”
)
pragma
comment(lib,
"BPSolidCore.lib”
)
pragma
comment(lib,
“BPDataExt.lib”
)
#
pragma
comment(lib,
*P3DCore/JsonCpp.lib*
)
#
pragma
comment(lib,
"BPUIFrameWork.lib"
)
#
pragma
comment(lib,
"BPApp.lib〃
)
#
pragma
connnent(lib,
"BPDataCore.lib”
)
#
pragma
comment(lib,
''BPPrimaryElement.lib”
)
#
pragma
comment(lib,
“BPPluginManager.lib”
)
代碼1-3lib庫列表(片段)
?入口插件dll注冊
在入口DLL的VyBIMRase.cpp文件中繼承■類,實現
|、并通過類進行注冊、
載,如示例代碼1-4所示。
class
ExamplesPluginEntry:
public
BIMBase::Plugin::BPPluginFactory
public
*
ExamplesPluginEntryO{};
virtual
^ExamplesPluginEntry(){};
protected
*
//提供加載響應時機,重載但不用實現
virtual
void
_onLoadPlugin(CWnd*curMainFrame)override
(
std
?*?
vector
<wstring>vecAssembly=BIMBase::Plugin::BPPluginManager::getlnstance().getCu
rPluginAssmeblyO;
for
(
auto
it:vecAssembly)
(
〃模塊加載
loadPluginAssembly(it);
}
}
//提供卸載響應時機,重載但不用實現
virtual
void
_onUnLoadPlugin(::BIMBase::Core::BPProjectRcurProject)override
//返回插件的信息,重載但不用實現
virtual
void
_initPluginInformation(::BIMBase::Plugin::PluginInformation&pluginlnformati
on)override
(
plugininformation.m_wsPluginDescribe=
L"二次開發"
*
I
)
);
static
ExamplesPluginEntry_pluginEntry;
PBBIM_IMPLEMENT_EXTENSION_MODULE(entryDll);
extern
"C〃
int
APIENTRY
DllMain
(HINSTANCEhlnstance,DWORDdwReason,LPVOIDIpReserved)
〃如果使用IpReserved,請將此移除
UNREFERENCED_PARAMETER(IpReserved);
if
(dwReason==DLL_PROCESS_ATTACH)
if
(!entryDll.Attachlnstance(hlnstance))
return
0
//插件注冊
BIMBase::Plugin::BPPluginManager::getInstance().registerPlugin(&_plug
inEntry);
)
else
if
(dwReason==DLL_PROCESS_DETACH)
(
〃插件反注冊
BIMBase::Plugin::BPPluginManager::getlnstance().unRegisterPluginO;
entryDll.Detachinstance();
)
return
1
'〃確定
}
代碼1-4:入口DLL的dlImain.cpp插件加載部分
表1-2BPPluginFactocr接口說明
描述
方法
onLoadPlugin工程事件-加載插件時觸發
onUnLoadPlugin工程事件-卸載插件時觸發
initPluginlnformation獲取初始化插件的信息-回調調用
loadP1uginAssemb1y加載插件模塊,插件入口調用
表1-3BPPluginManagcr接口說明
描述
方法
registerPlugin插件的注冊
unRcgisterPlugin插件的反注冊-注銷事件、卸載事件、對話框資源釋放
unLoadPlugin插件卸載
getCurP1uginAssmeb1y獲取當前插件需要加載的模塊
addCurPluginAssmebly添加當前插件需要加載的模塊
1.3.4代碼編寫
?在完成上述步驟后,下面可以開始編寫具體代碼。創建一個新的文件,并符受制
以下代碼。
void
HelloBIMBase
0
AfxMessageBox(
rHelloBIMBase!"
);
}
AutoDoRegisterFunctionsBegin
BPToolsMessager::registerFun(_T(
"HelloBIMBase”
),&HelloBIMBase);
AutoDoRegisterFunctionsEnd
1.3.5插件加載
?安裝SDK時,會自動在C:\ProgramData\PKPM\RIMBasp\Flugins\SDK類別\SI)K版本號\e++ph】gin路杼
下放置一個默認的plugin文件(安裝完SDK后,C盤會默認配置,注意有些電腦ProgramData文件夾是
隱藏狀態),用于插件加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育精準扶貧項目實施中的教育信息化與農村學校發展研究
- 新能源汽車充電設施2025年布局優化與綜合運營效率評估報告
- 2025年基因治療藥物研發趨勢與臨床應用前景展望報告
- 2025年工業互聯網平臺邊緣計算硬件架構優化與工業互聯網產業發展策略報告
- java多線程并發面試題及答案
- java測試開發面試題及答案
- 教育與培訓行業:2025年教育行業在線教育平臺市場細分領域分析研究報告
- iso22613內審員考試試題及答案
- gps監控員考試試題及答案
- fcba考試試題及答案
- 《碳計量》教學大綱
- 公司“三重一大”決策制度實施辦法
- 商務談判說課精課件
- 微信視頻號代運營合同范本
- 【基于近五年數據的鴻星爾克財務報表分析15000字】
- CNN 卷積神經網絡介紹
- 北大強基試題
- 把未來點亮歌詞打印版
- 四級下冊英語期末測試卷深圳版
- 健康安全危險源識別、風險評估和風險控制表
- 摩托車不過戶免責協議(2篇)
評論
0/150
提交評論