嗨,我想知道如何使用C访问VisibilityState#
这是我在谷歌搜索中找到的代码:
- [CommandMethod("DBP")]
- static public void DynamicBlockProps()
- {
- Document doc =
- Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- PromptStringOptions pso =
- new PromptStringOptions(
- "\nEnter dynamic block name or enter to select: "
- );
- pso.AllowSpaces = true;
- PromptResult pr = ed.GetString(pso);
- if (pr.Status != PromptStatus.OK)
- return;
- Transaction tr =
- db.TransactionManager.StartTransaction();
- using (tr)
- {
- BlockReference br = null;
- // If a null string was entered allow entity selection
- if (pr.StringResult == "")
- {
- // Select a block reference
- PromptEntityOptions peo =
- new PromptEntityOptions(
- "\nSelect dynamic block reference: "
- );
- peo.SetRejectMessage("\nEntity is not a block.");
- peo.AddAllowedClass(typeof(BlockReference), false);
- PromptEntityResult per =
- ed.GetEntity(peo);
- if (per.Status != PromptStatus.OK)
- return;
- // Access the selected block reference
- br =
- tr.GetObject(
- per.ObjectId,
- OpenMode.ForRead
- ) as BlockReference;
- }
- else
- {
- // Otherwise we look up the block by name
- BlockTable bt =
- tr.GetObject(
- db.BlockTableId,
- OpenMode.ForRead) as BlockTable;
- if (!bt.Has(pr.StringResult))
- {
- ed.WriteMessage(
- "\nBlock "" + pr.StringResult + "" does not exist."
- );
- return;
- }
- // Create a new block reference referring to the block
- br =
- new BlockReference(
- new Point3d(),
- bt[pr.StringResult]
- );
- }
- BlockTableRecord btr =
- (BlockTableRecord)tr.GetObject(
- br.DynamicBlockTableRecord,
- OpenMode.ForRead
- );
- // Call our function to display the block properties
- DisplayDynBlockProperties(ed, br, btr.Name);
- // Committing is cheaper than aborting
- tr.Commit();
- }
- }
- private static void DisplayDynBlockProperties(
- Editor ed, BlockReference br, string name
- )
- {
- // Only continue is we have a valid dynamic block
- if (br != null && br.IsDynamicBlock)
- {
- ed.WriteMessage(
- "\nDynamic properties for "{0}"\n",
- name
- );
- // Get the dynamic block's property collection
-
- DynamicBlockReferencePropertyCollection pc =
- br.DynamicBlockReferencePropertyCollection;
-
- // Loop through, getting the info for each property
|