A.は、すべてのタイルを取得します
以下のコード、各記録ブロックテーブルを介して、次いで得られたブロック名は、JSは、以下:
VaRのデータベース= mxOcx.GetDatabase()。 VAR blkTab = database.GetBlockTable()。 VAR ITER = blkTab.NewIterator()。 以下のための(!; iter.Step(); iter.Done()) { た blkRec = iter.GetRecordは(); 警告(blkRec.Name)。 }
指定されたブロック名は、現在のデータベースを解析B.
VaRのデータベース= mxOcx.GetDatabase()。 VAR sBlkName = "木" 。 もし(database.GetBlockTable()。(sBlkName)HAS) { アラート(「ブロック名が指定された」); //が挿入されている。 } 他{ アラート(「ブロック名を指定していません」) }
C.は、1名のタイルの下にすべてのエンティティをトラバース
VaRのデータベース= mxOcx.GetDatabase(); VAR sBlkName = "木" ; VAR blkRec = database.GetBlockTable()GetAt機能(sBlkName);. VAR ITER = blkRec.NewIterator(); IF(ITER == nullの) リターン; VAR INUM = 0 ; // すべてのエンティティによるサイクル のために(;!iter.Done(); iter.Step(trueに、falseに)) { // 取得し、現在のエンティティトラバーサー VAR ENT = iter.GetEntity(); 警告(ent.ObjectName)。 ノブ ++ ; } 警告(iNum.ToString());
D.は、すべてのエンティティの現在のスペースを取得します
現在のブロックテーブルレコードを取得し、各オブジェクトを取るために、ブロックテーブルのレコードを横断する方法を次のコードに示すように、オブジェクトの種類を決定し、オブジェクト属性データを得ます。
だっ mxUtility = mxOcx.NewUtilityは、 // 現在のペーパー空間の取得 VAR blkRec = )(mxOcx.GetDatabase()CurrentSpaceを; //は現在のトラバーストラバース描画するためのスペースを作成 VAR ITER = ; blkRec.NewIterator() IF(ITER == nullの) リターンを。 // エンティティのすべてのID配列。 VAR aryIdは= 新しい新しい配列を(); VAR iLineNum = 0 ; // すべてのエンティティによってサイクル 用(;!iter.Done(); iter.Step(真、偽)) { // 現在のエンティティトラバーサーの取得 VAR ENT = iter.GetEntityを(); IF(ENT == nullの) 続行。 // 取得したIDエンティティ aryId.push(ent.ObjectID)。 VAR C = aryId.length。 console.log(C); もし(ent.ObjectName == "McDbLine" ) { // 現在のエンティティは、まっすぐである VARライン= ENT。 LINENUM ++ ; } それ以外の 場合(ent.ObjectName == "McDbBlockReference" ) { // 現在のエンティティは、参照ブロックである VAR blkRef = ENT; のための(VAR J = 0; J <blkRef.AttributeCount; J ++ ) { // 取得し、すべての属性参照ブロック VAR Attribに= blkRef.AttributeItem(J)。 mxUtility.Prompt( "n個のタグ:" + attrib.Tag + "テキスト:" + attrib.TextString)。 } } } だったSTは、 ST = + iLineNum + "直線" + aryId.length + "を含むエンティティを、" "発見" 。 警告(ST);