Skip to content

Commit 1527972

Browse files
author
Jeremy Tammik
authored
Merge pull request #11 from NK29/master
Revit 2022 migration-Deprecated API usage problem resolved
2 parents 3cd26c0 + cccce15 commit 1527972

File tree

4 files changed

+45
-44
lines changed

4 files changed

+45
-44
lines changed

Labs/1_Revit_API_Intro/SourceCS/3_ElementFiltering.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ FilterStringRuleEvaluator evaluator
388388
= new FilterStringEquals();
389389

390390
FilterRule rule = new FilterStringRule(
391-
provider, evaluator, wallTypeName, true);
391+
provider, evaluator, wallTypeName);
392392

393393
ElementParameterFilter filter
394394
= new ElementParameterFilter(rule);

Labs/1_Revit_API_Intro/SourceCS/7_SharedParameter.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ public Result Execute(
8787
bool visible = cat.AllowsBoundParameters;
8888

8989
// Get or create the shared params definition
90-
Definition fireRatingParamDef = GetOrCreateSharedParamsDefinition(
91-
sharedParamsGroup, ParameterType.Number, kSharedParamsDefFireRating, visible);
90+
ForgeTypeId forgeTypeId = new ForgeTypeId(SpecTypeId.Number.ToString());
91+
Definition fireRatingParamDef = GetOrCreateSharedParamsDefinition(
92+
sharedParamsGroup, forgeTypeId, kSharedParamsDefFireRating, visible);
9293
if (null == fireRatingParamDef)
9394
{
9495
message = "Error in creating shared parameter.";
@@ -195,15 +196,15 @@ public static DefinitionGroup GetOrCreateSharedParamsGroup(
195196

196197
public static Definition GetOrCreateSharedParamsDefinition(
197198
DefinitionGroup defGroup,
198-
ParameterType defType,
199+
ForgeTypeId forgeTypeId,
199200
string defName,
200201
bool visible)
201202
{
202203
Definition definition = defGroup.Definitions.get_Item(defName);
203204
if (null == definition)
204205
{
205206
try
206-
{
207+
{
207208
//definition = defGroup.Definitions.Create(defName, defType, visible);
208209

209210
// 'Autodesk.Revit.DB.Definitions.Create(string, Autodesk.Revit.DB.ParameterType, bool)' is obsolete:
@@ -214,7 +215,7 @@ public static Definition GetOrCreateSharedParamsDefinition(
214215

215216
ExternalDefinitionCreationOptions opt
216217
= new ExternalDefinitionCreationOptions(
217-
defName, defType);
218+
defName, forgeTypeId);
218219
opt.Visible = true;
219220
definition = defGroup.Definitions.Create(opt);
220221
}
@@ -261,14 +262,14 @@ public Result Execute(
261262
return Result.Failed;
262263
}
263264
// visible param
264-
Definition docParamDefVisible = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, ParameterType.Integer, kParamNameVisible, true);
265+
Definition docParamDefVisible = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, new ForgeTypeId(SpecTypeId.Number.ToString()), kParamNameVisible, true);
265266
if (null == docParamDefVisible)
266267
{
267268
TaskDialog.Show("Per document parameter", "Error creating visible per-doc parameter.");
268269
return Result.Failed;
269270
}
270271
// invisible param
271-
Definition docParamDefInvisible = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, ParameterType.Integer, kParamNameInvisible, false);
272+
Definition docParamDefInvisible = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, new ForgeTypeId(SpecTypeId.Number.ToString()), kParamNameInvisible, false);
272273
if (null == docParamDefInvisible)
273274
{
274275
TaskDialog.Show("Per document parameter", "Error creating invisible per-doc parameter.");

Labs/1_Revit_API_Intro/SourceVB/3_ElementFiltering.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,9 +363,9 @@ Public Class ElementFiltering
363363

364364
Dim evaluator As FilterStringRuleEvaluator = New FilterStringEquals()
365365

366-
Dim rule As FilterRule = New FilterStringRule(provider, evaluator, wallTypeName, True)
366+
Dim rule As FilterRule = New FilterStringRule(provider, evaluator, wallTypeName)
367367

368-
Dim filter As New ElementParameterFilter(rule)
368+
Dim filter As New ElementParameterFilter(rule)
369369

370370
Return New FilteredElementCollector(_doc).OfClass(GetType(WallType)).WherePasses(filter).FirstElement()
371371

Labs/1_Revit_API_Intro/SourceVB/7_SharedParameter.vb

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,10 @@ Class SharedParameter
8282
' parameters can still be bound to these categories.
8383
Dim visible As Boolean = cat.AllowsBoundParameters
8484

85-
' Get or create the shared params definition
86-
Dim fireRatingParamDef As Definition = GetOrCreateSharedParamsDefinition(sharedParamsGroup, ParameterType.Number, kSharedParamsDefFireRating, visible)
87-
If fireRatingParamDef Is Nothing Then
85+
' Get or create the shared params definition
86+
Dim forgeTypeId As ForgeTypeId = New ForgeTypeId(SpecTypeId.Number.ToString())
87+
Dim fireRatingParamDef As Definition = GetOrCreateSharedParamsDefinition(sharedParamsGroup, forgeTypeId, kSharedParamsDefFireRating, visible)
88+
If fireRatingParamDef Is Nothing Then
8889
message = "Error in creating shared parameter."
8990
Return Result.Failed
9091
End If
@@ -164,31 +165,30 @@ Class SharedParameter
164165
Return g
165166
End Function
166167

167-
Public Shared Function GetOrCreateSharedParamsDefinition(ByVal defGroup As DefinitionGroup, ByVal defType As ParameterType, ByVal defName As String, ByVal visible As Boolean) As Definition
168-
Dim definition As Definition = defGroup.Definitions.Item(defName)
169-
If definition Is Nothing Then
170-
Try
171-
172-
''Public Function Create(name As String, type As Autodesk.Revit.DB.ParameterType, visible As Boolean)
173-
''As Autodesk.Revit.DB.Definition' is obsolete:
174-
'This method is deprecated in Revit 2015.
175-
'Use Create(Autodesk.Revit.DB.ExternalDefinitonCreationOptions) instead'
176-
177-
'definition = defGroup.Definitions.Create(defName, defType, visible)
178-
179-
' updated for Revit 2015
180-
Dim extDefCrOptions As ExternalDefinitionCreationOptions _
181-
= New ExternalDefinitionCreationOptions(defName, defType)
182-
183-
extDefCrOptions.Visible = True
184-
definition = defGroup.Definitions.Create(extDefCrOptions)
185-
186-
Catch generatedExceptionName As Exception
187-
definition = Nothing
188-
End Try
189-
End If
190-
Return definition
191-
End Function
168+
Public Shared Function GetOrCreateSharedParamsDefinition(ByVal defGroup As DefinitionGroup, ByVal forgetypeId As ForgeTypeId, ByVal defName As String, ByVal visible As Boolean) As Definition
169+
Dim definition As Definition = defGroup.Definitions.Item(defName)
170+
If definition Is Nothing Then
171+
Try
172+
''Public Function Create(name As String, type As Autodesk.Revit.DB.ParameterType, visible As Boolean)
173+
''As Autodesk.Revit.DB.Definition' is obsolete:
174+
'This method is deprecated in Revit 2015.
175+
'Use Create(Autodesk.Revit.DB.ExternalDefinitonCreationOptions) instead'
176+
177+
'definition = defGroup.Definitions.Create(defName, defType, visible)
178+
179+
' updated for Revit 2015
180+
Dim extDefCrOptions As ExternalDefinitionCreationOptions _
181+
= New ExternalDefinitionCreationOptions(defName, forgetypeId)
182+
183+
extDefCrOptions.Visible = True
184+
definition = defGroup.Definitions.Create(extDefCrOptions)
185+
186+
Catch generatedExceptionName As Exception
187+
definition = Nothing
188+
End Try
189+
End If
190+
Return definition
191+
End Function
192192
End Class
193193

194194
<Transaction(TransactionMode.Manual)> _
@@ -219,15 +219,15 @@ Public Class PerDocParameter
219219
TaskDialog.Show("Per document parameter", "Error getting the shared params group.")
220220
Return Result.Failed
221221
End If
222-
' visible param
223-
Dim docParamDefVisible As Definition = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, ParameterType.[Integer], kParamNameVisible, True)
224-
If docParamDefVisible Is Nothing Then
222+
' visible param
223+
Dim docParamDefVisible As Definition = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, New ForgeTypeId(SpecTypeId.Number.ToString()), kParamNameVisible, True)
224+
If docParamDefVisible Is Nothing Then
225225
TaskDialog.Show("Per document parameter", "Error creating visible per-doc parameter.")
226226
Return Result.Failed
227227
End If
228-
' invisible param
229-
Dim docParamDefInvisible As Definition = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, ParameterType.[Integer], kParamNameInvisible, False)
230-
If docParamDefInvisible Is Nothing Then
228+
' invisible param
229+
Dim docParamDefInvisible As Definition = SharedParameter.GetOrCreateSharedParamsDefinition(sharedParamsGroup, New ForgeTypeId(SpecTypeId.Number.ToString()), kParamNameInvisible, False)
230+
If docParamDefInvisible Is Nothing Then
231231
TaskDialog.Show("Per document parameter", "Error creating invisible per-doc parameter.")
232232
Return Result.Failed
233233
End If

0 commit comments

Comments
 (0)