BIM VILLAGE

Version 3.0.1

SampleListIfcSTEPEntity

Overview

This programming manual in C# offers a practical demonstration of how to create an list of the Entity in a model.

Sample code

For example:

Name Value
EntityName IfcColumn
var app = new Beaver.BcadApplication();
var doc = app.ActiveDocument;
if (doc == null)
    doc = app.Documents.Add();
var stp = doc.STEPDocument;

List<List<string>>GetAttributeRecs(STEPEntity entity)
{
	var lists =new List<List<string>>();
	{
		var list =new List<string>(); {
			list.Add(string.Format("ENTITY {0}", entity.Name));
			list.Add("");
			list.Add("");
			list.Add("");
			list.Add("");
			list.Add("");
			list.Add("");
		}
		lists.Add(list);
	}
	foreach (var attrDesc in entity.AttrDescs) {
		var list =new List<string>(); {
			list.Add("");
			list.Add(attrDesc.Name);
			list.Add(attrDesc.TypeName);
			list.Add(attrDesc.IsAggregates.ToString());
			list.Add(attrDesc.IsOptional.ToString());
			list.Add(attrDesc.TypeString);
			list.Add(attrDesc.Description);
		}
		lists.Add(list);
	}
	if (entity.InvAttrDescs.Count>0){
		{
			var list =new List<string>(); {
				list.Add("INVERSE");
				list.Add("");
				list.Add("");
				list.Add("");
				list.Add("");
				list.Add("");
				list.Add("");
			}
			lists.Add(list);
		}
		foreach (var invAttrDesc in entity.InvAttrDescs) {
			var list =new List<string>(); {
				list.Add("");
				list.Add(invAttrDesc.Name);
				list.Add(invAttrDesc.TypeName);
				list.Add(invAttrDesc.IsAggregates.ToString());
				list.Add(invAttrDesc.IsOptional.ToString());
				list.Add(invAttrDesc.TypeString);
				list.Add(invAttrDesc.Description);
			}
			lists.Add(list);
		}
	}
	foreach (var baseEntity in entity.BaseEntities) {
		var baseLists = GetAttributeRecs(baseEntity);
		foreach (var baseList in baseLists)
			lists.Add(baseList);
	}
	return lists;
}

var header = new List<string>(); {
	header.Add("Entity");
	header.Add("Name");
	header.Add("TypeName");
	header.Add("IsAggregates");
	header.Add("IsOptional");
	header.Add("TypeString");
	header.Add("Description");
}
m_gridView.Rows.Clear();
m_gridView.Columns.Clear();
m_gridView.ColumnCount = header.Count;
for (int i = 0; i < m_gridView.ColumnCount; i++) {
	m_gridView.Columns[i].HeaderText = header[i];
	m_gridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
}
var entity = stp.Entities.FindEntity(Config.kInstance.EntityName);
if (entity == null) {
	throw new Exception(string.Format("Unable to find entity \"{0}\"", Config.kInstance.EntityName));
}
var recs = GetAttributeRecs(entity);
foreach (var rec in recs)
	m_gridView.Rows.Add(rec.ToArray());
			

© 2019 - 2022 BIM VILLAGE.