当前位置: 首页>>代码示例>>C#>>正文


C# ObjectId.Open方法代码示例

本文整理汇总了C#中ObjectId.Open方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectId.Open方法的具体用法?C# ObjectId.Open怎么用?C# ObjectId.Open使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObjectId的用法示例。


在下文中一共展示了ObjectId.Open方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AddMarkToPanelBtr

 public void AddMarkToPanelBtr(string panelMark, ObjectId idBtr)
 {
     using (BlockTableRecord btr = idBtr.Open(OpenMode.ForWrite) as BlockTableRecord)
      {
     foreach (ObjectId idEnt in btr)
     {
        if (idEnt.ObjectClass.Name == "AcDbText" || idEnt.ObjectClass.Name == "AcDbHatch")
        {
           using (Entity entity = idEnt.Open( OpenMode.ForRead, false, true) as Entity)
           {
              if (string.Equals(entity.Layer, Settings.Default.LayerMarks, StringComparison.OrdinalIgnoreCase))
              {
                 try
                 {
                    entity.UpgradeOpen();
                    entity.Erase(true);
                 }
                 catch (Exception ex)
                 {
                    Logger.Log.Error(ex, "AddMarkToPanelBtr - entity.UpgradeOpen();");
                 }
              }
           }
        }
     }
     if (panelMark.EndsWith(")"))
     {
        CreateCaptionMarkAr(panelMark, btr);
     }
     else
     {
        CreateCaptionMarkSb(panelMark, btr);
     }
      }
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:35,代码来源:Caption.cs

示例2: AddError

 public static void AddError(string message, ObjectId idEnt)
 {
    using (var ent = idEnt.Open(OpenMode.ForRead) as Entity)
    {
       AddError(message, ent);
    }
 }      
开发者ID:vildar82,项目名称:AR.Misc,代码行数:7,代码来源:Inspector.cs

示例3: Isoline

 public Isoline(ObjectId id)
 {
    IdCurve = id;
    using (var curve = id.Open(OpenMode.ForRead, false, true) as Curve)
    {
       getIsolineProperties(curve);
    }
 }
开发者ID:vildar82,项目名称:GP_Isoline,代码行数:8,代码来源:Isoline.cs

示例4: LayerInfo

 public LayerInfo(ObjectId idLayer)
 {
     using (var layer = idLayer.Open( OpenMode.ForRead)as LayerTableRecord)
     {
         Name = layer.Name;
         Color = layer.Color;
         LineWeight = layer.LineWeight;
         IsPlotable = true;
     }
 }
开发者ID:vildar82,项目名称:AcadLib,代码行数:10,代码来源:LayerInfo.cs

示例5: checkBlock

 private ObjectId checkBlock(ObjectId idBlRef, string errMsg, out bool isOk)
 {
     if (idBlRef.IsNull)
      {
     Inspector.AddError(errMsg, icon: System.Drawing.SystemIcons.Error);
     isOk = false;
     return ObjectId.Null;
      }
      using (var blRefCover = idBlRef.Open(OpenMode.ForRead, false, true) as BlockReference)
      {
     isOk = true;
     return blRefCover.BlockTableRecord;
      }
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:14,代码来源:CoverAndTitle.cs

示例6: CopyBtr

 ///// <summary>
 ///// Копирование определенич блока из внешнего чертежа
 ///// </summary>
 ///// <param name="blName">Имя блока</param>
 ///// <param name="fileDrawing">Полный путь к чертежу из которого копируется блок</param>
 ///// <param name="destDb">База чертежа в который копируетсяя блок</param>
 ///// <exception cref="Exception">Если нет блока в файле fileDrawing.</exception>
 //public static void CopyBlockFromExternalDrawing(string blName, string fileDrawing, Database destDb)
 //{
 //   using (var extDb = new Database(false, true))
 //   {
 //      extDb.ReadDwgFile(fileDrawing, System.IO.FileShare.ReadWrite, true, "");
 //      ObjectIdCollection ids = new ObjectIdCollection();
 //      using (var t = extDb.TransactionManager.StartTransaction())
 //      {
 //         var bt = (BlockTable)t.GetObject(extDb.BlockTableId, OpenMode.ForRead);
 //         if (bt.Has(blName))
 //         {
 //            ids.Add(bt[blName]);
 //         }
 //         else
 //         {
 //            throw new Exception(string.Format("Не найдено определение блока {0} в файле {1}", blName, fileDrawing));
 //         }
 //         t.Commit();
 //      }
 //      // Если нашли – добавим блок
 //      if (ids.Count != 0)
 //      {
 //         // Получаем текущую базу чертежа
 //         IdMapping iMap = new IdMapping();
 //         destDb.WblockCloneObjects(ids, destDb.BlockTableId, iMap, DuplicateRecordCloning.Ignore, false);
 //      }
 //   }
 //}
 /// <summary>
 /// Копирование определения блока и добавление его в таблицу блоков.
 /// </summary>
 /// <param name="idBtrSource">Копируемый блок</param>
 /// <param name="name">Имя для нового блока</param>
 /// <returns>ID скопированного блока, или существующего в чертеже с таким именем.</returns>
 public static ObjectId CopyBtr(ObjectId idBtrSource, string name)
 {
     ObjectId idBtrCopy = ObjectId.Null;
      Database db = idBtrSource.Database;
      ObjectIdCollection ids = new ObjectIdCollection ();
      using (var btrSource = idBtrSource.Open(OpenMode.ForRead) as BlockTableRecord)
      {
     using (var bt = db.BlockTableId.Open( OpenMode.ForRead) as BlockTable)
     {
        //проверка имени блока
        if (bt.Has(name))
        {
           idBtrCopy = bt[name];
        }
        else
        {
           using (var btrCopy = btrSource.Clone() as BlockTableRecord)
           {
              btrCopy.Name = name;
              bt.UpgradeOpen();
              idBtrCopy = bt.Add(btrCopy);
              // Объекты в блоке для копирования
              foreach (ObjectId idEnt in btrSource)
              {
                 ids.Add(idEnt);
              }
           }
        }
     }
      }
      if (ids.Count>0)
      {
     // Копирование объектов блока
     IdMapping map = new IdMapping();
     db.DeepCloneObjects(ids, idBtrCopy, map, false);
      }
      return idBtrCopy;
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:79,代码来源:Block.cs

示例7: GetAttrDefs

        public static List<AttributeRefInfo> GetAttrDefs(ObjectId idBtr)
        {
            List<AttributeRefInfo> resVal = new List<AttributeRefInfo>();

             if (!idBtr.IsNull)
             {
            using (var btr = idBtr.Open(OpenMode.ForRead) as BlockTableRecord)
            {
               foreach (var idEnt in btr)
               {
                  using (var attrDef = idEnt.Open(OpenMode.ForRead, false, true) as AttributeDefinition)
                  {
                     if (attrDef != null)
                     {
                        var attrDefInfo = new AttributeRefInfo((DBText)attrDef);
                        resVal.Add(attrDefInfo);
                     }
                  }
               }
            }
             }
             return resVal;
        }
开发者ID:vildar82,项目名称:AcadLib,代码行数:23,代码来源:AttributeRefInfo.cs

示例8: Check

        public void Check(ObjectId idBlRefFrame)
        {
            if (idBlRefFrame.IsNull)
             {
            Inspector.AddError($"Блок '{Settings.Default.BlockFrameName}' не найден.", icon: System.Drawing.SystemIcons.Error);
            return;
             }

             using (var blRefFrame = idBlRefFrame.Open(OpenMode.ForRead, false, true) as BlockReference)
             {
            _idBtrFrame = blRefFrame.BlockTableRecord;
            if (blRefFrame.AttributeCollection == null)
            {
               Inspector.AddError($"Блок '{Settings.Default.BlockFrameName}' не соответствует требованиям. У него должны быть атрибуты: Наименование, Вид, Лист.",
                                 icon: System.Drawing.SystemIcons.Error);
               return;
            }
            _attrs = new Dictionary<string, string>();
            foreach (ObjectId idAtrRef in blRefFrame.AttributeCollection)
            {
               using (var atrRef = idAtrRef.Open(OpenMode.ForRead, false, true) as AttributeReference)
               {
                  string key = atrRef.Tag.ToUpper();
                  if (!_attrs.ContainsKey(key))
                  {
                     string text;
                     if (atrRef.IsMTextAttribute)
                     {
                        text = atrRef.MTextAttribute.Contents;
                     }
                     else
                     {
                        text = atrRef.TextString;
                     }
                     _attrs.Add(key, text);
                  }
               }
            }

            string errMsg = string.Empty;
            if (!_attrs.ContainsKey("ВИД"))
            {
               errMsg += "Не найден атибут ВИД. ";
            }
            if (!_attrs.ContainsKey("НАИМЕНОВАНИЕ"))
            {
               errMsg += "Не найден атибут НАИМЕНОВАНИЕ. ";
            }
            if (!_attrs.ContainsKey("ЛИСТ"))
            {
               errMsg += "Не найден атибут ЛИСТ. ";
            }
            if (!string.IsNullOrEmpty(errMsg))
            {
               Inspector.AddError($"Ошибки в блоке {Settings.Default.BlockFrameName}: {blRefFrame}", icon: System.Drawing.SystemIcons.Error);
            }
            else
            {
               IsOk = true;
            }
             }
        }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:62,代码来源:FrameSheet.cs

示例9: getFirstBlRefInModel

 private ObjectId getFirstBlRefInModel(ObjectId idBtrFrame, ObjectId msId)
 {
     using (var btr = idBtrFrame.Open( OpenMode.ForRead) as BlockTableRecord)
      {
     var idsBlRef = btr.GetBlockReferenceIds(true, false);
     foreach (ObjectId idBlRef in idsBlRef)
     {
        using (var blRef = idBlRef.Open( OpenMode.ForRead, false, true) as BlockReference)
        {
           if (blRef.OwnerId == msId)
           {
              return idBlRef;
           }
        }
     }
      }
      return ObjectId.Null;
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:18,代码来源:AlbumInfo.cs

示例10: DefineGeom

 public void DefineGeom(ObjectId idBtrPanelAkr)
 {
     string blName;
     _extentsTiles = new Extents3d();
     using (var btrAkr = idBtrPanelAkr.Open(OpenMode.ForRead) as BlockTableRecord)
     {
         blName = btrAkr.Name;
         foreach (ObjectId idEnt in btrAkr)
         {
             if (idEnt.ObjectClass.Name == "AcDbBlockReference")
             {
                 using (var blRefTile = idEnt.Open(OpenMode.ForRead, false, true) as BlockReference)
                 {
                     if (string.Equals(blRefTile.GetEffectiveName(), Settings.Default.BlockTileName, StringComparison.CurrentCultureIgnoreCase))
                     {
                         _extentsTiles.AddExtents(blRefTile.GeometricExtents);
                     }
                 }
             }
         }
         Image = AcadLib.Blocks.Visual.BlockPreviewHelper.GetPreview(btrAkr);
     }
     HeightPanelByTile = _extentsTiles.MaxPoint.Y - _extentsTiles.MinPoint.Y + Settings.Default.TileSeam;
     double shiftEnd = 0;
     if (blName.IndexOf(Settings.Default.EndLeftPanelSuffix, StringComparison.OrdinalIgnoreCase) != -1)
     {
         shiftEnd = -Settings.Default.FacadeEndsPanelIndent * 0.5;// 445;// Торец слева - сдвинуть влево FacadeEndsPanelIndent
     }
     else if (blName.IndexOf(Settings.Default.EndRightPanelSuffix, StringComparison.OrdinalIgnoreCase) != -1)
     {
         shiftEnd = -Settings.Default.FacadeEndsPanelIndent * 0.5;// 445;// Торец спрва - сдвинуть вправо
     }
     var test = _extentsTiles.MaxPoint.X - _extentsTiles.MinPoint.X;
     //_distToCenterFromBase = (_extentsTiles.MaxPoint.X - _extentsTiles.MinPoint.X) * 0.5 + shiftEnd;
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:35,代码来源:PanelAKR.cs

示例11: getAttrDef

 private ObjectId getAttrDef(ObjectId idBtr, string tag)
 {
     ObjectId idAttrDef = ObjectId.Null;
      if (!idBtr.IsNull)
      {
     using (var btr = idBtr.Open(OpenMode.ForRead) as BlockTableRecord)
     {
        foreach (ObjectId idEnt in btr)
        {
           using (var attrDef = idEnt.Open(OpenMode.ForRead, false, true) as AttributeDefinition)
           {
              if (attrDef == null) continue;
              if (!attrDef.Constant && attrDef.Tag.Equals(tag, StringComparison.OrdinalIgnoreCase))
              {
                 idAttrDef = idEnt;
                 break;
              }
           }
        }
     }
      }
      return idAttrDef;
 }
开发者ID:vildar82,项目名称:PanelColorAlbum,代码行数:23,代码来源:CreatePanelsBtrEnvironment.cs

示例12: GetChilds

 /// <summary>
 /// Поиск квартир в чертеже.
 /// </summary>      
 public static List<RevitBlock> GetChilds(ObjectId idBtr, string patternBlockNameMatch)
 {
     List<RevitBlock> places = new List<RevitBlock>();
      using (var btrParent = idBtr.Open(OpenMode.ForRead) as BlockTableRecord)
      {
     foreach (ObjectId idEnt in btrParent)
     {
        using (var blRefChild = idEnt.Open(OpenMode.ForRead, false, true) as BlockReference)
        {
           if (blRefChild != null)
           {
              string blName = blRefChild.GetEffectiveName();
              if (IsRevitBlockName(blName, patternBlockNameMatch))
              {
                 try
                 {
                    var place = new RevitBlock(blRefChild, blName);
                    places.Add(place);
                 }
                 catch (System.Exception ex)
                 {
                    Inspector.AddError($"Ошибка считывания блока квартиры {blName} - {ex.Message}.",
                       blRefChild, icon: SystemIcons.Error);
                 }
              }
              else
              {
                 Inspector.AddError($"Отфильтрован блок квартиры '{blName}', имя не соответствует " +
                    $"'{Options.Instance.BlockApartmentNameMatch}",
                    blRefChild, icon: SystemIcons.Information);
              }
           }
        }
     }
      }
      return places;
 }
开发者ID:vildar82,项目名称:AR_ApartmentsBase,代码行数:40,代码来源:RevitBlock.cs


注:本文中的ObjectId.Open方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。