定義ファイルにアクセスするには、アドインのコードで次の手順を実行します。
次のリストには、前の図のクラスとメソッドについての詳細情報が記載されています。
共有パラメータ ファイルはテキスト ファイルであるため、コードを使用して作成したり、手動で作成することができます。
|
コード領域 22-3: 共有パラメータ ファイルを作成 |
private void CreateExternalSharedParamFile(string sharedParameterFile)
{
System.IO.FileStream fileStream = System.IO.File.Create(sharedParameterFile);
fileStream.Close();
}
|
Revit では多くの共有パラメータ ファイルを作成できるため、アクセスしたいファイルや外部パラメータを明確に識別する必要があります。次の 2 つの手順は、既存の共有パラメータ ファイルへのアクセス方法を示しています。
共有パラメータ ファイルのパスを、次のコードにあるように app.Options.SharedParametersFilename に設定し、Autodesk.Revit.Application.OpenSharedParameterFile メソッドを呼び出します。
|
コード領域 22-4: 外部パラメータ ファイルから定義ファイルを取得 |
private DefinitionFile SetAndOpenExternalSharedParamFile(
Autodesk.Revit.ApplicationServices.Application application, string sharedParameterFile)
{
// set the path of shared parameter file to current Revit
application.Options.SharedParametersFilename = sharedParameterFile;
// open the file
return application.OpenSharedParameterFile();
}
|
次の例は、パラメータ エントリを移動し、その結果をメッセージ ボックスで表示する方法を示しています。
|
コード領域 22-5: パラメータ エントリを移動 |
private void ShowDefinitionFileInfo(DefinitionFile myDefinitionFile)
{
StringBuilder fileInformation = new StringBuilder(500);
// get the file name
fileInformation.AppendLine("File Name: " + myDefinitionFile.Filename);
// iterate the Definition groups of this file
foreach (DefinitionGroup myGroup in myDefinitionFile.Groups)
{
// get the group name
fileInformation.AppendLine("Group Name: " + myGroup.Name);
// iterate the difinitions
foreach (Definition definition in myGroup.Definitions)
{
// get definition name
fileInformation.AppendLine("Definition Name: " + definition.Name);
}
}
TaskDialog.Show("Revit", fileInformation.ToString());
}
|
次の例は、パラメータ定義グループの所有者を変更する方法を示します。
|
コード領域 22-6: パラメータ定義グループの所有者を変更 |
private void ReadEditExternalParam(DefinitionFile file)
{
// get ExternalDefinition from shared parameter file
DefinitionGroups myGroups = file.Groups;
DefinitionGroup myGroup = myGroups.get_Item("MyGroup");
if (null == myGroup)
return;
Definitions myDefinitions = myGroup.Definitions;
ExternalDefinition myExtDef =
myDefinitions.get_Item("MyParam") as ExternalDefinition;
if (null == myExtDef)
return;
StringBuilder strBuilder = new StringBuilder();
// iterate every property of the ExternalDefinition
strBuilder.AppendLine("GUID: " + myExtDef.GUID.ToString())
.AppendLine("Name: " + myExtDef.Name)
.AppendLine("OwnerGroup: " + myExtDef.OwnerGroup.Name)
.AppendLine("Parameter Group" + myExtDef.ParameterGroup.ToString())
.AppendLine("Parameter Type" + myExtDef.ParameterType.ToString())
.AppendLine("Is Visible: " + myExtDef.Visible.ToString());
TaskDialog.Show("Revit", strBuilder.ToString());
// change the OwnerGroup of the ExternalDefinition
myExtDef.OwnerGroup = myGroups.get_Item("AnotherGroup");
}
|