added Revit 2022 SDK minus except *rvt and *rfa

This commit is contained in:
Jeremy Tammik
2021-04-20 11:36:21 +02:00
parent 1133a82dc5
commit 7e327986e8
3034 changed files with 1245318 additions and 0 deletions
@@ -0,0 +1,81 @@
//
// (C) Copyright 2003-2019 by Autodesk, Inc.
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
using System.Reflection;
using System.Runtime.CompilerServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Copyright © Autodesk, Inc. 2009")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]
//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
// (*) If no key is specified, the assembly is not signed.
// (*) KeyName refers to a key that has been installed in the Crypto Service
// Provider (CSP) on your machine. KeyFile refers to a file which contains
// a key.
// (*) If the KeyFile and the KeyName values are both specified, the
// following processing occurs:
// (1) If the KeyName can be found in the CSP, that key is used.
// (2) If the KeyName does not exist and the KeyFile does exist, the key
// in the KeyFile is installed into the CSP and used.
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
// When specifying the KeyFile, the location of the KeyFile should be
// relative to the project output directory which is
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
// located in the project directory, you would specify the AssemblyKeyFile
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
// documentation for more information on this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<Assembly>CreateBeamsColumnsBraces.dll</Assembly>
<ClientId>74e3d44b-5ad6-4c58-a3f1-3107c4108fc4</ClientId>
<FullClassName>Revit.SDK.Samples.CreateBeamsColumnsBraces.CS.Command</FullClassName>
<Text>Create beams, columns and braces (CS)</Text>
<Description>Create beams, columns and braces.</Description>
<VisibilityMode>AlwaysVisible</VisibilityMode>
<VendorId>ADSK</VendorId>
<VendorDescription>Autodesk, www.autodesk.com</VendorDescription>
</AddIn>
</RevitAddIns>
@@ -0,0 +1,497 @@
//
// (C) Copyright 2003-2019 by Autodesk, Inc.
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
using System;
using System.IO;
using System.Collections;
using System.Windows.Forms;
using Autodesk.Revit;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB.Events;
using Autodesk.Revit.DB.Structure;
using Autodesk.Revit.Creation;
using ELEMENT = Autodesk.Revit.DB.Element;
using STRUCTURALTYPE = Autodesk.Revit.DB.Structure.StructuralType;
namespace Revit.SDK.Samples.CreateBeamsColumnsBraces.CS
{
/// <summary>
/// Create Beams, Columns and Braces according to user's input information
/// </summary>
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(Autodesk.Revit.Attributes.RegenerationOption.Manual)]
[Autodesk.Revit.Attributes.Journaling(Autodesk.Revit.Attributes.JournalingMode.NoCommandData)]
public class Command : IExternalCommand
{
Autodesk.Revit.UI.UIApplication m_revit = null;
ArrayList m_columnMaps = new ArrayList(); //list of columns' type
ArrayList m_beamMaps = new ArrayList(); //list of beams' type
ArrayList m_braceMaps = new ArrayList(); //list of braces' type
SortedList levels = new SortedList(); //list of list sorted by their elevations
Autodesk.Revit.DB.UV[,] m_matrixUV; //2D coordinates of matrix
/// <summary>
/// list of all type of columns
/// </summary>
public ArrayList ColumnMaps
{
get
{
return m_columnMaps;
}
}
/// <summary>
/// list of all type of beams
/// </summary>
public ArrayList BeamMaps
{
get
{
return m_beamMaps;
}
}
/// <summary>
/// list of all type of braces
/// </summary>
public ArrayList BraceMaps
{
get
{
return m_braceMaps;
}
}
/// <summary>
/// Implement this method as an external command for Revit.
/// </summary>
/// <param name="revit">An object that is passed to the external application
/// which contains data related to the command,
/// such as the application object and active view.</param>
/// <param name="message">A message that can be set by the external application
/// which will be displayed if a failure or cancellation is returned by
/// the external command.</param>
/// <param name="elements">A set of elements to which the external application
/// can add elements that are to be highlighted in case of failure or cancellation.</param>
/// <returns>Return the status of the external command.
/// A result of Succeeded means that the API external method functioned as expected.
/// Cancelled can be used to signify that the user cancelled the external operation
/// at some point. Failure should be returned if the application is unable to proceed with
/// the operation.</returns>
public Autodesk.Revit.UI.Result Execute(Autodesk.Revit.UI.ExternalCommandData revit, ref string message, Autodesk.Revit.DB.ElementSet elements)
{
m_revit = revit.Application;
Transaction tran = new Transaction(m_revit.ActiveUIDocument.Document, "CreateBeamsColumnsBraces");
tran.Start();
try
{
//if initialize failed return Result.Failed
bool initializeOK = Initialize();
if (!initializeOK)
{
tran.RollBack();
return Autodesk.Revit.UI.Result.Failed;
}
using (CreateBeamsColumnsBracesForm displayForm = new CreateBeamsColumnsBracesForm(this))
{
if (displayForm.ShowDialog() != DialogResult.OK)
{
tran.RollBack();
return Autodesk.Revit.UI.Result.Cancelled;
}
}
tran.Commit();
return Autodesk.Revit.UI.Result.Succeeded;
}
catch (Exception ex)
{
message = ex.Message;
tran.RollBack();
return Autodesk.Revit.UI.Result.Failed;
}
}
/// <summary>
/// check the number of floors is less than the number of levels
/// create beams, columns and braces according to selected types
/// </summary>
/// <param name="columnObject">type of column</param>
/// <param name="beamObject">type of beam</param>
/// <param name="braceObject">type of brace</param>
/// <param name="floorNumber">number of floor</param>
/// <returns>number of floors is less than the number of levels and create successfully then return true</returns>
public bool AddInstance(object columnObject, object beamObject, object braceObject, int floorNumber)
{
//whether floor number less than levels number
if (floorNumber >= levels.Count)
{
TaskDialog.Show("Revit", "The number of levels must be added.");
return false;
}
FamilySymbol columnSymbol = columnObject as FamilySymbol;
FamilySymbol beamSymbol = beamObject as FamilySymbol;
FamilySymbol braceSymbol = braceObject as FamilySymbol;
//any symbol is null then the command failed
if (null == columnSymbol || null == beamSymbol || null == braceSymbol)
{
return false;
}
try
{
for (int k = 0; k < floorNumber; k++) //iterate levels from lower one to higher
{
Level baseLevel = levels.GetByIndex(k) as Level;
Level topLevel = levels.GetByIndex(k + 1) as Level;
int matrixXSize = m_matrixUV.GetLength(0); //length of matrix's x range
int matrixYSize = m_matrixUV.GetLength(1); //length of matrix's y range
//iterate coordinate both in x direction and y direction and create beams and braces
for (int j = 0; j < matrixYSize; j++)
{
for (int i = 0; i < matrixXSize; i++)
{
//create beams and braces in x direction
if (i != (matrixXSize - 1))
{
PlaceBrace(m_matrixUV[i, j], m_matrixUV[i + 1, j], baseLevel, topLevel, braceSymbol, true);
}
//create beams and braces in y direction
if (j != (matrixYSize - 1))
{
PlaceBrace(m_matrixUV[i, j], m_matrixUV[i, j + 1], baseLevel, topLevel, braceSymbol, false);
}
}
}
for (int j = 0; j < matrixYSize; j++)
{
for (int i = 0; i < matrixXSize; i++)
{
//create beams and braces in x direction
if (i != (matrixXSize - 1))
{
PlaceBeam(m_matrixUV[i, j], m_matrixUV[i + 1, j], baseLevel, topLevel, beamSymbol);
}
//create beams and braces in y direction
if (j != (matrixYSize - 1))
{
PlaceBeam(m_matrixUV[i, j], m_matrixUV[i, j + 1], baseLevel, topLevel, beamSymbol);
}
}
}
//place column of this level
foreach (Autodesk.Revit.DB.UV point2D in m_matrixUV)
{
PlaceColumn(point2D, columnSymbol, baseLevel, topLevel);
}
}
}
catch
{
return false;
}
return true;
}
/// <summary>
/// generate 2D coordinates of matrix according to parameters
/// </summary>
/// <param name="xNumber">Number of Columns in the X direction</param>
/// <param name="yNumber">Number of Columns in the Y direction</param>
/// <param name="distance">Distance between columns</param>
public void CreateMatrix(int xNumber, int yNumber, double distance)
{
m_matrixUV = new Autodesk.Revit.DB.UV[xNumber, yNumber];
for (int i = 0; i < xNumber; i++)
{
for (int j = 0; j < yNumber; j++)
{
m_matrixUV[i, j] = new Autodesk.Revit.DB.UV(i * distance, j * distance);
}
}
}
/// <summary>
/// iterate all the symbols of levels, columns, beams and braces
/// </summary>
/// <returns>A value that signifies if the initialization was successful for true or failed for false</returns>
private bool Initialize()
{
try
{
FilteredElementIterator i = new FilteredElementCollector(m_revit.ActiveUIDocument.Document).OfClass(typeof(Level)).GetElementIterator();
i.Reset();
while (i.MoveNext())
{
//add level to list
Level level = i.Current as Level;
if (null != level)
{
levels.Add(level.Elevation, level);
}
}
i = new FilteredElementCollector(m_revit.ActiveUIDocument.Document).OfClass(typeof(Family)).GetElementIterator();
while (i.MoveNext())
{
Family f = i.Current as Family;
if (f != null)
{
foreach (ElementId elementId in f.GetFamilySymbolIds())
{
object symbol = m_revit.ActiveUIDocument.Document.GetElement(elementId);
FamilySymbol familyType = symbol as FamilySymbol;
if (null == familyType)
{
continue;
}
if (null == familyType.Category)
{
continue;
}
//add symbols of beams and braces to lists
string categoryName = familyType.Category.Name;
if ("Structural Framing" == categoryName)
{
m_beamMaps.Add(new SymbolMap(familyType));
m_braceMaps.Add(new SymbolMap(familyType));
}
else if ("Structural Columns" == categoryName)
{
m_columnMaps.Add(new SymbolMap(familyType));
}
}
}
}
}
catch
{
return false;
}
return true;
}
/// <summary>
/// create column of certain type in certain position
/// </summary>
/// <param name="point2D">2D coordinate of the column</param>
/// <param name="columnType">type of column</param>
/// <param name="baseLevel">the base level of the column</param>
/// <param name="topLevel">the top level of the column</param>
private void PlaceColumn(Autodesk.Revit.DB.UV point2D, FamilySymbol columnType, Level baseLevel, Level topLevel)
{
//create column of certain type in certain level and start point
Autodesk.Revit.DB.XYZ point = new Autodesk.Revit.DB.XYZ(point2D.U, point2D.V, 0);
STRUCTURALTYPE structuralType;
structuralType = Autodesk.Revit.DB.Structure.StructuralType.Column;
if (!columnType.IsActive)
columnType.Activate();
FamilyInstance column = m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(point, columnType, topLevel, structuralType);
//set base level & top level of the column
if (null != column)
{
Parameter baseLevelParameter = column.get_Parameter(Autodesk.Revit.DB.BuiltInParameter.FAMILY_BASE_LEVEL_PARAM);
Parameter topLevelParameter = column.get_Parameter(Autodesk.Revit.DB.BuiltInParameter.FAMILY_TOP_LEVEL_PARAM);
Parameter topOffsetParameter = column.get_Parameter(BuiltInParameter.FAMILY_TOP_LEVEL_OFFSET_PARAM);
Parameter baseOffsetParameter = column.get_Parameter(BuiltInParameter.FAMILY_BASE_LEVEL_OFFSET_PARAM);
if (null != baseLevelParameter)
{
Autodesk.Revit.DB.ElementId baseLevelId;
baseLevelId = baseLevel.Id;
baseLevelParameter.Set(baseLevelId);
}
if (null != topLevelParameter)
{
Autodesk.Revit.DB.ElementId topLevelId;
topLevelId = topLevel.Id;
topLevelParameter.Set(topLevelId);
}
if (null != topOffsetParameter)
{
topOffsetParameter.Set(0.0);
}
if (null != baseOffsetParameter)
{
baseOffsetParameter.Set(0.0);
}
}
}
/// <summary>
/// create beam of certain type in certain position
/// </summary>
/// <param name="point2D1">one point of the location line in 2D</param>
/// <param name="point2D2">another point of the location line in 2D</param>
/// <param name="baseLevel">the base level of the beam</param>
/// <param name="topLevel">the top level of the beam</param>
/// <param name="beamType">type of beam</param>
/// <returns>nothing</returns>
private void PlaceBeam(Autodesk.Revit.DB.UV point2D1, Autodesk.Revit.DB.UV point2D2, Level baseLevel, Level topLevel, FamilySymbol beamType)
{
double height = topLevel.Elevation;
Autodesk.Revit.DB.XYZ startPoint = new Autodesk.Revit.DB.XYZ(point2D1.U, point2D1.V, height);
Autodesk.Revit.DB.XYZ endPoint = new Autodesk.Revit.DB.XYZ(point2D2.U, point2D2.V, height);
Autodesk.Revit.DB.ElementId topLevelId = topLevel.Id;
Line line = Line.CreateBound(startPoint, endPoint);
STRUCTURALTYPE structuralType = Autodesk.Revit.DB.Structure.StructuralType.Beam;
if (!beamType.IsActive)
beamType.Activate();
m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(line, beamType, topLevel, structuralType);
}
/// <summary>
/// create brace of certain type in certain position between two adjacent columns
/// </summary>
/// <param name="point2D1">one point of the location line in 2D</param>
/// <param name="point2D2">another point of the location line in 2D</param>
/// <param name="baseLevel">the base level of the brace</param>
/// <param name="topLevel">the top level of the brace</param>
/// <param name="braceType">type of beam</param>
/// <param name="isXDirection">whether the location line is in x direction</param>
private void PlaceBrace(Autodesk.Revit.DB.UV point2D1, Autodesk.Revit.DB.UV point2D2, Level baseLevel, Level topLevel, FamilySymbol braceType, bool isXDirection)
{
//get the start points and end points of location lines of two braces
double topHeight = topLevel.Elevation;
double baseHeight = baseLevel.Elevation;
double middleElevation = (topHeight + baseHeight) / 2;
double middleHeight = (topHeight - baseHeight) / 2;
Autodesk.Revit.DB.XYZ startPoint = new Autodesk.Revit.DB.XYZ(point2D1.U, point2D1.V, middleElevation);
Autodesk.Revit.DB.XYZ endPoint = new Autodesk.Revit.DB.XYZ(point2D2.U, point2D2.V, middleElevation);
Autodesk.Revit.DB.XYZ middlePoint;
if (isXDirection)
{
middlePoint = new Autodesk.Revit.DB.XYZ((point2D1.U + point2D2.U) / 2, point2D2.V, topHeight);
}
else
{
middlePoint = new Autodesk.Revit.DB.XYZ(point2D2.U, (point2D1.V + point2D2.V) / 2, topHeight);
}
//create two brace and set their location line
STRUCTURALTYPE structuralType = Autodesk.Revit.DB.Structure.StructuralType.Brace;
Autodesk.Revit.DB.ElementId levelId = topLevel.Id;
Autodesk.Revit.DB.ElementId startLevelId = baseLevel.Id;
Autodesk.Revit.DB.ElementId endLevelId = topLevel.Id;
Line line1 = Line.CreateBound(startPoint, middlePoint);
if (!braceType.IsActive)
braceType.Activate();
FamilyInstance firstBrace = m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(line1, braceType, baseLevel, structuralType);
Parameter referenceLevel1 = firstBrace.get_Parameter(BuiltInParameter.INSTANCE_REFERENCE_LEVEL_PARAM);
if (null != referenceLevel1)
{
referenceLevel1.Set(levelId);
}
Line line2 = Line.CreateBound(endPoint, middlePoint);
FamilyInstance secondBrace = m_revit.ActiveUIDocument.Document.Create.NewFamilyInstance(line2, braceType, baseLevel, structuralType);
Parameter referenceLevel2 = secondBrace.get_Parameter(BuiltInParameter.INSTANCE_REFERENCE_LEVEL_PARAM);
if (null != referenceLevel2)
{
referenceLevel2.Set(levelId);
}
}
}
/// <summary>
/// assistant class contains the symbol and its name.
/// </summary>
public class SymbolMap
{
string m_symbolName = "";
FamilySymbol m_symbol = null;
/// <summary>
/// constructor without parameter is forbidden
/// </summary>
private SymbolMap()
{
}
/// <summary>
/// constructor
/// </summary>
/// <param name="symbol">family symbol</param>
public SymbolMap(FamilySymbol symbol)
{
m_symbol = symbol;
string familyName = "";
if (null != symbol.Family)
{
familyName = symbol.Family.Name;
}
m_symbolName = familyName + " : " + symbol.Name;
}
/// <summary>
/// SymbolName property
/// </summary>
public string SymbolName
{
get
{
return m_symbolName;
}
}
/// <summary>
/// ElementType property
/// </summary>
public FamilySymbol ElementType
{
get
{
return m_symbol;
}
}
}
}
@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{DAEB3B8B-72CD-475C-A648-EF50EC3C2FCA}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>CreateBeamsColumnsBraces</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>Library</OutputType>
<RootNamespace>Revit.SDK.Samples.CreateBeamsColumnsBraces.CS</RootNamespace>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<StartupObject>
</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>false</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>none</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<BaseAddress>285212672</BaseAddress>
<FileAlignment>4096</FileAlignment>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<BaseAddress>285212672</BaseAddress>
<Optimize>true</Optimize>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<FileAlignment>4096</FileAlignment>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.Drawing">
<Name>System.Drawing</Name>
</Reference>
<Reference Include="System.Windows.Forms">
<Name>System.Windows.Forms</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="CreateBeamsColumnsBraces.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="CreateBeamsColumnsBracesForm.cs">
<SubType>Form</SubType>
</Compile>
<EmbeddedResource Include="CreateBeamsColumnsBracesForm.resx">
<DependentUpon>CreateBeamsColumnsBracesForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(SolutionDir)VSProps\SDKSamples.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>set FILEFORSAMPLEREG="$(SolutionDir)..\..\..\..\Regression\API\SDKSamples\UpdateSampleDllForRegression.pl"
if exist %25FILEFORSAMPLEREG%25 perl %25FILEFORSAMPLEREG%25 $(ProjectExt) "$(ProjectPath)" "$(TargetPath)" "$(SolutionDir)"</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>
</Project>
@@ -0,0 +1,493 @@
//
// (C) Copyright 2003-2019 by Autodesk, Inc.
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted,
// provided that the above copyright notice appears in all copies and
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using Autodesk.Revit.UI;
namespace Revit.SDK.Samples.CreateBeamsColumnsBraces.CS
{
/// <summary>
/// UI
/// </summary>
public class CreateBeamsColumnsBracesForm : System.Windows.Forms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private System.Windows.Forms.Button OKButton;
private System.Windows.Forms.TextBox XTextBox;
private System.Windows.Forms.TextBox DistanceTextBox;
private System.Windows.Forms.TextBox YTextBox;
private System.Windows.Forms.ComboBox columnComboBox;
private System.Windows.Forms.ComboBox beamComboBox;
private System.Windows.Forms.ComboBox braceComboBox;
private System.Windows.Forms.Button cancelButton;
private System.Windows.Forms.TextBox floornumberTextBox;
private System.Windows.Forms.Label columnLabel;
private System.Windows.Forms.Label beamLabel;
private System.Windows.Forms.Label braceLabel;
private System.Windows.Forms.Label DistanceLabel;
private System.Windows.Forms.Label YLabel;
private System.Windows.Forms.Label XLabel;
private System.Windows.Forms.Label floornumberLabel;
private System.Windows.Forms.Label unitLabel;
// To store the datas
Command m_dataBuffer = null;
/// <summary>
/// constructor
/// </summary>
/// <param name="dataBuffer">the revit datas</param>
public CreateBeamsColumnsBracesForm(Command dataBuffer)
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
m_dataBuffer = dataBuffer;
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.OKButton = new System.Windows.Forms.Button();
this.XTextBox = new System.Windows.Forms.TextBox();
this.YTextBox = new System.Windows.Forms.TextBox();
this.DistanceTextBox = new System.Windows.Forms.TextBox();
this.columnComboBox = new System.Windows.Forms.ComboBox();
this.beamComboBox = new System.Windows.Forms.ComboBox();
this.braceComboBox = new System.Windows.Forms.ComboBox();
this.columnLabel = new System.Windows.Forms.Label();
this.beamLabel = new System.Windows.Forms.Label();
this.braceLabel = new System.Windows.Forms.Label();
this.floornumberTextBox = new System.Windows.Forms.TextBox();
this.DistanceLabel = new System.Windows.Forms.Label();
this.YLabel = new System.Windows.Forms.Label();
this.XLabel = new System.Windows.Forms.Label();
this.floornumberLabel = new System.Windows.Forms.Label();
this.cancelButton = new System.Windows.Forms.Button();
this.unitLabel = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// OKButton
//
this.OKButton.Location = new System.Drawing.Point(296, 208);
this.OKButton.Name = "OKButton";
this.OKButton.TabIndex = 8;
this.OKButton.Text = "&OK";
this.OKButton.Click += new System.EventHandler(this.OKButton_Click);
//
// XTextBox
//
this.XTextBox.Location = new System.Drawing.Point(16, 96);
this.XTextBox.Name = "XTextBox";
this.XTextBox.Size = new System.Drawing.Size(136, 20);
this.XTextBox.TabIndex = 2;
this.XTextBox.Text = "";
this.XTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.XTextBox_Validating);
//
// YTextBox
//
this.YTextBox.Location = new System.Drawing.Point(16, 152);
this.YTextBox.Name = "YTextBox";
this.YTextBox.Size = new System.Drawing.Size(136, 20);
this.YTextBox.TabIndex = 3;
this.YTextBox.Text = "";
this.YTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.YTextBox_Validating);
//
// DistanceTextBox
//
this.DistanceTextBox.Location = new System.Drawing.Point(16, 40);
this.DistanceTextBox.Name = "DistanceTextBox";
this.DistanceTextBox.Size = new System.Drawing.Size(112, 20);
this.DistanceTextBox.TabIndex = 1;
this.DistanceTextBox.Text = "";
this.DistanceTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.DistanceTextBox_Validating);
//
// columnComboBox
//
this.columnComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.columnComboBox.Location = new System.Drawing.Point(240, 40);
this.columnComboBox.Name = "columnComboBox";
this.columnComboBox.Size = new System.Drawing.Size(288, 21);
this.columnComboBox.TabIndex = 5;
//
// beamComboBox
//
this.beamComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.beamComboBox.Location = new System.Drawing.Point(240, 96);
this.beamComboBox.Name = "beamComboBox";
this.beamComboBox.Size = new System.Drawing.Size(288, 21);
this.beamComboBox.TabIndex = 6;
//
// braceComboBox
//
this.braceComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.braceComboBox.Location = new System.Drawing.Point(240, 152);
this.braceComboBox.Name = "braceComboBox";
this.braceComboBox.Size = new System.Drawing.Size(288, 21);
this.braceComboBox.TabIndex = 7;
//
// columnLabel
//
this.columnLabel.Location = new System.Drawing.Point(240, 16);
this.columnLabel.Name = "columnLabel";
this.columnLabel.Size = new System.Drawing.Size(120, 23);
this.columnLabel.TabIndex = 10;
this.columnLabel.Text = "Type of Columns:";
//
// beamLabel
//
this.beamLabel.Location = new System.Drawing.Point(240, 72);
this.beamLabel.Name = "beamLabel";
this.beamLabel.Size = new System.Drawing.Size(120, 23);
this.beamLabel.TabIndex = 11;
this.beamLabel.Text = "Type of Beams:";
//
// braceLabel
//
this.braceLabel.Location = new System.Drawing.Point(240, 128);
this.braceLabel.Name = "braceLabel";
this.braceLabel.Size = new System.Drawing.Size(120, 23);
this.braceLabel.TabIndex = 12;
this.braceLabel.Text = "Type of Braces:";
//
// floornumberTextBox
//
this.floornumberTextBox.Location = new System.Drawing.Point(16, 208);
this.floornumberTextBox.Name = "floornumberTextBox";
this.floornumberTextBox.Size = new System.Drawing.Size(112, 20);
this.floornumberTextBox.TabIndex = 4;
this.floornumberTextBox.Text = "";
this.floornumberTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.floornumberTextBox_Validating);
//
// DistanceLabel
//
this.DistanceLabel.Location = new System.Drawing.Point(16, 16);
this.DistanceLabel.Name = "DistanceLabel";
this.DistanceLabel.Size = new System.Drawing.Size(152, 23);
this.DistanceLabel.TabIndex = 14;
this.DistanceLabel.Text = "Distance between Columns:";
//
// YLabel
//
this.YLabel.Location = new System.Drawing.Point(16, 128);
this.YLabel.Name = "YLabel";
this.YLabel.Size = new System.Drawing.Size(200, 23);
this.YLabel.TabIndex = 15;
this.YLabel.Text = "Number of Columns in the Y Direction:";
//
// XLabel
//
this.XLabel.Location = new System.Drawing.Point(16, 72);
this.XLabel.Name = "XLabel";
this.XLabel.Size = new System.Drawing.Size(200, 23);
this.XLabel.TabIndex = 16;
this.XLabel.Text = "Number of Columns in the X Direction:";
//
// floornumberLabel
//
this.floornumberLabel.Location = new System.Drawing.Point(16, 184);
this.floornumberLabel.Name = "floornumberLabel";
this.floornumberLabel.Size = new System.Drawing.Size(144, 23);
this.floornumberLabel.TabIndex = 17;
this.floornumberLabel.Text = "Number of Floors:";
//
// cancelButton
//
this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.cancelButton.Location = new System.Drawing.Point(392, 208);
this.cancelButton.Name = "cancelButton";
this.cancelButton.TabIndex = 9;
this.cancelButton.Text = "&Cancel";
this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
//
// unitLabel
//
this.unitLabel.Location = new System.Drawing.Point(136, 42);
this.unitLabel.Name = "unitLabel";
this.unitLabel.Size = new System.Drawing.Size(32, 23);
this.unitLabel.TabIndex = 18;
this.unitLabel.Text = "feet";
//
// CreateBeamsColumnsBracesForm
//
this.AcceptButton = this.OKButton;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.cancelButton;
this.ClientSize = new System.Drawing.Size(546, 246);
this.Controls.Add(this.unitLabel);
this.Controls.Add(this.cancelButton);
this.Controls.Add(this.floornumberLabel);
this.Controls.Add(this.XLabel);
this.Controls.Add(this.YLabel);
this.Controls.Add(this.DistanceLabel);
this.Controls.Add(this.floornumberTextBox);
this.Controls.Add(this.DistanceTextBox);
this.Controls.Add(this.YTextBox);
this.Controls.Add(this.XTextBox);
this.Controls.Add(this.braceLabel);
this.Controls.Add(this.beamLabel);
this.Controls.Add(this.columnLabel);
this.Controls.Add(this.braceComboBox);
this.Controls.Add(this.beamComboBox);
this.Controls.Add(this.columnComboBox);
this.Controls.Add(this.OKButton);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "CreateBeamsColumnsBracesForm";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Create Beams Columns and Braces";
this.Load += new System.EventHandler(this.CreateBeamsColumnsBracesForm_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// Refresh the text box for the default data
/// </summary>
private void TextBoxRefresh()
{
this.XTextBox.Text = "2";
this.YTextBox.Text = "2";
this.DistanceTextBox.Text = 20.0.ToString("0.0");
this.floornumberTextBox.Text = "1";
}
private void CreateBeamsColumnsBracesForm_Load(object sender, System.EventArgs e)
{
this.TextBoxRefresh();
bool notLoadSymbol = false;
if (0 == m_dataBuffer.ColumnMaps.Count)
{
TaskDialog.Show("Revit", "No Structural Columns family is loaded in the project, please load one firstly.");
notLoadSymbol = true;
}
if (0 == m_dataBuffer.BeamMaps.Count)
{
TaskDialog.Show("Revit", "No Structural Framing family is loaded in the project, please load one firstly.");
notLoadSymbol = true;
}
if (notLoadSymbol)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
return;
}
this.columnComboBox.DataSource = m_dataBuffer.ColumnMaps;
this.columnComboBox.DisplayMember = "SymbolName";
this.columnComboBox.ValueMember = "ElementType";
this.beamComboBox.DataSource = m_dataBuffer.BeamMaps;
this.beamComboBox.DisplayMember = "SymbolName";
this.beamComboBox.ValueMember = "ElementType";
this.braceComboBox.DataSource = m_dataBuffer.BraceMaps;
this.braceComboBox.DisplayMember = "SymbolName";
this.braceComboBox.ValueMember = "ElementType";
}
/// <summary>
/// accept use's input and create columns, beams and braces
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OKButton_Click(object sender, System.EventArgs e)
{
//check whether the input is correct and create elements
try
{
int xNumber = int.Parse(this.XTextBox.Text);
int yNumber = int.Parse(this.YTextBox.Text);
double distance = double.Parse(this.DistanceTextBox.Text);
object columnType = columnComboBox.SelectedValue;
object beamType = beamComboBox.SelectedValue;
object braceType = braceComboBox.SelectedValue;
int floorNumber = int.Parse(floornumberTextBox.Text);
m_dataBuffer.CreateMatrix(xNumber, yNumber, distance);
m_dataBuffer.AddInstance(columnType, beamType, braceType, floorNumber);
this.DialogResult = DialogResult.OK;
this.Close();
}
catch (Exception)
{
TaskDialog.Show("Revit", "Please input datas correctly.");
}
}
/// <summary>
/// cancel the command
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cancelButton_Click(object sender, System.EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
/// <summary>
/// Verify the distance
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DistanceTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
double distance = 0.1;
try
{
distance = double.Parse(this.DistanceTextBox.Text);
}
catch (Exception)
{
TaskDialog.Show("Revit", "Please enter a value larger than 5 and less than 30000.");
this.DistanceTextBox.Text = "";
this.DistanceTextBox.Focus();
return;
}
if (distance <= 5)
{
TaskDialog.Show("Revit", "Please enter a value larger than 5.");
this.DistanceTextBox.Text = "";
this.DistanceTextBox.Focus();
return;
}
if (distance > 30000)
{
TaskDialog.Show("Revit", "Please enter a value less than 30000.");
this.DistanceTextBox.Text = "";
this.DistanceTextBox.Focus();
return;
}
}
/// <summary>
/// Verify the number of X direction
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void XTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
int xNumber = 1;
try
{
xNumber = int.Parse(this.XTextBox.Text);
}
catch (Exception)
{
TaskDialog.Show("Revit", "Please input an integer for X direction between 1 to 20.");
this.XTextBox.Text = "";
}
if (xNumber < 1 || xNumber > 20)
{
TaskDialog.Show("Revit", "Please input an integer for X direction between 1 to 20.");
this.XTextBox.Text = "";
}
}
/// <summary>
/// Verify the number of Y direction
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void YTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
int yNumber = 1;
try
{
yNumber = int.Parse(this.YTextBox.Text);
}
catch (Exception)
{
TaskDialog.Show("Revit", "Please input an integer for Y direction between 1 to 20.");
this.YTextBox.Text = "";
}
if (yNumber < 1 || yNumber > 20)
{
TaskDialog.Show("Revit", "Please input an integer for Y direction between 1 to 20.");
this.YTextBox.Text = "";
}
}
/// <summary>
/// Verify the number of floors
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void floornumberTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
int floorNumber = 1;
try
{
floorNumber = int.Parse(floornumberTextBox.Text);
}
catch (Exception)
{
TaskDialog.Show("Revit", "Please input an integer for the number of floors between 1 to 10.");
this.floornumberTextBox.Text = "";
}
if (floorNumber < 1 || floorNumber > 10)
{
TaskDialog.Show("Revit", "Please input an integer for the number of floors between 1 to 10.");
this.floornumberTextBox.Text = "";
}
}
}
}
@@ -0,0 +1,283 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="OKButton.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="OKButton.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="OKButton.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="XTextBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="XTextBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="XTextBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="YTextBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="YTextBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="YTextBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="DistanceTextBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="DistanceTextBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="DistanceTextBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="columnComboBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="columnComboBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="columnComboBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="beamComboBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="beamComboBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="beamComboBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="braceComboBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="braceComboBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="braceComboBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="columnLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="columnLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="columnLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="beamLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="beamLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="beamLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="braceLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="braceLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="braceLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="floornumberTextBox.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="floornumberTextBox.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="floornumberTextBox.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="DistanceLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="DistanceLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="DistanceLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="YLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="YLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="YLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="XLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="XLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="XLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="floornumberLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="floornumberLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="floornumberLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="cancelButton.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="cancelButton.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="cancelButton.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="unitLabel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="unitLabel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="unitLabel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.Name">
<value>CreateBeamsColumnsBracesForm</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>