999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MicroStation的工程措施實體定義及管理方法

2022-01-21 03:54:28張協崇
鐵路技術創新 2021年5期
關鍵詞:定義措施工程

張協崇

(中鐵第四勘察設計集團有限公司 地質路基設計研究院,湖北 武漢 430063)

0 引言

隨著BIM技術的迅速發展[1-5],各行業對正向設計提出了迫切需求,為此各大設計院投入大量人力、物力資源研發BIM軟件[6-8]。MicroStation是一款優秀的圖形軟件,具備強大的幾何繪圖、建模功能[9],但是它本身僅有線、面、體等純幾何對象,沒有鐵路線路、路基邊坡、路基支擋、地基處理、橋梁、隧道等工程及措施對象。在MicroStation上開發BIM設計軟件,需開發出一系列具備鐵路專業屬性、行為特征和工程關系的措施實體對象,進行有機整合,形成一套具備BIM正向設計功能的系統。那么如何滿足該需求,就需要探索出一種方法,能基于MicroStation定義工程措施實體并進行組織管理。

經研究提出一種基于MicroStation的工程措施實體定義及管理方法:設計數據版本兼容模式,通過字符流轉換讀寫XAttribute與ECXAttribute(擴展屬性與EC擴展屬性),將工程措施的屬性與關系,存儲于Micro-Station元素,形成工程措施實體,結合分散存儲與按需讀取的方式,融入專業行為的算法,科學、靈活地管理工程措施實體,形成一套系統的具備工程屬性和行為特征的BIM模型。

1 MicroStation的XAttribute技術

XAttribute是MicroStation中最底層的一項技術,稱為擴展屬性,可通過MDL方式開發[8]。其存儲于元素(Element)之上、非元素之內。且XAttribute并非元素數據的一部分,而是關聯于該元素。相對的,data linkage則是元素數據的一部分。XAttribute與ECXAttribute具備以下特點:

(1)通過SDK的函數:StatusInt EditElement Handle::ScheduleWriteXAttribute(XAttributeHandlerIdCR h,UInt32 xAttrId,size_t dataSize,void const*data)存儲。

(2)每個XAttribute數據的大小不能超過100 000個字節,即(1)中的data不能超過100 000個字節,否則會導致程序崩潰。

(3)1個元素上可以存儲任意多個XAttribute。

(4)XAttribute的身份碼,通過XAttributeHandlerId與XAttributeID確定唯一性,XAttributeHandlerId又由MajorID、MinorID兩個合成。常規運用方法是:1個軟件對應1個XAttributeHandlerId,XAttributeID作為同一個軟件內部區分不同用途的XAttribute。

(5)ECXAttribute作為一種公開的XAttribute,由MicroStation平臺提供的一套較復雜的機制去定義與讀寫[10],可以被Bentley公司的各款軟件識別。ECXAttribute會在MicroStation原生的屬性界面中展示,比如元素或文件上的General、Geometry、Extended、Locks、Grid等屬性均為ECXAttribute,其展示示例見圖1。ECXAttribute的ID號固定為XAttributeHandlerId(22271,0),在讀寫其他XAttribute時,需注意不能占用該ID號。

圖1 ECXAttribute示例

(6)其他XAttribute僅是一串二進制數據,二次開發中讀寫起來比ECXAttribute簡易很多;但若無二次開發的源程序,則無法解析其數據結構。

基于以上特點,設定工程對象的存儲方式如下:

(1)軟件中所有需要存儲的數據,包括一些過程數據,轉換成void const*data存于XAttribute中,而要公開的屬性數據,相對于前者要少很多,則寫于ECXAttribute中。

(2)當某個數據特別大,超過100 000個字節的限制時,可分解成多個XAttribute,存儲于一串連續的XAttributeID中。

(3)定義所有類共同的屬性集TSYID,做成ECXAttribute,定義屬性集ECClass TSYID代碼如下:

其中,以關鍵字“Name”命名的屬性值,附在Micro-Station元素時,該元素將顯示成“Name”所賦予的名稱,示例見圖2,圖中2個“Name”屬性值分別賦值為“左側溝平臺”“路塹擋墻A”。

圖2 自定義ECXAttribute示例

2 字符流讀寫數據

類對象的基礎數據由int、double、wstring等類型組成,為方便讀寫,該方法采用了字符串流來讀寫數據,并轉換成字符串,再將其以二進制數據形式存儲于XAttribute,具體實施方法見圖3。

圖3 字符串流讀寫XAttribute的流程

在基類TSYLJRoot定義了4個虛函數:

virtual void write Out Stream(wostringstream&out);

virtual int read In Stream(wistringstream&in);

virtual wstring write WStr();

virtual int read WStr(wstring ws);

前2個函數是將類中的各種數據通過字符串流wostringstream、wistringstream進行讀寫,各派生類需要重載該函數:先調用基類的函數讀寫基類數據,再補充自身讀寫的數據。

后2個函數則是將字符串流wostringstream、wistringstream與字符串進行轉換,一般不重載,只在某些讀寫精度有變化時需要重載。

3 數據版本兼容

軟件在使用過程中需要不斷地開發升級,必定涉及類的數據結構的調整變化。當軟件版本持續升級時,也需要讀寫不同版本的數據,可采用以下方法:

(1)每個類,包括各層級的基類、派生類,都設定自身的版本號。

(2)writeOutStream中存儲數據:調用基類write-OutStream>>存儲自身最新的版本號>>存儲自身數據。以CptSection為例,其代碼如下:

(3)readInStream中讀取數據:調用基類readIn-Stream>>讀取該數據的版本號>>按版本號讀取自身數據。以CptSection為例,其代碼如下:

4 分散存儲與按需讀取

1個工程設計單元包含眾多繁雜的工程措施對象,相互間有包含與被包含的關系,且層次結構復雜。若將1個設計單元的數據全部存儲于一處,則數據量過于龐大,該軟件以面向對象思想,將各工程措施的屬性數據及其對象關系,分散存儲于各自的措施對象。在進行設計時,再按不同的行為需求,從某個工程措施開始,溯源讀取所使用到的各個關聯措施的數據,組成一套有機整體,完成設計行為,步驟如下:

(1)1個dgn文件包含多個模型空間(dgnModel),1個模型空間又包含眾多元素。所有工程措施對象都是1個元素,那么1個dgn文件中的1個工程措施對象的唯一身份碼,由ModelId與ElementId組成,故定義ModelElementID作為工程措施對象在MicroStation中的唯一身份碼,其代碼如下:

(2)擴展屬性中存儲工程關系,也就是存儲相關對象的ModelElementID,以邊坡面對象為例,其包含關系見圖4。

圖4 邊坡面包含關系

以邊坡面與邊坡防護為例,邊坡面有父部件LjSlopeCpt和一系列邊坡防護子對象2類關系,父部件ID定義于基類LJSideCpt的ModelElementID sideId,子對象ID定義于vectorChdSPCIdAr,相關代碼如下:

邊坡防護LjSlopeProtectCpt有父構件和一系列的子構件2類關系,父構件ID定義于ModelElementID parId,子構件定義于vectorChdIdAr,相關代碼如下:

(3)擴展屬性中存儲關系與自身數據,但是并不存儲子對象的數據,到執行用戶行為時,再根據需要讀取分散的子對象數據。

仍以邊坡面LjSlopeCpt為例說明,LjSlopeCpt類中定義了子對象邊坡防護指針vectorChdSPCAr,但是子對象數據并不存儲于邊坡面的擴展屬性中,而是存儲于邊坡防護對象的擴展屬性中。

在設計邊坡面時,點擊邊坡面后,讀取數據流程見圖5:①先讀取邊坡面LjSlopeCpt擴展數據;②通過LjSlopeCpt.ChdSPCIdAr找到所含子對象邊坡防護LjSlopeProtectCpt,再將分散在對子象中存儲的數據讀取出來;③在有需要時,通過LjSlopeProtectCpt中的ChdI-dAr,進一步讀取邊坡防護子構件(踏步、吊溝等)的數據;④通過sideId讀取父部件數據,再根據需要讀取父部件的其他子構件數據;⑤將這些讀取的數據構成有機的整體開展設計行為。

圖5 由邊坡面讀取數據

在設計邊坡防護時,點擊邊坡防護后,讀取數據流程見圖6:①先讀取邊坡防護LjSlopeProtectCpt擴展數據;②通過LjSlopeProtectCpt.ChdIdAr讀取邊坡防護子構件(踏步、吊溝等)的數據;③通過LjSlopeProtectCpt.parId讀取父構件邊坡面的數據;④在有需要時,讀取父構件邊坡面的父部件數據,再根據需要讀取父部件的其他子構件數據;⑤將這些讀取的數據構成有機的整體開展設計行為。

圖6 由邊坡防護讀取數據

5 結束語

MicroStation是款優秀的圖形軟件,但并不具備工程專業特性,因此,提出一種基于MicroStation的工程措施實體定義及管理方法,可開發出一系列具備鐵路專業屬性、行為特征和工程關系的措施實體對象,進行有機整合,形成一套具備BIM正向設計功能的系統,可讓工程師只需專注于專業本身,降低BIM學習成本,提高BIM設計的質量與效率。

猜你喜歡
定義措施工程
放養雞疾病防治八措施
今日農業(2021年9期)2021-11-26 07:41:24
高中數學解題中構造法的應用措施
減少豬相互打斗的措施
豬業科學(2018年4期)2018-05-19 02:04:38
夏季豬熱應激及其防治措施
廣東飼料(2016年5期)2016-12-01 03:43:23
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
工程
工程
工程
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 人人妻人人澡人人爽欧美一区 | 欧美成人免费一区在线播放| 欧美精品色视频| 成人一区专区在线观看| 久久中文无码精品| 国产精品成人第一区| 国产成人精品无码一区二| 亚州AV秘 一区二区三区| 麻豆精品久久久久久久99蜜桃| 全午夜免费一级毛片| 精品黑人一区二区三区| 全部免费毛片免费播放| 久久香蕉国产线看观看亚洲片| 成人午夜亚洲影视在线观看| 40岁成熟女人牲交片免费| 色综合日本| 在线va视频| 亚洲天堂成人在线观看| 精品日韩亚洲欧美高清a | 伊人成人在线视频| 国产成人综合久久| 国产免费人成视频网| 永久免费av网站可以直接看的 | 欧美一级黄片一区2区| 国产爽歪歪免费视频在线观看| 亚洲无码熟妇人妻AV在线| 久久香蕉国产线看观| 亚洲人成亚洲精品| 99热这里只有免费国产精品| 最新加勒比隔壁人妻| AV天堂资源福利在线观看| 欧美国产菊爆免费观看| 另类综合视频| 国产99精品久久| 国产精品福利尤物youwu| 国产免费网址| 国产无遮挡猛进猛出免费软件| 四虎影视库国产精品一区| 伊人久久久大香线蕉综合直播| 日韩欧美高清视频| 国产精品欧美日本韩免费一区二区三区不卡 | 国产一级毛片yw| 熟女日韩精品2区| 欧美日韩一区二区三区在线视频| 国产人人射| 99在线观看精品视频| 九九视频在线免费观看| 色偷偷综合网| 亚洲欧美国产五月天综合| 欧美激情一区二区三区成人| av在线无码浏览| 久久特级毛片| 激情在线网| 国产二级毛片| 国产午夜人做人免费视频中文| 3344在线观看无码| 久久综合九色综合97网| 久久久受www免费人成| 国内精自视频品线一二区| 亚洲天堂伊人| 精品人妻无码中字系列| 丰满人妻中出白浆| 亚洲一级无毛片无码在线免费视频 | 91福利免费视频| 亚洲第一天堂无码专区| 日本三级精品| 国产精品任我爽爆在线播放6080 | 亚洲第一色网站| 国产免费a级片| 伊人久久影视| 无码久看视频| 亚洲天堂网2014| 亚洲美女一区| 国产精品一区在线麻豆| 伊人91在线| 国产第三区| 免费在线看黄网址| 亚洲成a∧人片在线观看无码| 日韩黄色精品| 人妻无码中文字幕第一区| 免费欧美一级| 国产成人免费观看在线视频|